joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4142a0
Capabilities:
Encode data using xor
Generate random numbers using the delphi lcg
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
sub esp, 8
push edi
mov edi, ecx
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4142b0
sub eax, edx
mov ecx, 0
mov dword [ebp - 8], eax
mov dword [ebp - 4], ecx
je 0x414326
push ebx
mov ebx, dword [edi + 4]
push esi
mov esi, dword [edi + 8]
mov edi, edi
mov eax, dword [ebp + 8]
mov edx, dword [edi]
movzx ecx, byte [ecx + eax]
xor ecx, edx
shr edx, 8
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x58e240]
xor ecx, edx
mov dword [edi], ecx
movzx ecx, cl
add ecx, ebx
imul ebx, ecx, 0x8088405
inc ebx
mov ecx, ebx
mov dword [edi + 4], ebx
shr ecx, 0x18
xor ecx, esi
shr esi, 8
and ecx, 0xff
xor esi, dword [ecx*4 + 0x58e240]
mov ecx, dword [ebp - 4]
inc ecx
mov dword [edi + 8], esi
mov dword [ebp - 4], ecx
cmp ecx, dword [ebp - 8]
jb 0x4142d0
pop esi
pop ebx
pop edi
mov esp, ebp
pop ebp
ret 4

Function at 0x414330
Capabilities:
Encode data using xor
Generate random numbers using the delphi lcg
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
cmp byte [ecx + 0xc], 0
je 0x4143d4
mov edx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
add edx, esi
mov eax, edx
mov dword [ebp + 8], 0
sub eax, esi
cmp edx, esi
push edi
sbb edi, edi
not edi
and edi, eax
jbe 0x4143d2
push ebx
lea ecx, [ecx]
mov ax, word [ecx + 8]
lea esi, [esi + 1]
mov bl, byte [esi - 1]
or ax, 2
movzx eax, ax
mov edx, eax
xor edx, 1
imul edx, eax
movzx eax, bl
sar edx, 8
xor dl, bl
mov byte [esi - 1], dl
mov edx, dword [ecx]
xor eax, edx
and eax, 0xff
shr edx, 8
mov eax, dword [eax*4 + 0x58e240]
xor eax, edx
mov dword [ecx], eax
movzx eax, al
add eax, dword [ecx + 4]
imul edx, eax, 0x8088405
mov eax, dword [ecx + 8]
inc edx
mov dword [ecx + 4], edx
shr edx, 0x18
xor edx, eax
shr eax, 8
and edx, 0xff
xor eax, dword [edx*4 + 0x58e240]
mov dword [ecx + 8], eax
mov eax, dword [ebp + 8]
inc eax
mov dword [ebp + 8], eax
cmp eax, edi
jb 0x414360
pop ebx
pop edi
pop esi
pop ebp
ret 8
Function at 0x4143e0
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x554908
mov eax, dword fs:[0]
push eax
sub esp, 8
mov eax, dword [0x5c04b4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], ecx
mov dword [ecx], vtable.CTLCertStoreImpl.0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov dword [ebp - 4], 0
mov dword [ecx + 0x20], 0
mov byte [ebp - 4], 1
mov dword [ecx + 0x24], 0
mov byte [ebp - 4], 2
mov dword [ecx + 0x28], 0
mov dword [ecx + 0x2c], 0
mov byte [ebp - 4], 3
mov dword [ecx + 0x30], 0
mov dword [ecx + 0x34], 0
mov byte [ebp - 4], 4
lea eax, [ecx + 0x38]
mov dword [eax], vtable.ByteArray.0
mov dword [ebp - 0x14], eax
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov byte [ebp - 4], 7
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov byte [ebp - 4], 8
mov dword [ecx + 0x4c], 0
mov dword [ecx + 0x50], 0
mov dword [ebp - 4], 0xffffffff
mov eax, ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret

