joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4d4820
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x59ad78
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push esi
mov esi, ecx
push edi
mov dword [esp + 8], esi
xor edi, edi
push str.UxTheme.dll
mov dword [esp + 0x18], edi
mov dword [esi], method.CCommandLineInfo.virtual_0
mov dword [esi + 4], edi
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
mov dword [esi + 8], edi
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], edi
mov dword [esi + 0x20], edi
mov dword [esi + 0x24], edi
mov dword [esi + 0x28], edi
mov dword [esi + 0x2c], edi
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], edi
mov dword [esi + 0x38], edi
mov dword [esi + 0x3c], edi
mov dword [esi + 0x40], edi
call dword [0x5e9940]
cmp eax, edi
mov dword [esi + 0x44], eax
je 0x4d491d
mov edi, dword [0x5e9758]
push str.OpenThemeData
push eax
call edi
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x44]
push str.CloseThemeData
push eax
call edi
mov ecx, dword [esi + 0x44]
push str.DrawThemeBackground
push ecx
mov dword [esi + 0x4c], eax
call edi
mov edx, dword [esi + 0x44]
push str.GetThemeColor
push edx
mov dword [esi + 0x50], eax
call edi
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x44]
push str.GetThemeSysColor
push eax
call edi
mov ecx, dword [esi + 0x44]
push str.GetCurrentThemeName
push ecx
mov dword [esi + 0x58], eax
call edi
mov edx, dword [esi + 0x44]
push str.GetWindowTheme
push edx
mov dword [esi + 0x5c], eax
call edi
mov dword [esi + 0x60], eax
mov eax, dword [esi + 0x44]
push str.IsAppThemed
push eax
call edi
mov ecx, esi
mov dword [esi + 0x64], eax
call fcn.004d49d0
mov eax, esi
pop edi
pop esi
mov ecx, dword [esp + 4]
mov dword fs:[0], ecx
add esp, 0x10
ret
mov ecx, dword [esp + 0xc]
mov dword [esi + 0x48], edi
mov dword [esi + 0x4c], edi
mov dword [esi + 0x50], edi
mov dword [esi + 0x54], edi
mov dword [esi + 0x58], edi
mov dword [esi + 0x5c], edi
mov dword [esi + 0x60], edi
mov dword [esi + 0x64], edi
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
add esp, 0x10
ret
Function at 0x4ea9dc
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push 0xffffffffffffffff
push 0x59c403
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, dword [0x5fd774]
push ebx
push esi
mov esi, ecx
push edi
mov dword [esp + 0xc], esi
lea edi, [esi + 4]
mov dword [edi], eax
mov ecx, dword [esp + 0x20]
xor ebx, ebx
mov dword [esi + 0x38], ecx
mov dword [esi], 0x5b3a90
mov dword [0x604320], esi
push str.BCGWorkspace
lea ecx, [esp + 0x24]
mov dword [esp + 0x1c], ebx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], ebx
call fcn.0055718c
lea edx, [esp + 0x20]
mov ecx, edi
push edx
mov byte [esp + 0x1c], 1
call fcn.00557257
or eax, 0xffffffff
lea ecx, [esp + 0x20]
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x30], ebx
mov dword [esi + 0x34], 1
mov dword [esi + 0x3c], ebx
mov byte [esp + 0x18], bl
call fcn.0055711e
mov ecx, dword [esp + 0x10]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x10
ret 4

Function at 0x4fd470
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [0x604404]
test eax, eax
jle 0x4fd483
mov ecx, 0x6043d8
jmp fcn.004ccbf0
ret

Function at 0x4fd4f0
Capabilities:
Create thread

