joyce8/EMBER2024-capa huggingface dataset:
Function at 0x406fa0
Capabilities:
Resolve dns
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
push esi
mov esi, dword [ebp + 0xc]
xor ebx, ebx
cmp esi, ebx
push edi
mov dword [ebp - 0xc], esi
jne 0x406fba
mov esi, str.0.0.0.0
mov al, byte [esi]
cmp al, 0x30
jl 0x40707d
cmp al, 0x39
jg 0x40707d
push str.0123456789.
push esi
call dword [sym.imp.MSVCRT.dll_strspn]
mov edx, eax
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp edx, ecx
jne 0x40707d
push esi
call dword [sym.imp.WSOCK32.dll_inet_addr]
mov dword [ebp - 8], eax
lea eax, [ebp - 8]
lea ecx, [ebp - 0x14]
lea edx, [ebp - 0x24]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x18], ecx
mov dword [ebp + 0xc], edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0xc]
cmp dword [ecx], ebx
je 0x4070c6
mov dword [ebp - 4], ebx
mov edx, dword [ebp + 0x1c]
push 0x38
push edx
call fcn.00404a60
mov edi, eax
xor eax, eax
mov esi, edi
mov ecx, 0xe
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp - 4]
mov dword [esi], eax
mov edx, dword [ecx + 0xc]
mov eax, dword [edi + edx]
mov edx, dword [ebp + 0x14]
push edx
push 2
mov ecx, dword [eax]
push esi
mov dword [esi + 0x2c], ecx
call fcn.00406dd0
add esp, 0xc
test ebx, ebx
jne 0x4070a5
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x407076
push eax
mov eax, dword [ebp + 0x1c]
push eax
call fcn.00405850
mov dword [esi + 4], eax
mov ecx, dword [ebp + 8]
mov dword [ecx], esi
jmp 0x4070ae
push esi
call dword [sym.imp.WSOCK32.dll_gethostbyname]
cmp eax, ebx
mov dword [ebp + 0xc], eax
jne 0x407010
mov esi, dword [sym.imp.WSOCK32.dll_WSAGetLastError]
call esi
test eax, eax
je 0x4070c6
call esi
pop edi
pop esi
add eax, 0xafc80
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebx + 4]
mov dword [esi + 4], edx
mov dword [ebx + 0x24], esi
mov eax, dword [ebp + 0xc]
add edi, 4
mov ebx, esi
mov dword [ebp - 4], edi
mov ecx, dword [eax + 0xc]
cmp dword [edi + ecx], 0
jne 0x407021
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x408ac0
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov ecx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 0x10]
mov dword [ebp - 8], ecx
mov ecx, dword [ebp + 8]
push 0
mov eax, dword [esi]
push 0
lea edx, [ebp - 4]
mov dword [ebp - 0xc], eax
push 0
push edx
mov edx, dword [ecx + 4]
lea eax, [ebp - 0xc]
push 1
push eax
push edx
mov dword [ebp - 4], 0
call dword [sym.imp.WS2_32.dll_WSASend]
cmp eax, 0xffffffff
jne 0x408b2a
push edi
mov edi, dword [sym.imp.WSOCK32.dll_WSAGetLastError]
call edi
test eax, eax
jne 0x408b15
mov dword [esi], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
call edi
mov dword [esi], 0
pop edi
add eax, 0xafc80
pop esi
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp - 4]
mov dword [esi], eax
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0xc
Function at 0x408b40
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov ecx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 0x10]
push 0
lea edx, [ebp - 8]
push 0
mov eax, dword [esi]
push edx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 4]
mov dword [ebp - 0xc], ecx
push eax
mov eax, dword [edx + 4]
lea ecx, [ebp - 0x10]
push 1
push ecx
push eax
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
call dword [sym.imp.WS2_32.dll_WSARecv]
cmp eax, 0xffffffff
jne 0x408bb3
push edi
mov edi, dword [sym.imp.WSOCK32.dll_WSAGetLastError]
call edi
test eax, eax
jne 0x408b9e
mov dword [esi], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
call edi
mov dword [esi], 0
pop edi
add eax, 0xafc80
pop esi
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebp - 4]
mov dword [esi], eax
pop esi
neg eax
sbb eax, eax
and eax, 0xfffeee82
add eax, 0x1117e
mov esp, ebp
pop ebp
ret 0xc