Function at 0x419310
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55524e
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x5c04b4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
mov word [esi], 0
lea ecx, [esi + 0x148]
mov dword [esi + 4], 0
xor eax, eax
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0xffffffff
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov byte [esi + 0x1c], al
mov word [esi + 0x20], ax
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], 0xffffffff
mov byte [esi + 0x30], al
mov word [esi + 0x138], ax
mov dword [esi + 0x13c], eax
mov dword [esi + 0x140], eax
mov dword [esi + 0x144], 0xffffffff
call fcn.0041a200
mov dword [ebp - 4], 0xffffffff
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x424520
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x556952
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push esi
push edi
mov eax, dword [0x5c04b4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x10], eax
sub esp, 0xc
lea ecx, [eax + 0x30]
push 0
push 1
call fcn.00423ae0
mov edi, dword [ebp + 8]
mov ebx, eax
mov eax, dword [edi]
mov esi, eax
movzx ecx, byte [esi]
mov cl, byte [ecx + 0x574910]
test cl, cl
je 0x424575
inc esi
jmp 0x424565
mov dword [edi], esi
cmp esi, eax
jne 0x4245b1
lea ecx, [ebp - 0x24]
call dword [sym.imp.MSVCR120.dll_public:_void___thiscall_std::exception::constructor_void_]
mov dword [ebp - 4], 0
mov dword [ebp - 0x24], vtable.rapidxml::parse_error.0
mov dword [ebp - 0x18], str.expected_element_name
mov dword [ebp - 0x14], esi
mov dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x24]
push 0x5bcdb4
push eax
call sub.MSVCR120.dll__CxxThrowException
sub esi, eax
mov dword [ebx], eax
mov dword [ebx + 8], esi
mov ecx, dword [edi]
lea ebx, [ebx]
movzx eax, byte [ecx]
mov al, byte [eax + 0x574a10]
test al, al
je 0x4245d0
inc ecx
jmp 0x4245c0
push ebx
mov dword [edi], ecx
mov ecx, dword [ebp - 0x10]
push edi
call fcn.004257a0
mov esi, dword [edi]
mov al, byte [esi]
cmp al, 0x3e
jne 0x4245f5
mov ecx, dword [ebp - 0x10]
lea eax, [esi + 1]
push ebx
push edi
mov dword [edi], eax
call fcn.00425a60
jmp 0x424622
cmp al, 0x2f
jne 0x424638
lea eax, [esi + 1]
mov dword [edi], eax
cmp byte [eax], 0x3e
je 0x42461f
push eax
push 0x574094
lea ecx, [ebp - 0x24]
call fcn.00422ed0
push 0x5bcdb4
lea eax, [ebp - 0x24]
push eax
call sub.MSVCR120.dll__CxxThrowException
inc eax
mov dword [edi], eax
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea ecx, [ebp - 0x24]
call dword [sym.imp.MSVCR120.dll_public:_void___thiscall_std::exception::constructor_void_]
mov dword [ebp - 4], 1
mov dword [ebp - 0x24], vtable.rapidxml::parse_error.0
mov dword [ebp - 0x18], 0x574094
jmp 0x424599
Function at 0x424840
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5569d9
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push esi
push edi
mov eax, dword [0x5c04b4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov edi, dword [esi]
lea esp, [esp]
mov eax, dword [esi]
mov dl, byte [eax]
cmp dl, 0x5d
jne 0x424884
cmp byte [eax + 1], dl
jne 0x424884
cmp byte [eax + 2], 0x3e
je 0x42488d
test dl, dl
je 0x4248bc
inc eax
mov dword [esi], eax
jmp 0x424870
sub esp, 0xc
add ecx, 0x30
push 0
push 3
call fcn.00423ae0
mov ecx, dword [esi]
sub ecx, edi
mov dword [eax + 4], edi
mov dword [eax + 0xc], ecx
add dword [esi], 3
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
lea ecx, [ebp - 0x20]
mov esi, eax
call dword [sym.imp.MSVCR120.dll_public:_void___thiscall_std::exception::constructor_void_]
mov dword [ebp - 4], 1
mov dword [ebp - 0x20], vtable.rapidxml::parse_error.0
mov dword [ebp - 0x14], str.unexpected_end_of_data
mov dword [ebp - 0x10], esi
mov dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x20]
push 0x5bcdb4
push eax
call sub.MSVCR120.dll__CxxThrowException
int3
Function at 0x426bb0
Capabilities:
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x556952
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push esi
push edi
mov eax, dword [0x5c04b4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x10], eax
sub esp, 0xc
lea ecx, [eax + 0x30]
push 0
push 1
call fcn.00423ae0
mov edi, dword [ebp + 8]
mov ebx, eax
mov eax, dword [edi]
mov esi, eax
movzx ecx, byte [esi]
mov cl, byte [ecx + 0x574910]
test cl, cl
je 0x426c05
inc esi
jmp 0x426bf5
mov dword [edi], esi
cmp esi, eax
jne 0x426c41
lea ecx, [ebp - 0x24]
call dword [sym.imp.MSVCR120.dll_public:_void___thiscall_std::exception::constructor_void_]
mov dword [ebp - 4], 0
mov dword [ebp - 0x24], vtable.rapidxml::parse_error.0
mov dword [ebp - 0x18], str.expected_element_name
mov dword [ebp - 0x14], esi
mov dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x24]
push 0x5bcdb4
push eax
call sub.MSVCR120.dll__CxxThrowException
sub esi, eax
mov dword [ebx], eax
mov dword [ebx + 8], esi
mov ecx, dword [edi]
lea ebx, [ebx]
movzx eax, byte [ecx]
mov al, byte [eax + 0x574a10]
test al, al
je 0x426c60
inc ecx
jmp 0x426c50
push ebx
mov dword [edi], ecx
mov ecx, dword [ebp - 0x10]
push edi
call fcn.00426dd0
mov esi, dword [edi]
mov al, byte [esi]
cmp al, 0x3e
jne 0x426c85
mov ecx, dword [ebp - 0x10]
lea eax, [esi + 1]
push ebx
push edi
mov dword [edi], eax
call fcn.004270c0
jmp 0x426cb2
cmp al, 0x2f
jne 0x426ce0
lea eax, [esi + 1]
mov dword [edi], eax
cmp byte [eax], 0x3e
je 0x426caf
push eax
push 0x574094
lea ecx, [ebp - 0x24]
call fcn.00422ed0
push 0x5bcdb4
lea eax, [ebp - 0x24]
push eax
call sub.MSVCR120.dll__CxxThrowException
inc eax
mov dword [edi], eax
mov eax, dword [ebx]
mov ecx, eax
test eax, eax
jne 0x426cdb
mov ecx, 0x5c60e8
xor eax, eax
mov byte [eax + ecx], 0
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx + 8]
jmp 0x426cc1
lea ecx, [ebp - 0x24]
call dword [sym.imp.MSVCR120.dll_public:_void___thiscall_std::exception::constructor_void_]
mov dword [ebp - 4], 1
mov dword [ebp - 0x24], vtable.rapidxml::parse_error.0
mov dword [ebp - 0x18], 0x574094
jmp 0x426c29
Function at 0x426d10
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5569d9
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push esi
push edi
mov eax, dword [0x5c04b4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
mov edi, dword [esi]
lea esp, [esp]
mov eax, dword [esi]
mov dl, byte [eax]
cmp dl, 0x5d
jne 0x426d54
cmp byte [eax + 1], dl
jne 0x426d54
cmp byte [eax + 2], 0x3e
je 0x426d5d
test dl, dl
je 0x426d91
inc eax
mov dword [esi], eax
jmp 0x426d40
sub esp, 0xc
add ecx, 0x30
push 0
push 3
call fcn.00423ae0
mov ecx, dword [esi]
sub ecx, edi
mov dword [eax + 4], edi
mov dword [eax + 0xc], ecx
mov ecx, dword [esi]
mov byte [ecx], 0
add dword [esi], 3
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
lea ecx, [ebp - 0x20]
mov esi, eax
call dword [sym.imp.MSVCR120.dll_public:_void___thiscall_std::exception::constructor_void_]
mov dword [ebp - 4], 1
mov dword [ebp - 0x20], vtable.rapidxml::parse_error.0
mov dword [ebp - 0x14], str.unexpected_end_of_data
mov dword [ebp - 0x10], esi
mov dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x20]
push 0x5bcdb4
push eax
call sub.MSVCR120.dll__CxxThrowException
int3
Function at 0x42e180
Capabilities:
Hash data using sha1

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5574cb
mov eax, dword fs:[0]
push eax
sub esp, 0x84
mov eax, dword [0x5c04b4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x74], esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x42e1c0
sub eax, edx
mov ecx, esi
sar eax, 1
lea edx, [ecx + 2]
lea ebx, [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x42e1d7
sub ecx, edx
sar ecx, 1
push 1
lea eax, [ecx + ecx]
mov dword [ebp - 0x7c], eax
add eax, 3
add eax, ebx
push eax
mov dword [ebp - 0x78], eax
call dword [sym.imp.MSVCR120.dll_calloc]
mov esi, eax
add esp, 8
test esi, esi
je 0x42e2ff
test edi, edi
je 0x42e2ff
mov edx, dword [sym.imp.MSVCR120.dll_free]
lea ecx, [ebp - 0x8c]
push esi
call fcn.00430f80
add esp, 4
mov dword [ebp - 4], 0
push ebx
push dword [ebp - 0x80]
push esi
call sub.MSVCR120.dll_memcpy
mov ax, word [0x575048]
add esp, 0xc
mov word [esi + ebx], ax
mov al, byte [0x57504a]
mov byte [esi + ebx + 2], al
lea eax, [esi + 3]
push dword [ebp - 0x7c]
add eax, ebx
push dword [ebp - 0x74]
push eax
call sub.MSVCR120.dll_memcpy
add esp, 0xc
mov dword [ebp - 0x70], 0x67452301
mov edx, esi
mov dword [ebp - 0x6c], 0xefcdab89
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x68], 0x98badcfe
mov dword [ebp - 0x64], 0x10325476
push dword [ebp - 0x78]
mov dword [ebp - 0x60], 0xc3d2e1f0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
call fcn.004d8120
add esp, 4
lea ecx, [ebp - 0x70]
call fcn.004d81d0
xor eax, eax
lea ecx, [ebp - 0x70]
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], eax
mov byte [edi + 0x14], al
call fcn.004d82f0
mov ecx, dword [eax]
mov dword [edi], ecx
mov ecx, dword [eax + 4]
mov dword [edi + 4], ecx
mov ecx, dword [eax + 8]
mov dword [edi + 8], ecx
mov ecx, dword [eax + 0xc]
mov dword [edi + 0xc], ecx
mov eax, dword [eax + 0x10]
mov dword [edi + 0x10], eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x8c]
call fcn.00416890
mov al, 1
jmp 0x42e30b
push esi
call dword [sym.imp.MSVCR120.dll_free]
add esp, 4
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00553510
mov esp, ebp
pop ebp
ret 0x10
Function at 0x434240
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
mov eax, dword [0x5c04b4]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
lea eax, [ebp - 0x60]
mov esi, edx
push edi
mov edi, ecx
test eax, eax
je 0x434287
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x60], 0x67452301
mov dword [ebp - 0x5c], 0xefcdab89
mov dword [ebp - 0x58], 0x98badcfe
mov dword [ebp - 0x54], 0x10325476
push 8
lea edx, [ebp + 8]
lea ecx, [ebp - 0x60]
call fcn.004d6e80
lea edx, [ebp - 0x70]
lea ecx, [ebp - 0x60]
call fcn.004d6f20
movzx eax, byte [ebp - 0x61]
push eax
movzx eax, byte [ebp - 0x62]
push eax
movzx eax, byte [ebp - 0x63]
push eax
movzx eax, byte [ebp - 0x64]
push eax
movzx eax, byte [ebp - 0x65]
push eax
movzx eax, byte [ebp - 0x66]
push eax
movzx eax, byte [ebp - 0x67]
push eax
movzx eax, byte [ebp - 0x68]
push eax
movzx eax, byte [ebp - 0x69]
push eax
movzx eax, byte [ebp - 0x6a]
push eax
movzx eax, byte [ebp - 0x6b]
push eax
movzx eax, byte [ebp - 0x6c]
push eax
movzx eax, byte [ebp - 0x6d]
push eax
movzx eax, byte [ebp - 0x6e]
push eax
push 0x100
push str._04X_02X_02X__02X_02X__02X_02X__02X_02X__02X_02X_02X_02X_02X_02X
push esi
push edi
call fcn.0052fc70
mov ecx, dword [ebp - 4]
add esp, 0x4c
xor ecx, ebp
pop edi
pop esi
call fcn.00553510
mov esp, ebp
pop ebp
ret
Function at 0x4387e0
Capabilities:
Get user security identifier

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x214
mov eax, dword [0x5c04b4]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov esi, ecx
mov dword [ebp - 0x214], edx
push 0x5c
push esi
call dword [sym.imp.MSVCR120.dll_wcsrchr]
mov edi, eax
add esp, 8
test edi, edi
jne 0x438811
mov edi, esi
lea eax, [ebp - 0x210]
mov dword [ebp - 0x208], 0
push eax
lea eax, [ebp - 0x20c]
mov dword [ebp - 0x20c], 0
push eax
push 0
lea eax, [ebp - 0x208]
push eax
push 0
push edi
push 0
call dword [sym.imp.ADVAPI32.dll_LookupAccountNameW]
mov eax, dword [ebp - 0x208]
test eax, eax
je 0x43889f
push eax
call dword [sym.imp.MSVCR120.dll_malloc]
mov esi, eax
add esp, 4
test esi, esi
je 0x43889f
lea eax, [ebp - 0x210]
mov dword [ebp - 0x20c], 0xff
push eax
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x204]
push eax
lea eax, [ebp - 0x208]
push eax
push esi
push edi
push 0
call dword [sym.imp.ADVAPI32.dll_LookupAccountNameW]
test eax, eax
jne 0x4388b1
push esi
call dword [sym.imp.MSVCR120.dll_free]
add esp, 4
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00553510
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x214]
mov eax, 1
pop edi
mov dword [ecx], esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.00553510
mov esp, ebp
pop ebp
ret
Function at 0x438bd0
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x46c
mov eax, dword [0x5c04b4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x45c], 0
lea eax, [ebp - 0x45c]
mov dword [ebp - 0x460], edi
push 0x20019
push eax
mov edx, str.SOFTWAREMicrosoftWindows_NTCurrentVersionProfileList
mov ecx, reloc.WS2_32.dll_bind
mov esi, 1
call fcn.00518680
add esp, 8
test al, al
je 0x438d0a
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x468]
push eax
push 0
push 0
push 0
push dword [ebp - 0x45c]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
jne 0x438d0a
xor ebx, ebx
cmp dword [ebp - 0x468], ebx
jbe 0x438d0c
push 0x104
lea eax, [ebp - 0x210]
push eax
push ebx
push dword [ebp - 0x45c]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
test esi, esi
jne 0x438d0a
lea eax, [ebp - 0x210]
push eax
call fcn.00438d40
mov dword [ebp - 0x464], eax
test eax, eax
je 0x438cd6
cmp dword [edi], esi
je 0x438cb2
push dword [eax + 0x14]
mov ecx, edi
call fcn.004389f0
test eax, eax
jne 0x438cf6
mov esi, dword [edi + 0xc]
push ecx
lea ecx, [edi + 4]
lea eax, [esi + 1]
push eax
call fcn.00433880
mov eax, dword [edi + 8]
mov ecx, dword [ebp - 0x464]
mov edi, dword [ebp - 0x460]
mov dword [eax + esi*4], ecx
jmp 0x438cf6
lea eax, [ebp - 0x210]
push eax
push 0x575e98
lea eax, [ebp - 0x458]
push 0x124
push eax
call fcn.0052fc70
add esp, 0x10
inc ebx
cmp ebx, dword [ebp - 0x468]
jb 0x438c60
mov esi, 1
jmp 0x438d0c
xor esi, esi
mov ecx, dword [ebp - 0x45c]
test ecx, ecx
je 0x438d24
push ecx
call dword [0x5c00ac]
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00553510
mov esp, ebp
pop ebp
ret
Function at 0x438e80
Capabilities:
Query environment variable
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x314
mov eax, dword [0x5c04b4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edi, ecx
mov esi, edx
test edi, edi
je 0x438fbc
test esi, esi
je 0x438fbc
test ebx, ebx
je 0x438fbc
xor eax, eax
mov dword [edi], 0
mov word [esi], ax
mov dword [ebx], eax
mov word [ebp - 0x314], ax
lea eax, [ebp - 0x314]
push 0x105
push eax
push 0x575ef0
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov eax, 0x25
cmp ax, word [ebp - 0x314]
je 0x438fbc
lea ecx, [ebp - 0x314]
call fcn.0050a140
test al, al
je 0x438fbc
lea eax, [ebp - 0x314]
push eax
push 0
push str.EnableProxy
push str.PROXY
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [edi], eax
test eax, eax
jne 0x438f37
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00553510
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x314]
push eax
push 0x81
lea eax, [ebp - 0x108]
push eax
push 0x574c4c
push str.Http_Proxy_Server
push str.PROXY
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push 7
lea edi, [ebp - 0x108]
mov eax, edi
push 0x575f90
push eax
call dword [sym.imp.MSVCR120.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x438f82
lea edi, [ebp - 0xfa]
push edi
mov edx, 0x81
mov ecx, esi
call fcn.0052fa00
add esp, 4
lea eax, [ebp - 0x314]
push eax
push 0
push str.Http_Proxy_Port
push str.PROXY
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
xor ecx, ecx
mov dword [ebx], eax
cmp cx, word [esi]
je 0x438fbc
test eax, eax
jne 0x438f24
mov ecx, dword [ebp - 4]
xor al, al
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00553510
mov esp, ebp
pop ebp
ret
Function at 0x438fd0
Capabilities:
Get proxy

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x818
mov eax, dword [0x5c04b4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov dword [ebp - 0x814], eax
lea eax, [ebp - 0x80c]
push eax
push 0x20019
mov dword [ebp - 0x818], ecx
mov dword [ebp - 0x80c], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenCurrentUser]
test eax, eax
je 0x43902b
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00553510
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x80c]
lea eax, [ebp - 0x810]
push 0x20019
push eax
mov edx, str.SoftwareMicrosoftWindowsCurrentVersionInternet_Settings
call fcn.00518680
add esp, 8
mov bl, al
push dword [ebp - 0x80c]
call dword [0x5c00ac]
test bl, bl
jne 0x43906d
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00553510
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x810]
lea eax, [ebp - 0x80c]
push eax
mov edx, str.ProxyEnable
xor bl, bl
call fcn.00518850
add esp, 4
test al, al
je 0x439179
cmp dword [ebp - 0x80c], 0
je 0x439179
mov ecx, dword [ebp - 0x810]
xor eax, eax
push eax
mov word [ebp - 0x808], ax
mov edx, str.ProxyServer
lea eax, [ebp - 0x808]
push 0x401
push eax
call fcn.00518910
add esp, 0xc
test al, al
je 0x439179
push esi
push edi
lea eax, [ebp - 0x808]
push str.http
push eax
call dword [sym.imp.MSVCR120.dll_wcsstr]
mov ebx, dword [sym.imp.MSVCR120.dll_wcschr]
mov esi, eax
add esp, 8
test esi, esi
jne 0x4390fa
lea esi, [ebp - 0x808]
jmp 0x43910e
add esi, 0xa
push 0x3b
push esi
call ebx
add esp, 8
test eax, eax
je 0x43910e
xor ecx, ecx
mov word [eax], cx
push 7
push 0x575f90
push esi
call dword [sym.imp.MSVCR120.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x439126
add esi, 0xe
push 0x3a
push esi
call ebx
mov edi, eax
add esp, 8
test edi, edi
je 0x439161
xor eax, eax
mov word [edi], ax
add edi, 2
push eax
push edi
call ebx
mov dword [ebp - 0x80c], eax
lea eax, [ebp - 0x80c]
push 0xa
push eax
push edi
call dword [sym.imp.MSVCR120.dll_wcstol]
mov ecx, dword [ebp - 0x814]
add esp, 0x14
mov dword [ecx], eax
mov ecx, dword [ebp - 0x818]
mov edx, 0x81
push esi
call fcn.0052fa00
add esp, 4
mov bl, 1
pop edi
pop esi
push dword [ebp - 0x810]
call dword [0x5c00ac]
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [ebp - 4]
mov al, bl
xor ecx, ebp
pop ebx
call fcn.00553510
mov esp, ebp
pop ebp
ret
Function at 0x43ac70
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push ecx
mov edx, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, ecx
mov ecx, dword [ebp + 0xc]
cmp edx, 0xffffffff
jne 0x43ac8c
cmp ecx, 0xffffffff
je 0x43acad
mov eax, dword [edi]
push 0
push ecx
push edx
mov eax, dword [eax + 0x20]
mov ecx, edi
call eax
cmp eax, 0xffffffff
jne 0x43acad
cmp edx, eax
jne 0x43acad
or eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp byte [0x5c6a90], 0
mov eax, dword [edi + 0x14]
mov ebx, dword [ebp + 0x10]
je 0x43accf
push dword [ebp + 0x14]
mov edx, ebx
mov ecx, eax
call fcn.005029e0
add esp, 4
mov esi, eax
jmp 0x43acee
push 0
lea ecx, [esp + 0x10]
push ecx
push dword [ebp + 0x14]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x43acea
or esi, 0xffffffff
jmp 0x43acee
mov esi, dword [esp + 0xc]
cmp esi, 0xffffffff
jne 0x43ad22
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.00503330
cmp eax, 0x13
jne 0x43ad3f
push dword [edi + 0x2c]
mov ecx, dword [edi + 0x14]
mov edx, ebx
push dword [edi + 0x28]
push dword [ebp + 0x14]
call fcn.00504d30
mov esi, eax
add esp, 0xc
cmp esi, 0xffffffff
je 0x43ad3f
add dword [edi + 0x28], esi
adc dword [edi + 0x2c], 0
cmp dword [edi + 0x18], 0
je 0x43ad3f
mov edx, esi
mov ecx, ebx
call fcn.004f34f0
cmp esi, eax
je 0x43ad3f
or esi, 0xffffffff
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10