Disassembly:
mov eax, dword [0x5fb380]
push esi
test eax, eax
je 0x4fd5ba
cmp dword [0x5fbd44], 0xfffffffe
jne 0x4fd5a2
mov esi, dword [esp + 8]
cmp esi, 0xffffffff
je 0x4fd5ba
mov cl, byte [0x6044d8]
mov al, 1
test al, cl
jne 0x4fd545
mov dl, cl
mov ecx, 0x6044b8
or dl, al
mov byte [0x6044d8], dl
call fcn.004fd5c0
push 0x4fd650
call fcn.0053d374
add esp, 4
push 0x6044c0
call dword [0x5e9948]
push 0
push 0
push 0x4fd490
call fcn.0053eb1f
add esp, 0xc
mov dword [0x6044dc], eax
test eax, eax
jbe 0x4fd58b
cmp eax, 0xffffffff
je 0x4fd58b
push 0xffffffffffffffff
push eax
call dword [0x5e9794]
push 0x6044c0
mov dword [0x5fbd44], esi
call dword [0x5e994c]
pop esi
ret
push 0x6044c0
mov dword [0x6044dc], 0
call dword [0x5e994c]
pop esi
ret
mov eax, dword [esp + 8]
cmp eax, 0xffffffff
mov dword [0x5fbd44], eax
jne 0x4fd5ba
mov dword [0x6044dc], 0
pop esi
ret
Function at 0x512b40
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x59eb28
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x44
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0x17e8]
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x10]
push eax
push ecx
call dword [0x5e91d0]
mov edx, dword [esi + 0x1c]
push edx
call dword [0x5e91b4]
push eax
call fcn.00553610
mov ebx, dword [0x5e91ac]
mov edi, eax
lea eax, [esp + 0x30]
mov ecx, dword [edi + 0x1c]
push eax
push ecx
call ebx
lea edx, [esp + 0x30]
mov ecx, edi
push edx
call fcn.0055b694
mov eax, dword [esi + 0x64]
mov edi, 0xa000
test edi, eax
je 0x512bde
mov eax, dword [esp + 0x3c]
mov ebp, dword [esp + 0x14]
cmp eax, ebp
mov ecx, eax
jl 0x512bc6
mov ecx, ebp
mov edx, dword [esp + 0x34]
cmp edx, ecx
jle 0x512bd4
mov dword [esp + 0x14], edx
jmp 0x512c04
cmp eax, ebp
jge 0x512c04
mov dword [esp + 0x14], eax
jmp 0x512c04
mov eax, dword [esp + 0x38]
mov ebp, dword [esp + 0x10]
cmp eax, ebp
mov ecx, eax
jl 0x512bee
mov ecx, ebp
mov edx, dword [esp + 0x30]
cmp edx, ecx
jle 0x512bfc
mov dword [esp + 0x10], edx
jmp 0x512c04
cmp eax, ebp
jge 0x512c04
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x1c]
lea edx, [esp + 0x18]
mov dword [esp + 0x1c], ecx
push edx
push eax
call dword [0x5e9214]
test dword [esi + 0x64], edi
mov eax, dword [esp + 0x1c]
jne 0x512c30
mov eax, dword [esp + 0x18]
mov edx, dword [esi + 0x1c]
lea ecx, [esp + 0x20]
push ecx
push edx
mov dword [esi + 0x17e8], eax
call ebx
lea eax, [esp + 0x20]
mov ecx, esi
push eax
call fcn.0055b694
test dword [esi + 0x64], edi
je 0x512c8e
push 0
lea ecx, [esp + 0x24]
push 0xfffffffffffffffe
push ecx
call dword [0x5e921c]
mov eax, dword [esi + 0x64]
test ah, 0x82
je 0x512c7d
mov edx, dword [esp + 0x14]
lea eax, [edx + 3]
mov dword [esp + 0x24], eax
add eax, 3
mov dword [esp + 0x2c], eax
jmp 0x512cc1
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
add eax, 0xfffffffd
mov dword [esp + 0x24], eax
jmp 0x512cc1
push 0xfffffffffffffffe
lea eax, [esp + 0x24]
push 0
push eax
call dword [0x5e921c]
mov eax, dword [esi + 0x64]
test ah, 0x14
mov eax, dword [esp + 0x10]
je 0x512cb6
mov dword [esp + 0x20], eax
add eax, 3
mov dword [esp + 0x28], eax
jmp 0x512cc1
mov dword [esp + 0x28], eax
add eax, 0xfffffffd
mov dword [esp + 0x20], eax
push 0
lea ecx, [esp + 0x44]
call fcn.0055b7ea
lea edi, [esi + 0x17d4]
mov dword [esp + 0x5c], 0
push edi
call dword [0x5e9220]
test eax, eax
jne 0x512cf2
lea ecx, [esp + 0x40]
push edi
push ecx
mov ecx, esi
call fcn.005133a0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, edi
push edi
mov dword [edx], eax
mov eax, dword [esp + 0x2c]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x30]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ecx
lea edx, [esp + 0x44]
push edx
mov ecx, esi
call fcn.005133a0
lea ecx, [esp + 0x40]
mov dword [esp + 0x5c], 0xffffffff
call fcn.0055b85c
mov ecx, dword [esp + 0x54]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x50
ret
Function at 0x51f780
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x59fceb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1c
mov eax, dword [esp + 0x30]
push esi
push edi
mov esi, ecx
push eax
push 0x3f05
mov dword [esp + 0x10], esi
call fcn.00552c33
lea edi, [esi + 0x5c]
mov dword [esp + 0x2c], 0
mov ecx, edi
call fcn.005531e5
mov dword [edi], vtable.CStatic.0
lea edi, [esi + 0x98]
mov byte [esp + 0x2c], 1
mov ecx, edi
call fcn.005531e5
mov dword [edi], vtable.CStatic.0
lea edi, [esi + 0xd4]
mov byte [esp + 0x2c], 2
mov ecx, edi
call fcn.005531e5
mov dword [edi], vtable.CStatic.0
push esi
lea ecx, [esi + 0x110]
mov byte [esp + 0x30], 3
call fcn.0051e290
mov ecx, dword [esp + 0x34]
lea edi, [esi + 0x1f4]
mov dword [esi + 0x1c4], ecx
mov ecx, edi
mov byte [esp + 0x2c], 4
call fcn.005750a0
mov dword [edi], 0x5b8ce0
lea ecx, [esi + 0xaf0]
mov byte [esp + 0x2c], 5
call fcn.004eff70
mov eax, dword [esi + 0x1c4]
lea edx, [esp + 0xc]
mov dword [esi], method.CDialog.virtual_0
push edx
mov ecx, dword [eax + 4]
push 0x18
push ecx
call dword [0x5e95b0]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x1c8], eax
mov eax, dword [esp + 0x3c]
cmp eax, 0xffffffff
mov dword [esi + 0x1cc], ecx
jne 0x51f87d
mov eax, dword [esp + 0x1e]
and eax, 0xffff
mov ecx, dword [esp + 0x24]
mov dword [esi + 0x1d0], eax
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
add esp, 0x28
ret 0xc
Function at 0x52b4c0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x5a0998
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1c
push esi
lea ecx, [esp + 4]
call fcn.005331a0
mov esi, dword [esp + 0x30]
push 0
push esi
lea ecx, [esp + 0xc]
mov dword [esp + 0x30], 0
call fcn.00533263
test eax, eax
jne 0x52b546
push esi
call fcn.0052b590
add esp, 4
mov dword [esp + 0x28], 0xffffffff
test al, al
lea ecx, [esp + 4]
je 0x52b52f
call fcn.005331dd
or eax, 0xffffffff
pop esi
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
add esp, 0x28
ret
call fcn.005331dd
xor eax, eax
pop esi
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
add esp, 0x28
ret
lea ecx, [esp + 4]
call fcn.00533483
mov eax, dword [esp + 4]
push 0x10
lea ecx, [esp + 8]
call dword [eax + 0x38]
neg eax
sbb eax, eax
lea ecx, [esp + 4]
and al, 0xfe
mov dword [esp + 0x28], 0xffffffff
inc eax
mov esi, eax
call fcn.005331dd
mov ecx, dword [esp + 0x20]
mov eax, esi
pop esi
mov dword fs:[0], ecx
add esp, 0x28
ret