Function at 0x408c70
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0x10]
mov eax, ebx
or eax, edi
jne 0x408cae
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
or ecx, eax
je 0x408d9d
mov edx, dword [esi + 4]
push edx
call fcn.00408c20
add esp, 4
test eax, eax
je 0x408d9d
pop edi
pop esi
pop ebx
pop ebp
ret 0xc
test edi, edi
jl 0x408d51
jg 0x408cc0
test ebx, ebx
jbe 0x408d47
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x24]
or eax, ecx
jne 0x408cde
mov ecx, dword [esi + 4]
push ecx
call fcn.00408bd0
add esp, 4
test eax, eax
jne 0x408da5
mov edx, dword [esi + 0x20]
cmp edx, ebx
jne 0x408cf0
mov eax, dword [esi + 0x24]
cmp eax, edi
je 0x408d9d
mov ecx, dword [ebp + 0x10]
push 0
push 0x3e8
push ecx
push ebx
lea edi, [esi + 0x18]
call fcn.0040b590
mov edx, dword [esi + 4]
mov ebx, dword [sym.imp.WSOCK32.dll_setsockopt]
push 4
push edi
push 0x1006
push 0xffff
push edx
mov dword [edi], eax
call ebx
mov eax, dword [esi + 4]
push 4
push edi
push 0x1005
push 0xffff
push eax
call ebx
mov edi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
mov dword [esi + 0x24], edi
mov dword [esi + 0x20], ebx
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret 0xc
test edi, edi
jg 0x408d9d
jl 0x408d51
test ebx, ebx
jae 0x408d9d
mov ecx, dword [esi + 4]
mov dword [ebp + 8], 0
push ecx
call fcn.00408bd0
add esp, 4
test eax, eax
jne 0x408da5
mov eax, dword [esi + 4]
mov edi, dword [sym.imp.WSOCK32.dll_setsockopt]
lea edx, [ebp + 8]
push 4
push edx
push 0x1006
push 0xffff
push eax
call edi
mov edx, dword [esi + 4]
lea ecx, [ebp + 8]
push 4
push ecx
push 0x1005
push 0xffff
push edx
call edi
mov edi, dword [ebp + 0x10]
mov dword [esi + 0x20], ebx
mov dword [esi + 0x24], edi
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret 0xc
Function at 0x40a3d0
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x40a410
mov ecx, dword [ebp + 0xc]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
test eax, eax
jne 0x40a40a
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
jne 0x40a3fe
pop esi
pop ebp
ret 8
call esi
add eax, 0xafc80
pop esi
pop ebp
ret 8
xor eax, eax
pop ebp
ret 8
mov eax, 0x4e3b
pop ebp
ret 8
Function at 0x40a720
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x4108dc]
push esi
test eax, eax
push edi
jne 0x40a91b
push 0x4107f8
mov dword [0x4107f8], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov eax, dword [0x410808]
cmp eax, 2
jne 0x40a88d
mov al, byte [0x41080c]
mov esi, 0x41080c
test al, al
je 0x40a79e
mov edi, dword [sym.imp.MSVCRT.dll__isctype]
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x40a781
xor ecx, ecx
push 4
mov cl, byte [esi]
push ecx
call edi
add esp, 8
jmp 0x40a792
mov eax, dword [sym.imp.MSVCRT.dll__pctype]
xor edx, edx
mov dl, byte [esi]
mov ecx, dword [eax]
mov al, byte [ecx + edx*2]
and eax, 4
test eax, eax
jne 0x40a7cc
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x40a769
mov ecx, dword [0x4108e0]
mov eax, dword [0x4107fc]
cmp eax, 3
jb 0x40a911
je 0x40a911
cmp eax, 4
jne 0x40a822
cmp ecx, 2
jae 0x40a7e5
mov eax, 0x28
jmp 0x40a916
cmp byte [esi], 0
je 0x40a79e
push esi
call dword [sym.imp.MSVCRT.dll_atoi]
mov ecx, eax
add esp, 4
mov dword [0x4108e0], ecx
jmp 0x40a7a4
ja 0x40a7f1
mov eax, 0x2a
jmp 0x40a916
cmp ecx, 3
ja 0x40a800
mov eax, 0x2b
jmp 0x40a916
cmp ecx, 4
ja 0x40a80f
mov eax, 0x2c
jmp 0x40a916
mov edx, 5
cmp edx, ecx
sbb eax, eax
neg eax
add eax, 0x2d
jmp 0x40a916
cmp eax, 5
jne 0x40a87c
mov eax, dword [0x410800]
test eax, eax
jne 0x40a84e
test ecx, ecx
jne 0x40a83e
mov eax, 0x32
jmp 0x40a916
xor eax, eax
cmp ecx, 1
setne al
add eax, 0x33
jmp 0x40a916
cmp eax, 2
jne 0x40a85d
mov eax, 0x46
jmp 0x40a916
cmp ecx, 1
jae 0x40a86c
mov eax, 0x3c
jmp 0x40a916
xor eax, eax
cmp ecx, 1
setne al
add eax, 0x3d
jmp 0x40a916
sub eax, 6
neg eax
sbb eax, eax
and al, 0xec
add eax, 0x50
jmp 0x40a916
cmp eax, 1
jne 0x40a911
mov al, byte [0x41080c]
mov esi, 0x41080c
test al, al
je 0x40a8db
mov edi, dword [sym.imp.MSVCRT.dll__isctype]
mov eax, dword [sym.imp.MSVCRT.dll___mb_cur_max]
cmp dword [eax], 1
jle 0x40a8be
xor ecx, ecx
push 1
mov cl, byte [esi]
push ecx
call edi
add esp, 8
jmp 0x40a8cf
mov eax, dword [sym.imp.MSVCRT.dll__pctype]
xor edx, edx
mov dl, byte [esi]
mov ecx, dword [eax]
mov al, byte [ecx + edx*2]
and eax, 1
test eax, eax
jne 0x40a8db
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x40a8a6
mov eax, dword [0x410800]
cmp eax, 0xa
jae 0x40a8f5
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x43
setge al
lea eax, [eax + eax + 0xa]
jmp 0x40a916
cmp eax, 0x5a
jae 0x40a90a
mov cl, byte [esi]
xor eax, eax
cmp cl, 0x41
setge al
lea eax, [eax + eax + 0xe]
jmp 0x40a916
mov eax, 0x12
jmp 0x40a916
mov eax, 1
mov dword [0x4108dc], eax
mov edx, dword [ebp + 8]
pop edi
mov dword [edx], eax
mov esi, dword [0x4108dc]
xor eax, eax
cmp esi, 1
setge al
dec eax
pop esi
and eax, 0x4e2e
pop ebp
ret
Function at 0x40b2d0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, dword [ebp + 8]
mov al, byte [esi + 0x2c]
test al, al
je 0x40b3a1
mov ecx, dword [esi + 0x48]
xor eax, eax
push ebx
cmp ecx, 1
push edi
mov dword [ebp - 4], eax
mov dword [ebp + 8], eax
jne 0x40b395
mov edi, dword [esi + 0x3c]
cmp edi, eax
je 0x40b395
mov ebx, dword [esi + 0x38]
cmp edi, 0xffffffff
jbe 0x40b311
or eax, 0xffffffff
jmp 0x40b313
mov eax, edi
mov edx, dword [esi + 4]
lea ecx, [ebp - 4]
push 0
push ecx
push eax
push ebx
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x40b358
mov eax, dword [ebp - 4]
mov edx, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
add edx, eax
adc ecx, 0
sub edi, eax
add ebx, eax
mov dword [esi + 0x50], edx
test edi, edi
mov dword [esi + 0x54], ecx
ja 0x40b307
mov eax, dword [ebp + 8]
pop edi
mov dword [esi + 0x3c], 0
pop ebx
pop esi
mov esp, ebp
pop ebp
ret 4
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
test eax, eax
jne 0x40b369
mov dword [ebp + 8], eax
jmp 0x40b373
call edi
add eax, 0xafc80
mov dword [ebp + 8], eax
mov eax, dword [ebp - 4]
mov edx, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
add edx, eax
mov eax, dword [ebp + 8]
mov dword [esi + 0x50], edx
adc ecx, 0
test eax, eax
mov dword [esi + 0x54], ecx
jne 0x40b395
mov dword [esi + 0x3c], 0
mov eax, dword [ebp + 8]
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret 4
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 4