Function at 0x52bbb0
Capabilities:
Generate random numbers using the delphi lcg

Disassembly:
mov eax, dword [esp + 4]
push esi
mov esi, ecx
push eax
mov ecx, dword [esi + 0x14]
push ecx
mov ecx, esi
call fcn.0052bc20
mov edx, dword [esi + 0x18]
mov dword [esi + 0x14], eax
and eax, 0xff
mov ecx, esi
add eax, edx
imul eax, eax, 0x8088405
inc eax
mov dword [esi + 0x18], eax
shr eax, 0x18
mov byte [esp + 8], al
mov eax, dword [esi + 0x1c]
mov edx, dword [esp + 8]
push edx
push eax
call fcn.0052bc20
mov dword [esi + 0x1c], eax
pop esi
ret 4
Function at 0x52c520
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x5a0bde
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x18
mov eax, dword [esp + 0x30]
push ebx
xor ebx, ebx
push esi
test eax, eax
mov esi, ecx
mov dword [esp + 8], ebx
jne 0x52c566
mov ecx, dword [esi + 0x1c]
lea edx, [esp + 0x18]
push edx
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ebx, 1
mov dword [esp + 8], ebx
mov eax, dword [eax]
mov dword [esp + 0x28], ebx
push eax
lea ecx, [esp + 0x10]
call fcn.0055718c
test bl, 1
mov dword [esp + 0x28], 3
je 0x52c58d
and ebx, 0xfffffffe
lea ecx, [esp + 0x18]
mov dword [esp + 8], ebx
call fcn.0055711e
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x14]
push eax
push ecx
call fcn.0052b1e0
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x18]
push edx
push eax
mov byte [esp + 0x38], 4
call fcn.0052b2b0
add esp, 0x10
mov ecx, dword [0x5fd774]
mov dword [esp + 0x38], ecx
mov al, byte [esp + 0x34]
mov byte [esp + 0x28], 6
test al, al
je 0x52c5da
push 0x5fc390
lea ecx, [esp + 0x3c]
call fcn.005572a7
jmp 0x52c5f0
mov edx, dword [esi + 0x4c]
lea eax, [esp + 0x38]
push edx
push 0x5fc388
push eax
call fcn.0054e388
add esp, 0xc
lea ecx, [esp + 0x10]
lea edx, [esp + 0x14]
push ecx
lea eax, [esp + 0x20]
push edx
push eax
call fcn.0055734d
push 0x5ec584
lea ecx, [esp + 0x38]
push eax
push ecx
mov byte [esp + 0x34], 7
call fcn.005573b3
mov esi, dword [esp + 0x30]
lea edx, [esp + 0x38]
push edx
push eax
push esi
mov byte [esp + 0x34], 8
call fcn.0055734d
or ebx, 2
mov dword [esp + 8], ebx
lea ecx, [esp + 0x34]
mov byte [esp + 0x28], 7
call fcn.0055711e
lea ecx, [esp + 0x1c]
mov byte [esp + 0x28], 6
call fcn.0055711e
lea ecx, [esp + 0x38]
mov byte [esp + 0x28], 5
call fcn.0055711e
lea ecx, [esp + 0x10]
mov byte [esp + 0x28], 4
call fcn.0055711e
lea ecx, [esp + 0x14]
mov byte [esp + 0x28], 3
call fcn.0055711e
lea ecx, [esp + 0xc]
mov byte [esp + 0x28], 0
call fcn.0055711e
mov ecx, dword [esp + 0x20]
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x24
ret 0xc
Function at 0x52d030
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x5a0cf8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc
push esi
mov esi, ecx
call fcn.0052d1d0
mov ecx, dword [esi + 0x2c]
mov dword [esi + 0x30], eax
push 0
push eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
call dword [edx + 0x28]
push 0
push 0x16
lea ecx, [esp + 0xc]
call fcn.0052cd60
mov eax, dword [esi + 0x2c]
push 0x16
mov dword [esp + 0x1c], 0
mov ecx, dword [eax + 0x1c]
mov eax, dword [esp + 0xc]
push eax
mov edx, dword [ecx]
call dword [edx + 0x34]
cmp eax, 0x16
je 0x52d096
push 0xffffffffffffff9b
mov ecx, esi
call fcn.0052d310
mov eax, dword [esp + 8]
push edi
mov ecx, dword [eax]
mov dword [esi + 4], ecx
mov dx, word [eax + 4]
mov word [esi + 8], dx
mov cx, word [eax + 6]
mov word [esi + 0xa], cx
mov dx, word [eax + 8]
mov word [esi + 0xc], dx
mov cx, word [eax + 0xa]
mov word [esi + 0xe], cx
mov edx, dword [eax + 0xc]
mov dword [esi + 0x10], edx
mov ecx, dword [eax + 0x10]
mov dword [esi + 0x14], ecx
mov di, word [eax + 0x14]
lea ecx, [esp + 8]
call fcn.0052cda0
mov dx, word [esi + 8]
mov ecx, dword [esi + 0x2c]
push edx
call fcn.0052ca00
mov ecx, dword [esi + 0x2c]
call fcn.0052c0d0
test eax, eax
jne 0x52d10a
mov eax, dword [esi + 0x14]
mov edx, dword [esi + 0x10]
mov ecx, dword [esi + 0x30]
add eax, edx
cmp ecx, eax
jae 0x52d10a
push 0xffffffffffffff9b
mov ecx, esi
call fcn.0052d310
test di, di
je 0x52d13d
and edi, 0xffff
push 0
push edi
lea ecx, [esi + 0x18]
call fcn.0052cdd0
mov ecx, dword [esi + 0x2c]
mov eax, dword [esi + 0x1c]
push edi
push eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
call dword [edx + 0x34]
cmp eax, edi
je 0x52d13d
push 0xffffffffffffff9b
mov ecx, esi
call fcn.0052d310
mov ecx, dword [esi + 0x2c]
call fcn.0052c0d0
test eax, eax
pop edi
je 0x52d14e
xor eax, eax
jmp 0x52d15b
mov eax, dword [esi + 0x30]
mov edx, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
sub eax, edx
sub eax, ecx
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x52d16b
cmp word [esi + 0xe], ax
jne 0x52d176
cmp word [esi + 0xe], 0
jne 0x52d17f
test eax, eax
je 0x52d17f
push 0xffffffffffffff9b
mov ecx, esi
call fcn.0052d310
mov ecx, dword [esi + 0x2c]
xor eax, eax
mov ax, word [esi + 0xa]
mov byte [esi + 0x3c], 1
push eax
call fcn.0052c0f0
mov eax, dword [esi + 0x10]
test eax, eax
je 0x52d1a0
mov ecx, esi
call fcn.0052d370
lea ecx, [esp + 4]
mov dword [esp + 0x18], 0xffffffff
call fcn.0052cd90
mov ecx, dword [esp + 0x10]
pop esi
mov dword fs:[0], ecx
add esp, 0x18
ret
Function at 0x52e840
Capabilities:
Access peb ldr_data
Enumerate pe sections
Get kernel32 base address