Function at 0x40b400
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
push ebx
push esi
lea ecx, [edx - 2]
xor esi, esi
push edi
mov edi, dword [ebp + 0xc]
test ecx, ecx
jle 0x40b483
xor edx, edx
xor ebx, ebx
mov dl, byte [edi + esi]
add esi, 3
shr edx, 2
inc eax
mov dl, byte [edx + 0x40c718]
mov byte [eax - 1], dl
mov dl, byte [edi + esi - 3]
mov bl, byte [edi + esi - 2]
and edx, 3
shl edx, 4
shr ebx, 4
or edx, ebx
xor ebx, ebx
inc eax
mov dl, byte [edx + 0x40c718]
mov byte [eax - 1], dl
mov dl, byte [edi + esi - 2]
mov bl, byte [edi + esi - 1]
and edx, 0xf
shl edx, 2
shr ebx, 6
or edx, ebx
inc eax
mov dl, byte [edx + 0x40c718]
mov byte [eax - 1], dl
mov dl, byte [edi + esi - 1]
and edx, 0x3f
inc eax
cmp esi, ecx
mov dl, byte [edx + 0x40c718]
mov byte [eax - 1], dl
jl 0x40b418
mov edx, dword [ebp + 0x10]
cmp esi, edx
jge 0x40b4e6
xor ecx, ecx
mov cl, byte [esi + edi]
shr ecx, 2
inc eax
dec edx
mov cl, byte [ecx + 0x40c718]
cmp esi, edx
mov byte [eax - 1], cl
mov dl, byte [esi + edi]
jne 0x40b4b6
and edx, 3
shl edx, 4
inc eax
mov cl, byte [edx + 0x40c718]
mov byte [eax - 1], cl
mov byte [eax], 0x3d
jmp 0x40b4e1
lea ecx, [esi + edi + 1]
xor ebx, ebx
and edx, 3
mov bl, byte [ecx]
shl edx, 4
shr ebx, 4
or edx, ebx
inc eax
mov dl, byte [edx + 0x40c718]
mov byte [eax - 1], dl
mov cl, byte [ecx]
and ecx, 0xf
mov dl, byte [ecx*4 + 0x40c718]
mov byte [eax], dl
inc eax
mov byte [eax], 0x3d
inc eax
mov edx, dword [ebp + 8]
mov byte [eax], 0
sub eax, edx
pop edi
pop esi
inc eax
pop ebx
pop ebp
ret 0xc
Function at 0x41a13c
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0x18
push 0x10025478
call fcn.00425550
xor esi, esi
mov edi, dword [ebp + 8]
test edi, edi
jne 0x41a158
xor eax, eax
jmp 0x41a1ec
mov dword [ebp - 4], esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x1c], esi
mov eax, dword [edi + 0x3c]
mov ebx, dword [eax + edi + 0x78]
add ebx, edi
mov eax, dword [ebx + 0x1c]
add eax, edi
mov dword [ebp + 8], eax
mov edx, dword [ebx + 0x20]
add edx, edi
mov dword [ebp - 0x20], edx
mov ecx, dword [ebx + 0x24]
add ecx, edi
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp + 0xc]
test ecx, 0xffff0000
jne 0x41a195
movzx eax, cx
sub eax, dword [ebx + 0x10]
jmp 0x41a1bc
mov ebx, dword [ebx + 0x18]
mov dword [ebp - 0x28], ebx
mov eax, ebx
dec ebx
mov dword [ebp - 0x28], ebx
test eax, eax
je 0x41a1e6
mov eax, dword [edx]
add eax, edi
push ecx
push eax
call fcn.00425ff0
pop ecx
pop ecx
test eax, eax
mov eax, dword [ebp - 0x1c]
jne 0x41a1c6
movzx eax, word [eax]
mov esi, dword [ebp + 8]
mov esi, dword [esi + eax*4]
add esi, edi
jmp 0x41a1e3
mov edx, dword [ebp - 0x20]
add edx, 4
mov dword [ebp - 0x20], edx
add eax, 2
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp + 0xc]
jmp 0x41a19b
mov dword [ebp - 0x24], esi
or dword [ebp - 4], 0xffffffff
mov eax, esi
call fcn.0042558b
ret 8

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

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, dword [ebp + 8]
mov edx, 0x10b
push edi
mov eax, dword [esi + 0x3c]
add eax, esi
movzx ecx, word [eax + 0x18]
cmp cx, dx
jne 0x41a219
xor edi, edi
add eax, 0x78
jmp 0x41a22f
mov edx, 0x20b
cmp cx, dx
jne 0x41a2c2
xor edi, edi
inc edi
add eax, 0x88
push edi
push esi
push dword [eax]
call fcn.0041acbd
push edi
push esi
lea ebx, [esi + eax]
push dword [ebx + 0x20]
call fcn.0041acbd
push edi
push esi
push dword [ebx + 0x24]
add eax, esi
mov dword [ebp + 8], eax
call fcn.0041acbd
add eax, esi
add esp, 0x24
test dword [ebp + 0xc], 0xffff0000
mov dword [ebp - 4], eax
jne 0x41a28c
push edi
push esi
push edi
push esi
push dword [ebx + 0x1c]
call fcn.0041acbd
mov ecx, dword [ebp + 0xc]
add esp, 0xc
movzx ecx, cx
sub ecx, dword [ebx + 0x10]
add eax, esi
push dword [eax + ecx*4]
call fcn.0041acbd
add esp, 0xc
jmp 0x41a2c4
mov eax, dword [ebx + 0x18]
jmp 0x41a2be
dec eax
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push edi
push esi
push dword [eax]
call fcn.0041acbd
push dword [ebp + 0xc]
add eax, esi
push eax
call fcn.00427f50
add esp, 0x14
test eax, eax
jne 0x41a2cb
add dword [ebp + 8], 4
add dword [ebp - 4], 2
mov eax, dword [ebp - 8]
test eax, eax
jne 0x41a291
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edi
push esi
push edi
push esi
push dword [ebx + 0x1c]
call fcn.0041acbd
mov ecx, dword [ebp - 4]
add esp, 0xc
movzx ecx, word [ecx]
jmp 0x41a27d
Function at 0x41a438
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x12d0
call fcn.00426130
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor esi, esi
mov eax, dword [edi + 0x3c]
mov eax, dword [eax + edi + 0x78]
add eax, edi
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x24]
add ecx, edi
add edx, edi
mov dword [ebp - 0xc], ecx
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x18]
add ecx, edi
mov dword [ebp + 8], edx
xor edx, edx
mov dword [ebp - 8], ecx
mov dword [ebp - 4], eax
test eax, eax
je 0x41a4cd
mov ecx, dword [ecx + edx*4]
mov ebx, 0x775a
add ecx, edi
cmp word [ecx], bx
jne 0x41a4c5
mov al, byte [ecx]
xor ebx, ebx
ror ebx, 0xd
movsx eax, al
add ebx, eax
inc ecx
mov al, byte [ecx]
test al, al
jne 0x41a48d
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword [ebp + esi*8 - 0x12cc], ebx
movzx eax, word [eax + edx*2]
mov eax, dword [ecx + eax*4]
add eax, edi
mov dword [ebp + esi*8 - 0x12c8], eax
inc esi
cmp esi, 0x258
je 0x41a4cd
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
inc edx
cmp edx, eax
jb 0x41a47a
lea eax, [esi - 1]
mov dword [ebp - 0x12d0], esi
xor edi, edi
test eax, eax
je 0x41a527
mov eax, esi
xor ebx, ebx
sub eax, edi
dec eax
je 0x41a51f
lea edx, [ebp - 0x12c8]
mov ecx, dword [edx]
mov dword [ebp + 8], ecx
cmp ecx, dword [edx + 8]
jbe 0x41a512
mov eax, dword [edx + 4]
mov ecx, dword [edx - 4]
mov dword [edx - 4], eax
mov eax, dword [edx + 8]
mov dword [edx], eax
mov eax, dword [ebp + 8]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
mov esi, dword [ebp - 0x12d0]
mov eax, esi
inc ebx
sub eax, edi
add edx, 8
dec eax
cmp ebx, eax
jb 0x41a4eb
inc edi
lea eax, [esi - 1]
cmp edi, eax
jb 0x41a4dc
mov ebx, dword [ebp + 0x10]
xor edi, edi
test ebx, ebx
je 0x41a56e
xor eax, eax
test esi, esi
je 0x41a569
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + edi*4]
mov ebx, dword [edx]
cmp dword [ebp + eax*8 - 0x12cc], ebx
mov ebx, dword [ebp + 0x10]
je 0x41a551
inc eax
cmp eax, esi
jb 0x41a53c
jmp 0x41a569
mov dword [edx + 8], eax
push dword [ecx + edi*4]
push dword [ebp + eax*8 - 0x12c8]
call fcn.0041a73e
pop ecx
pop ecx
test eax, eax
je 0x41a58f
inc edi
cmp edi, ebx
jb 0x41a530
xor ecx, ecx
test ebx, ebx
je 0x41a585
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + ecx*4]
cmp dword [eax + 0xc], 0
je 0x41a58f
inc ecx
cmp ecx, ebx
jb 0x41a577
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
jmp 0x41a588