Disassembly:
push 0xffffffffffffffff
push 0x5a0f18
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
push ebx
push ebp
push esi
push edi
mov esi, ecx
push 0
push 0x2e
lea ecx, [esp + 0x1c]
call fcn.0052cd60
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
push 1
push 0x2e
push eax
mov ecx, edi
mov dword [esp + 0x34], 0
call fcn.0052bf20
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov dword [esi + 4], ecx
mov dx, word [eax + 4]
mov word [esi + 8], dx
mov cx, word [eax + 6]
mov word [esi + 0xa], cx
mov dx, word [eax + 8]
mov word [esi + 0xc], dx
mov cx, word [eax + 0xa]
mov word [esi + 0xe], cx
mov dx, word [eax + 0xc]
mov word [esi + 0x10], dx
mov cx, word [eax + 0xe]
mov word [esi + 0x12], cx
mov edx, dword [eax + 0x10]
mov dword [esi + 0x14], edx
mov ecx, dword [eax + 0x14]
mov dword [esi + 0x18], ecx
mov edx, dword [eax + 0x18]
mov dword [esi + 0x1c], edx
mov cx, word [eax + 0x20]
mov dx, word [eax + 0x22]
mov bx, word [eax + 0x1c]
mov bp, word [eax + 0x1e]
mov word [esp + 0x30], cx
mov word [esi + 0x20], dx
mov cx, word [eax + 0x24]
mov word [esi + 0x22], cx
mov edx, dword [eax + 0x26]
mov dword [esi + 0x24], edx
mov eax, dword [eax + 0x2a]
lea ecx, [esp + 0x14]
mov dword [esi + 0x28], eax
call fcn.0052cda0
mov edx, dword [esi + 4]
mov ecx, 0x5fc3f0
cmp edx, dword [ecx]
je 0x52e92c
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xffffffff
call fcn.0052cd90
xor al, al
jmp 0x52e9c4
mov ecx, edi
call fcn.0052c2f0
and ebx, 0xffff
push 0
push ebx
lea ecx, [esi + 0x38]
mov dword [esp + 0x18], eax
call fcn.0052cdd0
mov ecx, dword [edi + 0x1c]
mov eax, dword [esi + 0x3c]
push ebx
push eax
mov edx, dword [ecx]
call dword [edx + 0x34]
test bp, bp
je 0x52e97a
mov ebx, ebp
push 0
and ebx, 0xffff
lea ecx, [esi + 0x2c]
push ebx
call fcn.0052cdd0
mov ecx, dword [edi + 0x1c]
mov eax, dword [esi + 0x30]
push ebx
push eax
mov edx, dword [ecx]
call dword [edx + 0x34]
mov ebx, dword [esp + 0x30]
test bx, bx
je 0x52e9a1
and ebx, 0xffff
push 0
push ebx
lea ecx, [esi + 0x44]
call fcn.0052cdd0
mov ecx, dword [edi + 0x1c]
mov esi, dword [esi + 0x48]
push ebx
push esi
mov eax, dword [ecx]
call dword [eax + 0x34]
mov ecx, edi
call fcn.0052c2f0
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], 0xffffffff
cmp eax, ecx
lea ecx, [esp + 0x14]
sete bl
call fcn.0052cd90
mov al, bl
mov ecx, dword [esp + 0x20]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1c
ret 4
Function at 0x52eca0
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x5a0f58
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x14
push ebx
push ebp
mov ebx, ecx
push esi
push edi
push 0
mov esi, dword [ebx + 0x40]
mov edi, dword [ebx + 0x34]
mov eax, edi
mov ebp, esi
and eax, 0xffff
and ebp, 0xffff
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x1c]
lea eax, [eax + ebp + 0x1e]
push eax
mov dword [esp + 0x1c], eax
call fcn.0052cd60
mov eax, dword [esp + 0x1c]
mov ecx, dword [0x5fc3f4]
push 1
mov dword [esp + 0x30], 0
mov dword [eax], ecx
mov eax, dword [esp + 0x20]
mov dx, word [ebx + 0xa]
mov word [eax + 4], dx
mov edx, dword [esp + 0x20]
mov cx, word [ebx + 0xc]
mov word [edx + 6], cx
mov ecx, dword [esp + 0x20]
mov ax, word [ebx + 0xe]
mov word [ecx + 8], ax
mov eax, dword [esp + 0x20]
mov dx, word [ebx + 0x10]
mov word [eax + 0xa], dx
mov edx, dword [esp + 0x20]
mov cx, word [ebx + 0x12]
mov word [edx + 0xc], cx
mov ecx, dword [esp + 0x20]
mov eax, dword [ebx + 0x14]
mov dword [ecx + 0xe], eax
mov eax, dword [esp + 0x20]
mov edx, dword [ebx + 0x18]
mov dword [eax + 0x12], edx
mov edx, dword [esp + 0x20]
mov ecx, dword [ebx + 0x1c]
mov dword [edx + 0x16], ecx
mov eax, dword [esp + 0x20]
mov word [eax + 0x1a], si
mov ecx, dword [esp + 0x20]
mov word [ecx + 0x1c], di
mov edx, dword [esp + 0x20]
mov esi, dword [ebx + 0x3c]
mov ecx, ebp
mov eax, ecx
lea edi, [edx + 0x1e]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov esi, dword [ebx + 0x30]
mov eax, ecx
lea edi, [edx + ebp + 0x1e]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x38]
push edi
push ecx
mov ecx, esi
call fcn.0052caf0
lea ecx, [ebx + 0x2c]
call fcn.0052cda0
mov ecx, esi
call fcn.0052c2f0
mov ecx, esi
mov word [ebx + 0x20], ax
call fcn.0052cc90
sub eax, edi
lea ecx, [esp + 0x18]
mov dword [ebx + 0x28], eax
mov dword [esp + 0x2c], 0xffffffff
call fcn.0052cd90
mov ecx, dword [esp + 0x24]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x20
ret 4
Function at 0x52f130
Capabilities:
Encode data using xor

Disassembly:
push esi
mov esi, dword [esp + 0xc]
test esi, esi
jne 0x52f13f
xor eax, eax
pop esi
ret 0xc
mov eax, dword [0x5fc408]
test eax, eax
je 0x52f14d
call fcn.0052f0d0
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 8]
cmp edx, 8
push ebx
not eax
jb 0x52f24f
push edi
mov edi, edx
shr edi, 3
mov ecx, eax
xor ebx, ebx
mov bl, byte [esi]
and ecx, 0xff
xor ecx, ebx
mov ebx, eax
shr ebx, 8
mov eax, dword [ecx*4 + 0x6045dc]
sub edx, 8
xor eax, ebx
inc esi
mov ecx, eax
xor ebx, ebx
mov bl, byte [esi]
and ecx, 0xff
xor ecx, ebx
xor ebx, ebx
mov bl, byte [esi + 1]
mov ecx, dword [ecx*4 + 0x6045dc]
shr eax, 8
xor ecx, eax
inc esi
mov eax, ecx
and eax, 0xff
xor eax, ebx
xor ebx, ebx
mov bl, byte [esi + 1]
mov eax, dword [eax*4 + 0x6045dc]
shr ecx, 8
xor eax, ecx
inc esi
mov ecx, eax
and ecx, 0xff
xor ecx, ebx
xor ebx, ebx
mov bl, byte [esi + 1]
mov ecx, dword [ecx*4 + 0x6045dc]
shr eax, 8
xor ecx, eax
inc esi
mov eax, ecx
and eax, 0xff
xor eax, ebx
xor ebx, ebx
mov bl, byte [esi + 1]
mov eax, dword [eax*4 + 0x6045dc]
shr ecx, 8
xor eax, ecx
inc esi
mov ecx, eax
and ecx, 0xff
xor ecx, ebx
xor ebx, ebx
mov bl, byte [esi + 1]
mov ecx, dword [ecx*4 + 0x6045dc]
shr eax, 8
xor ecx, eax
inc esi
mov eax, ecx
and eax, 0xff
xor eax, ebx
xor ebx, ebx
mov bl, byte [esi + 1]
mov eax, dword [eax*4 + 0x6045dc]
shr ecx, 8
xor eax, ecx
inc esi
mov ecx, eax
and ecx, 0xff
xor ecx, ebx
shr eax, 8
mov ecx, dword [ecx*4 + 0x6045dc]
xor eax, ecx
inc esi
dec edi
jne 0x52f167
pop edi
test edx, edx
je 0x52f271
mov ecx, eax
xor ebx, ebx
mov bl, byte [esi]
and ecx, 0xff
xor ecx, ebx
shr eax, 8
mov ecx, dword [ecx*4 + 0x6045dc]
xor eax, ecx
inc esi
dec edx
jne 0x52f253
pop ebx
pop esi
not eax
ret 0xc