Function at 0x41a68d
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
cmp dword [ebp + 0x10], ecx
jbe 0x41a6b0
mov edx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
mov eax, ecx
and eax, 3
mov al, byte [eax + esi]
xor byte [ecx + edx], al
inc ecx
cmp ecx, dword [ebp + 0x10]
jb 0x41a69e
pop esi
pop ebp
ret
Function at 0x4212d0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ebx, dword [edi + 0x24]
mov esi, dword [edi + 0x34]
mov ecx, dword [edi + 0x64]
sub esi, ecx
sub esi, dword [edi + 0x6c]
mov dword [ebp - 8], esi
jne 0x4212fe
test ecx, ecx
jne 0x421308
cmp dword [edi + 0x6c], ecx
jne 0x421308
mov esi, ebx
jmp 0x421385
cmp esi, 0xffffffff
jne 0x421308
push 0xfffffffffffffffe
pop esi
jmp 0x421385
mov eax, dword [edi + 0x24]
add eax, 0xfffffefa
add eax, ebx
cmp ecx, eax
jb 0x421385
mov ecx, dword [edi + 0x30]
push ebx
lea eax, [ecx + ebx]
push eax
push ecx
call fcn.00424f00
mov ecx, dword [edi + 0x44]
add esp, 0xc
mov eax, dword [edi + 0x3c]
mov esi, ecx
sub dword [edi + 0x68], ebx
sub dword [edi + 0x64], ebx
sub dword [edi + 0x54], ebx
mov dword [ebp - 4], ecx
lea edi, [eax + ecx*2]
lea edi, [edi - 2]
xor ecx, ecx
movzx edx, word [edi]
mov eax, edx
sub eax, ebx
cmp edx, ebx
movzx eax, ax
cmovae ecx, eax
mov word [edi], cx
dec esi
jne 0x42133e
mov edi, dword [ebp + 8]
mov esi, ebx
mov eax, dword [edi + 0x38]
lea edi, [eax + ebx*2]
lea edi, [edi - 2]
xor ecx, ecx
movzx edx, word [edi]
mov eax, edx
sub eax, ebx
cmp edx, ebx
movzx eax, ax
cmovae ecx, eax
mov word [edi], cx
dec esi
jne 0x421363
mov esi, dword [ebp - 8]
mov edi, dword [ebp + 8]
add esi, ebx
mov ecx, dword [edi]
cmp dword [ecx + 4], 0
je 0x4213de
mov eax, dword [edi + 0x6c]
add eax, dword [edi + 0x64]
add eax, dword [edi + 0x30]
push esi
push eax
push ecx
call fcn.00421b15
add dword [edi + 0x6c], eax
add esp, 0xc
cmp dword [edi + 0x6c], 3
jb 0x4213c9
mov edx, dword [edi + 0x64]
mov eax, dword [edi + 0x30]
mov ecx, dword [edi + 0x50]
movzx esi, byte [edx + eax]
mov dword [edi + 0x40], esi
movzx eax, byte [edx + eax + 1]
shl esi, cl
xor esi, eax
and esi, dword [edi + 0x4c]
mov dword [edi + 0x40], esi
cmp dword [edi + 0x6c], 0x106
jae 0x4213de
mov eax, dword [edi]
cmp dword [eax + 4], 0
jne 0x4212de
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x404548
Capabilities:
Accept command line arguments

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffdf4
mov ebx, edx
mov esi, eax
mov eax, ebx
xor edx, edx
call fcn.00406804
test esi, esi
jne 0x404580
push 0x105
lea eax, [esp + 4]
push eax
push 0
call sub.kernel32.dll_GetModuleFileNameW
mov ecx, eax
mov edx, esp
mov eax, ebx
call fcn.00406940
jmp 0x40459e
call sub.kernel32.dll_GetCommandLineW
mov edi, eax
mov edx, ebx
mov eax, edi
call fcn.0040448c
mov edi, eax
test esi, esi
je 0x40459e
cmp dword [ebx], 0
je 0x40459e
dec esi
jmp 0x404587
add esp, 0x20c
pop edi
pop esi
pop ebx
ret

Function at 0x405dc8
Capabilities:
Write file on windows

Disassembly:
push ecx
cmp byte [0x4af050], 0
je 0x405e29
cmp word [0x4af32c], 0xd7b2
jne 0x405df1
cmp dword [0x4af334], 0
jbe 0x405df1
mov eax, 0x4af328
call dword [0x4af344]
push 0
lea eax, [esp + 4]
push eax
push 0x1d
push str.Runtime_error_____at_00000000
push 0xfffffffffffffff5
call sub.kernel32.dll_GetStdHandle
push eax
call sub.kernel32.dll_WriteFile
push 0
lea eax, [esp + 4]
push eax
push 2
push 0x405e54
push 0xfffffffffffffff5
call sub.kernel32.dll_GetStdHandle
push eax
call sub.kernel32.dll_WriteFile
pop edx
ret
cmp byte [0x4ac030], 0
jne 0x405e45
push 0
push str.Error
push str.Runtime_error_____at_00000000
push 0
call sub.user32.dll_MessageBoxA
pop edx
ret

Function at 0x405fb4
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov ebx, ecx
mov dword [ebp - 4], edx
mov edi, eax
mov esi, dword [ebp + 0x10]
cmp dword [0x4ac034], 0
je 0x405fda
mov edx, esi
mov eax, ebx
call dword [0x4ac034]
jmp 0x405fe9
mov eax, 8
call fcn.004041d4
mov dword [eax], ebx
mov dword [eax + 4], esi
mov byte [0x4af051], 1
mov edx, dword [ebp + 8]
push edx
mov edx, dword [ebp + 0xc]
push edx
push eax
mov eax, 0x405f7c
push eax
mov eax, dword [ebp - 4]
push eax
push edi
call sub.kernel32.dll_CreateThread
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret 0xc
Function at 0x4085cc
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe94
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x164], ecx
mov dword [ebp - 0x168], ecx
mov dword [ebp - 0x16c], ecx
mov dword [ebp - 8], edx
mov esi, eax
xor eax, eax
push ebp
push 0x408733
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
xor edx, edx
call fcn.00406804
cmp si, word [0x4ac7dc]
jb 0x408666
cmp si, word [0x4ac9dc]
ja 0x408666
mov edi, 0x40
xor eax, eax
mov dword [ebp - 0xc], eax
cmp edi, dword [ebp - 0xc]
jb 0x408666
mov ebx, dword [ebp - 0xc]
add ebx, edi
shr ebx, 1
cmp si, word [ebx*8 + 0x4ac7dc]
jae 0x408640
mov edi, ebx
dec edi
jmp 0x408661
cmp si, word [ebx*8 + 0x4ac7dc]
jbe 0x408650
inc ebx
mov dword [ebp - 0xc], ebx
jmp 0x408661
mov edx, dword [ebp - 8]
mov eax, dword [ebx*8 + 0x4ac7e0]
call fcn.004084dc
jmp 0x408666
cmp edi, dword [ebp - 0xc]
jae 0x40862a
mov eax, dword [ebp - 8]
cmp dword [eax], 0
jne 0x408715
push 2
movzx eax, si
push eax
call sub.kernel32.dll_IsValidLocale
test eax, eax
je 0x408715
push 0x55
lea eax, [ebp - 0xb6]
push eax
push 0x59
movzx ebx, si
push ebx
call sub.kernel32.dll_GetLocaleInfoW
push 0x55
lea eax, [ebp - 0x160]
push eax
push 0x5a
push ebx
call sub.kernel32.dll_GetLocaleInfoW
lea eax, [ebp - 0x164]
lea edx, [ebp - 0xb6]
mov ecx, 0x55
call fcn.004069ec
push dword [ebp - 0x164]
push 0x408750
lea eax, [ebp - 0x168]
lea edx, [ebp - 0x160]
mov ecx, 0x55
call fcn.004069ec
push dword [ebp - 0x168]
push 0x408760
lea eax, [ebp - 0x16c]
lea edx, [ebp - 0xb6]
mov ecx, 0x55
call fcn.004069ec
push dword [ebp - 0x16c]
mov eax, dword [ebp - 8]
mov edx, 5
call fcn.00406da4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40873a
lea eax, [ebp - 0x16c]
mov edx, 3
call fcn.004067fc
ret