Function at 0x561c00
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push esi
mov esi, ecx
mov ecx, 0x604080
call fcn.004cb520
mov ecx, 0x603ec0
call fcn.004cb520
lea ecx, [esi + 0x78]
call fcn.004cb520
lea ecx, [esi + 0x158]
call fcn.004cb520
mov ecx, 0x603fa0
call fcn.004cb520
mov ecx, 0x603a60
call fcn.004cb520
lea ecx, [esi + 0x5b8]
call fcn.004cb520
lea ecx, [esi + 0x238]
call fcn.004cb520
lea ecx, [esi + 0x698]
call fcn.004cb520
mov ecx, 0x603d00
call fcn.004cb520
mov ecx, 0x603c20
call fcn.004cb520
mov ecx, 0x603b40
call fcn.004cb520
lea ecx, [esi + 0x318]
call fcn.004cb520
lea ecx, [esi + 0x3f8]
call fcn.004cb520
lea ecx, [esi + 0x4d8]
call fcn.004cb520
mov ecx, dword [0x604204]
pop esi
test ecx, ecx
je 0x561cae
jmp fcn.004cb520
ret
Function at 0x573c18
Capabilities:
Access peb ldr_data
Get kernel32 base address
Get process heap flags

Disassembly:
mov eax, 0x5a291f
call fcn.0053ef08
push ecx
push ebx
push esi
mov esi, ecx
push edi
mov dword [ebp - 0x10], esi
call fcn.0055894a
mov eax, dword [ebp + 0x18]
lea ebx, [esi + 0x24]
mov dword [esi + 0x1c], eax
mov eax, dword [0x5fd774]
xor edi, edi
mov dword [ebx], eax
mov dword [ebp - 4], edi
push dword [ebp + 0x10]
lea ecx, [esi + 0xc]
mov byte [ebp - 4], 1
mov dword [esi], vtable.CInternetFile.0
call fcn.005572a7
push dword [ebp + 0x14]
mov ecx, ebx
call fcn.005572a7
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword [esi + 0x14], eax
mov eax, dword [ebp + 0x1c]
mov dword [esi + 0x18], eax
mov dword [esi + 0x3c], edi
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], edi
mov dword [esi + 0x38], edi
mov dword [esi + 0x28], edi
mov dword [esi + 0x2c], edi
mov dword [esi + 0x40], edi
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0x18