joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10027c70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
pushal
call 0x10027c7f
pop dword [ebp - 0x50]
mov eax, 0x8e7404a1
sub eax, 0x7e718822
sub dword [ebp - 0x50], eax
mov dword [ebp - 0x60], 0xe15f9819
add dword [ebp - 0x60], 0x6cf2ad32
mov dword [ebp - 0x5c], 0x1ce8ba78
add dword [ebp - 0x5c], 0x154a91cd
mov dword [ebp - 0x58], 0xdc3185c5
sub dword [ebp - 0x58], 0x8fe54197
mov dword [ebp - 0x54], 0x69d4989c
add dword [ebp - 0x54], 0x962b6764
lea eax, [ebp - 0x60]
push eax
mov eax, 0xb76ca014
sub eax, 0xa7682f4c
add eax, dword [ebp - 0x50]
call dword [eax]
mov dword [ebp - 0x60], 0x9c716ff3
add dword [ebp - 0x60], 0xd800f963
mov dword [ebp - 0x5c], 0x5d6b9682
add dword [ebp - 0x5c], 0xe400caf3
mov dword [ebp - 0x58], 0xb269b5e8
add dword [ebp - 0x58], 0xb105b684
mov dword [ebp - 0x54], 0x9a8ee73
add dword [ebp - 0x54], 0xf657118d
lea ebx, [ebp - 0x60]
push ebx
push eax
mov eax, 0x1fb078a9
sub eax, 0xfac07c5
add eax, dword [ebp - 0x50]
call dword [eax]
push 0x40
push 0x1000
push 0x40c38
push 0
call eax
mov ecx, 0x779ad255
add ecx, 0x88656ea9
xor edi, edi
add edi, eax
mov ebx, 0x10063000
add ebx, dword [ebp - 0x50]
mov esi, 0xe11d5ffd
sub esi, 0xc24f29fb
xor dword [ebp - 0x18], 0x81e7c586
mov edx, dword [ebx]
add dword [ebp - 0x4c], ebx
sub edx, esi
mov dword [edi], edx
mov dword [ebp - 0x4c], 0x90c53c5
add edi, 0x893160a2
sub edi, 0x8931609e
add ebx, 0x44a6c6a5
add ebx, 0xbb59395f
loop 0x10027d9d
add eax, 0x306737c
add eax, 0xfcfa834f
mov ebx, eax
add eax, 5
mov ecx, 0xcb1399cf
add ecx, 0x44ec6631
add ecx, dword [ebp - 0x50]
call ebx
leave
ret
Function at 0x408e21
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
pushal
call 0x408e30
pop dword [ebp - 0x2c]
mov eax, 0x3417844e
sub eax, 0x33d6f61e
sub dword [ebp - 0x2c], eax
mov dword [ebp - 0x3c], 0x94a324e1
add dword [ebp - 0x3c], 0xb9af206a
mov dword [ebp - 0x38], 0xb1776b14
sub dword [ebp - 0x38], 0x7f441ecf
mov dword [ebp - 0x34], 0xfec3367d
add dword [ebp - 0x34], 0x4d890db1
mov dword [ebp - 0x30], 0x8a336d8c
sub dword [ebp - 0x30], 0x8a336d8c
lea eax, [ebp - 0x3c]
push eax
mov eax, 0xb503ab49
add eax, 0x4b4016e3
add eax, dword [ebp - 0x2c]
call dword [eax]
mov dword [ebp - 0x3c], 0x27b4189
add dword [ebp - 0x3c], 0x71f727cd
mov dword [ebp - 0x38], 0xcd07c7ce
add dword [ebp - 0x38], 0x746499a7
mov dword [ebp - 0x34], 0x2749643
sub dword [ebp - 0x34], 0x9f0529d7
mov dword [ebp - 0x30], 0x957e61cc
add dword [ebp - 0x30], 0x6a819e34
lea ebx, [ebp - 0x3c]
push ebx
push eax
mov eax, sym.imp.kernel32.dll_GetProcAddress
add eax, dword [ebp - 0x2c]
call dword [eax]
push 0x40
push 0x1000
push 0x44100
push 0
call eax
mov ecx, 0x40a4
xor ebx, ebx
add ebx, eax
mov esi, 0xcddff5ca
add esi, 0x32676036
add esi, dword [ebp - 0x2c]
mov edi, 0x5dfa7a0a
add dword [ebp - 4], ecx
mov edx, dword [esi]
mov dword [ebp - 0x20], 0xd708c90f
xor edx, edi
add dword [ebp - 0x14], 0xbe3c9233
mov dword [ebx], edx
sub dword [ebp - 0x1c], eax
add ebx, 4
add esi, 0x73242e30
sub esi, 0x73242e2c
loop 0x408f43
add eax, 0xe0cb6261
sub eax, 0xe0ca6cfe
xor ebx, ebx
add ebx, eax
add eax, 0xa388b5a6
sub eax, 0xa388b5a1
mov ecx, 0x881fa119
sub ecx, 0x87dfa119
add ecx, dword [ebp - 0x2c]
call ebx
leave
ret

Function at 0x408ff6
Capabilities:
Read .ini file

Disassembly:
push 4
mov eax, 0x43b22b
call fcn.00421920
xor esi, esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x10], esi
call fcn.0040bac9
mov ecx, dword [ebp + 8]
push eax
call main
push 0x7d
mov dword [ebp - 4], esi
mov dword [ebp - 0x10], 1
pop ebx
mov eax, dword [ebp + 0x14]
add ebx, ebx
mov ecx, dword [ebp + 8]
push ebx
mov esi, dword [eax]
call main
push esi
push ebx
push eax
mov eax, dword [ebp + 0x10]
push 0x43c650
push dword [eax]
mov eax, dword [ebp + 0xc]
push dword [eax]
call dword [sym.imp.kernel32.dll_GetPrivateProfileStringW]
mov ecx, dword [ebp + 8]
mov esi, eax
push 0xffffffffffffffff
call main
lea ecx, [esi + 1]
cmp ebx, ecx
jbe 0x409025
mov eax, dword [ebp + 8]
call fcn.004218ee
ret 0x10
Function at 0x10004c30
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
push ebp
xor ecx, ecx
xor edx, edx
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov cl, byte [esi + 0x100]
mov dl, byte [esi + 0x101]
test ebp, ebp
je 0x10004c7f
inc ecx
mov ebx, 0xff
and ecx, ebx
xor eax, eax
mov al, byte [esi + ecx]
add edx, eax
and edx, ebx
xor ebx, ebx
mov bl, byte [esi + edx]
mov byte [esi + ecx], bl
mov byte [esi + edx], al
add al, bl
mov bl, byte [edi]
mov al, byte [esi + eax]
xor bl, al
mov byte [edi], bl
inc edi
dec ebp
jne 0x10004c54
pop ebp
pop edi
lea eax, [esi + 0x100]
pop esi
mov byte [eax], cl
pop ebx
mov byte [eax + 1], dl
ret 0xc

Function at 0x10004c91
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebx
mov eax, 0x3020100
push esi
mov ecx, 0x40
mov esi, dword [esp + 0xc]
push edi
mov edx, esi
push ebp
mov dword [edx], eax
add edx, 4
add eax, 0x4040404
dec ecx
jne 0x10004ca5
xor ecx, ecx
xor edi, edi
mov ebp, dword [esp + 0x1c]
mov byte [esi + 0x100], cl
mov byte [esi + 0x101], cl
xor ebx, ebx
xor edx, edx
xor eax, eax
mov dl, byte [edi + esi]
mov al, byte [ebp + ecx]
add bl, al
inc ecx
add bl, dl
inc edi
mov al, byte [ebx + esi]
mov byte [edi + esi - 1], al
cmp dword [esp + 0x18], ecx
mov byte [ebx + esi], dl
jne 0x10004ceb
xor ecx, ecx
cmp edi, 0x100
jb 0x10004cc8
pop ebp
pop edi
pop esi
pop ebx
ret 0xc

Function at 0x100055a0
Capabilities:
Encode data using xor

Disassembly:
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
cmp eax, 1
je 0x100055ec
jle 0x100055e7
cmp eax, 3
jg 0x100055e7
push esi
mov esi, dword [ecx]
test esi, esi
je 0x100055de
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
push ebx
sub ecx, eax
push edi
sub edx, eax
mov edi, dword [ecx + eax]
mov ebx, dword [eax]
xor edi, ebx
mov dword [edx + eax], edi
add eax, 4
dec esi
jne 0x100055cc
pop edi
pop ebx
mov eax, 1
pop esi
ret 0x10
xor eax, eax
ret 0x10
mov eax, dword [ecx + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
push eax
mov eax, dword [esp + 8]
push ecx
push edx
push eax
call fcn.100208b2
mov eax, 1
ret 0x10

Function at 0x10005b60
Capabilities:
Encode data using xor

Disassembly:
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
cmp eax, 1
je 0x10005bac
jle 0x10005ba7
cmp eax, 3
jg 0x10005ba7
push esi
mov esi, dword [ecx]
test esi, esi
je 0x10005b9e
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
push ebx
sub ecx, eax
push edi
sub edx, eax
mov edi, dword [ecx + eax]
mov ebx, dword [eax]
xor edi, ebx
mov dword [edx + eax], edi
add eax, 4
dec esi
jne 0x10005b8c
pop edi
pop ebx
mov eax, 1
pop esi
ret 0x10
xor eax, eax
ret 0x10
mov eax, dword [ecx + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
push eax
mov eax, dword [esp + 8]
push ecx
push edx
push eax
call fcn.10006a50
mov eax, 1
ret 0x10
Function at 0x10006080
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x124]
push edi
mov eax, dword [esi + 8]
mov ebx, dword [esi]
mov edi, dword [esi + 4]
mov ecx, dword [esi + 0x124]
sub eax, 2
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], ecx
je 0x100061c2
dec eax
je 0x100060c6
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10c
ret 0xc
mov ecx, dword [esi + 0x20]
push esi
mov edi, ecx
lea eax, [esp + 0x20]
and ecx, 0x1f
mov ebx, 1
push 1
push eax
shr edi, 5
shl ebx, cl
call fcn.10005610
test eax, eax
mov ebp, dword [esp + 0x124]
je 0x10006104
push esi
push 1
push ebp
call fcn.10005610
test eax, eax
je 0x10006104
mov eax, 1
jmp 0x10006106
xor eax, eax
mov ecx, dword [esp + 0x10]
lea edi, [esp + edi*4 + 0x1c]
cmp ecx, 1
mov dword [edi], ebx
je 0x10006177
dec ecx
mov dword [esp + 0x10], ecx
test eax, eax
je 0x10006164
lea ecx, [esp + 0x1c]
push esi
lea edx, [esp + 0x20]
push ecx
lea eax, [esp + 0x24]
push edx
push eax
call fcn.10005990
test eax, eax
je 0x10006164
push esi
push ebp
push ebp
push ebp
call fcn.10005990
test eax, eax
je 0x10006164
mov ecx, dword [esp + 0x120]
push esi
push ebp
push ebp
lea edx, [esp + 0x28]
push ecx
push edx
call fcn.10005a00
test eax, eax
je 0x10006164
mov eax, 1
jmp 0x10006166
xor eax, eax
mov edx, dword [edi]
mov ecx, dword [esp + 0x10]
xor edx, ebx
dec ecx
mov dword [edi], edx
mov dword [esp + 0x10], ecx
jne 0x1000611a
test eax, eax
je 0x100060b7
lea eax, [esp + 0x1c]
push esi
push eax
push ebp
push ebp
push ebp
call fcn.10005a00
test eax, eax
je 0x100060b7
mov ecx, dword [esp + 0x120]
push esi
lea edx, [esp + 0x20]
push ecx
push edx
call fcn.100208b2
test eax, eax
je 0x100060b7
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10c
ret 0xc
xor esi, esi
xor edx, edx
test edi, edi
mov edi, dword [esp + 0x124]
je 0x10006219
mov ebx, dword [esp + 0x120]
mov eax, edx
shr eax, 5
mov ecx, edx
mov ebx, dword [ebx + eax*4]
and ecx, 0x1f
shr ebx, cl
mov ebp, dword [edi + eax*4]
and ebx, 1
xor esi, ebx
mov ebx, esi
not ebx
and ebx, 1
shl ebx, cl
not ebx
and ebx, ebp
mov ebp, esi
and ebp, 1
shl ebp, cl
or ebx, ebp
inc edx
mov dword [edi + eax*4], ebx
mov eax, dword [esp + 0x10]
cmp edx, eax
jne 0x100061d1
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [edi + ebx*4 - 4]
xor eax, eax
test esi, esi
sete al
shl edx, cl
shr edx, cl
mov dword [edi + ebx*4 - 4], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10c
ret 0xc

Function at 0x10007440
Capabilities:
Get system information on windows

Disassembly:
sub esp, 0x24
lea eax, [esp]
push eax
call dword [sym.imp.kernel32.dll_GetSystemInfo]
mov eax, dword [esp + 0x18]
sub eax, 0x182
je 0x10007474
sub eax, 0x64
je 0x10007474
sub eax, 0x64
cmp word [esp + 0x20], 6
jb 0x10007474
push 0xc
call fcn.1000d220
add esp, 0x24
ret
push 4
call fcn.1000d220
add esp, 0x24
ret
Function at 0x1000c770
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
sub esp, 0x51c
lea edx, [eax + 0x1f]
push ebx
push ebp
lea ebp, [ecx + 0x1f]
push esi
shr edx, 5
shr ebp, 5
cmp edx, ebp
mov ebx, edx
ja 0x1000c795
mov ebx, ebp
mov ecx, dword [esp + 0x53c]
xor esi, esi
xor eax, eax
cmp ecx, esi
setne al
cmp ebx, esi
mov dword [esp + 0xc], eax
je 0x1000c99c
cmp ebx, 0x40
ja 0x1000c99c
lea eax, [esp + 0x324]
mov ecx, ebx
mov dword [eax - 0x204], esi
mov dword [eax], esi
mov dword [eax - 0x104], esi
mov dword [eax + 0x100], esi
add eax, 4
dec ecx
jne 0x1000c7c3
mov ecx, dword [esp + 0x120]
mov esi, dword [esp + 0x52c]
xor ecx, 1
push edi
mov dword [esp + 0x124], ecx
mov ecx, edx
lea edi, [esp + 0x224]
push edx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x53c]
lea ecx, [ebp*4]
mov dword [esp + 0x24], ecx
mov eax, ecx
lea edi, [esp + 0x42c]
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 + 0x534]
push ecx
call fcn.100208b2
push ebp
mov edx, dword [esp + 0x53c]
mov dword [esp + 0x328], eax
push edx
call fcn.100208b2
xor edx, edx
mov dword [esp + 0x528], eax
mov eax, edx
mov dword [esp + 0x18], edx
shl eax, 7
add eax, edx
shl eax, 2
mov ecx, eax
neg ecx
mov esi, dword [esp + ecx + 0x528]
test esi, esi
je 0x1000c93e
lea esi, [esp + eax + 0x124]
lea ebp, [esp + ecx + 0x328]
mov dword [esp + 0x1c], ebp
mov eax, dword [esi + 0x200]
mov ecx, dword [ebp + 0x200]
cmp eax, ecx
jb 0x1000c930
sub eax, ecx
push ebx
mov edi, eax
lea eax, [esp + 0x28]
push eax
lea eax, [ebp + 0x100]
push edi
push eax
call fcn.1000b030
lea edx, [esi + 0x100]
lea ecx, [esp + 0x24]
mov eax, edx
mov dword [esp + 0x14], ebx
mov ebp, dword [ecx]
add ecx, 4
xor dword [eax], ebp
mov ebp, dword [esp + 0x14]
add eax, 4
dec ebp
mov dword [esp + 0x14], ebp
jne 0x1000c8c2
push ebx
push edx
call fcn.100208b2
mov dword [esi + 0x200], eax
mov eax, dword [esp + 0x10]
test eax, eax
je 0x1000c914
mov ebp, dword [esp + 0x1c]
lea ecx, [esp + 0x24]
push ebx
push ecx
push edi
push ebp
call fcn.1000b030
lea ecx, [esp + 0x24]
mov eax, esi
sub ecx, esi
mov edx, ebx
mov edi, dword [ecx + eax]
xor dword [eax], edi
add eax, 4
dec edx
jne 0x1000c907
jmp 0x1000c918
mov ebp, dword [esp + 0x1c]
mov eax, dword [esi + 0x200]
mov ecx, dword [ebp + 0x200]
cmp eax, ecx
jae 0x1000c89b
mov edx, dword [esp + 0x18]
mov eax, 1
sub eax, edx
mov edx, eax
jmp 0x1000c854
mov edi, dword [esp + 0x544]
test edi, edi
je 0x1000c95b
mov eax, edx
mov ecx, ebx
shl eax, 7
add eax, edx
lea esi, [esp + eax*4 + 0x224]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x1000c98a
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x540]
mov eax, edx
shl eax, 7
add eax, edx
mov edx, ecx
shr ecx, 2
lea esi, [esp + eax*4 + 0x124]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x51c
ret 0x18
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x51c
ret 0x18
Function at 0x10020655
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push 0x428
mov eax, 0x100279c3
call fcn.1002568a
mov edx, dword [ebp + 0xc]
xor ebx, ebx
mov eax, dword [ebp + 8]
mov esi, ebx
mov dword [ebp - 0x42c], edx
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x41c], eax
mov dword [ebp - 0x428], edx
mov dword [ebp - 0x424], esi
mov dword [ebp - 4], ebx
mov dword [ebp - 0x430], ecx
mov dword [ebp - 0x434], ebx
mov dword [ebp - 0x418], ebx
mov byte [ebp - 4], 1
test eax, eax
je 0x10020876
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcslen]
inc eax
push 2
push eax
mov dword [ebp - 0x420], eax
lea eax, [ebp - 0x420]
push eax
call fcn.100208b2
add esp, 0x10
test eax, eax
js 0x10020870
mov edi, dword [ebp - 0x420]
cmp edi, 0x400
jg 0x100206f9
push edi
call fcn.1001a3b8
pop ecx
test al, al
je 0x100206f9
mov eax, edi
call fcn.10025830
mov dword [ebp - 0x10], esp
mov eax, esp
jmp 0x1002070b
push edi
lea ecx, [ebp - 0x424]
call fcn.100208b2
mov esi, dword [ebp - 0x424]
push 3
push edi
push dword [ebp - 0x41c]
push eax
call fcn.100208b2
mov dword [ebp - 0x41c], eax
test eax, eax
je 0x10020870
push 0x60
push ebx
push eax
call fcn.10021bf8
mov edi, eax
mov dword [ebp - 0x420], edi
test edi, edi
jne 0x10020763
push 2
push ebx
push dword [ebp - 0x41c]
call fcn.10021bf8
mov edi, eax
mov dword [ebp - 0x420], eax
test edi, edi
jne 0x10020763
call fcn.10015691
mov ebx, eax
jmp 0x1002083f
push dword [ebp - 0x428]
push dword [ebp - 0x42c]
push edi
call dword [sym.imp.kernel32.dll_FindResourceA]
mov dword [ebp - 0x42c], eax
test eax, eax
jne 0x1002078a
call fcn.10015691
jmp 0x10020832
push eax
push edi
call dword [sym.imp.kernel32.dll_LoadResource]
mov dword [ebp - 0x428], eax
test eax, eax
je 0x10020780
push dword [ebp - 0x42c]
push edi
call dword [sym.imp.kernel32.dll_SizeofResource]
mov dword [ebp - 0x41c], eax
lea ecx, [eax + 1]
cmp ecx, eax
jae 0x100207bd
mov ebx, 0x8007000e
jmp 0x10020834
push ecx
lea ecx, [ebp - 0x418]
mov byte [ebp - 4], 2
call fcn.100208b2
jmp 0x100207e3
cmp dword [ebp - 0x418], 0
mov dword [ebp - 4], 1
je 0x100207b6
mov eax, dword [ebp - 0x41c]
push eax
push dword [ebp - 0x428]
push eax
push dword [ebp - 0x418]
call fcn.100208b2
mov eax, dword [ebp - 0x418]
add esp, 0x10
mov ecx, dword [ebp - 0x41c]
push dword [ebp + 0x14]
mov byte [eax + ecx], bl
lea ecx, [ebp - 0x434]
push dword [ebp - 0x418]
call fcn.100208b2
mov ebx, eax
test edi, edi
je 0x1002083f
push edi
call dword [sym.imp.kernel32.dll_FreeLibrary]
lea eax, [ebp - 0x414]
cmp dword [ebp - 0x418], eax
je 0x10020858
lea ecx, [ebp - 0x418]
call fcn.1001fe4b
or dword [ebp - 4], 0xffffffff
jmp 0x10020868
push esi
mov esi, dword [esi]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
test esi, esi
jne 0x1002085e
mov eax, ebx
jmp 0x100208a4
mov ebx, dword [ebp - 0x418]
lea eax, [ebp - 0x414]
cmp ebx, eax
je 0x1002088b
lea ecx, [ebp - 0x418]
call fcn.1001fe4b
or dword [ebp - 4], 0xffffffff
jmp 0x1002089b
push esi
mov esi, dword [esi]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
test esi, esi
jne 0x10020891
mov eax, 0x8007000e
lea esp, [ebp - 0x444]
call fcn.100255d7
ret 0x10
Function at 0x10001360
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 0x10]
xor ecx, ecx
test esi, esi
je 0x1000138b
mov edx, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jb 0x10001374
pop edi
mov eax, edx
pop esi
pop ebp
ret
mov eax, dword [ebp + 8]
pop esi
pop ebp
ret

Function at 0x10004c40
Capabilities:
Get file size
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, ecx
call fcn.10004ce0
push 0
push 0x80
push 3
push 0
push 1
push closesocket
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [esi], eax
cmp eax, 0xffffffff
je 0x10004cb6
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push 0
push 0
push 0
push 2
push 0
push dword [esi]
mov dword [esi + 8], eax
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov dword [esi + 4], eax
test eax, eax
je 0x10004caf
push 0
push 0
push 0
push 4
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [esi + 0xc], eax
test eax, eax
je 0x10004caf
mov al, 1
pop esi
pop ebp
ret 4
mov ecx, esi
call fcn.10004ce0
xor al, al
pop esi
pop ebp
ret 4

Function at 0x10004d90
Capabilities:
Receive data
Receive data on socket

Disassembly:
mov eax, dword [ecx + 0xc]
push dword [eax]
mov eax, dword [ecx + 8]
push dword [eax]
mov eax, dword [ecx + 4]
push dword [eax]
mov eax, dword [ecx]
push dword [eax]
call dword [sym.imp.WS2_32.dll_recv]
ret

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

Disassembly:
mov eax, dword [ecx + 0xc]
push dword [eax]
mov eax, dword [ecx + 8]
push dword [eax]
mov eax, dword [ecx + 4]
push dword [eax]
mov eax, dword [ecx]
push dword [eax]
call dword [sym.imp.WS2_32.dll_send]
ret

Function at 0x10005120
Capabilities:
Resolve dns

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40c
mov eax, dword [0x10059100]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
mov dword [ebp - 0x40c], edx
push edi
mov edi, dword [ebp + 0xc]
movzx eax, word [esi]
cmp eax, 2
je 0x10005151
cmp eax, 0x17
jne 0x100051c0
movzx eax, word [esi + 2]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
movzx eax, ax
push 0x401
mov dword [edi], eax
lea eax, [ebp - 0x408]
push 0
push eax
call fcn.1002c6d0
add esp, 0xc
lea ecx, [ebp - 0x408]
call fcn.10002090
push 2
push 0
push 0
mov edi, eax
call fcn.1000cca0
push eax
push edi
push dword [ebp - 0x40c]
push esi
call dword [sym.imp.WS2_32.dll_getnameinfo]
test eax, eax
jne 0x100051c0
push edi
mov ecx, ebx
call fcn.1000e9e0
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1002a6ae
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor al, al
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1002a6ae
mov esp, ebp
pop ebp
ret
Function at 0x100051e0
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x90
mov eax, dword [0x10059100]
xor eax, esp
mov dword [esp + 0x8c], eax
push esi
push edi
mov edi, dword [ebp + 8]
lea eax, [esp + 0xc]
push eax
lea eax, [esp + 0x14]
mov dword [esp + 0x10], 0x80
push eax
push ecx
mov esi, edx
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jne 0x10005230
mov edx, dword [esp + 0xc]
lea ecx, [esp + 0x10]
push edi
push esi
call fcn.10005120
add esp, 8
mov ecx, dword [esp + 0x94]
pop edi
pop esi
xor ecx, esp
call fcn.1002a6ae
mov esp, ebp
pop ebp
ret

Function at 0x10007a90
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x198
mov eax, dword [0x10059100]
xor eax, esp
mov dword [esp + 0x194], eax
lea eax, [esp]
mov byte [0x100618d8], 0
push eax
push 2
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
mov eax, 0x100618d8
jne 0x10007acd
mov byte [0x100618d8], 1
mov ecx, dword [esp + 0x194]
xor ecx, esp
call fcn.1002a6ae
mov esp, ebp
pop ebp
ret

Function at 0x1000a630
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x90
mov eax, dword [0x10059100]
xor eax, esp
mov dword [esp + 0x8c], eax
mov eax, dword [0x100618e0]
mov ecx, 0x100618e0
mov eax, dword [eax + 4]
call eax
test al, al
je 0x1000a6ea
sub esp, 0x28
mov ecx, esp
push 0x10061b20
call fcn.1000d490
sub esp, 8
push dword [ebp + 8]
call fcn.1000a550
push eax
mov ecx, 0x10061910
call fcn.1000eb70
mov ecx, 0x10061910
call fcn.1000eb60
cmp eax, 0xffffffff
je 0x1000a6ea
lea eax, [esp + 4]
mov dword [esp + 4], 0x80
push eax
lea eax, [esp + 0xc]
push eax
call fcn.1000eb60
push eax
call dword [sym.imp.WS2_32.dll_getsockname]
cmp eax, 0xffffffff
je 0x1000a6ea
mov ax, word [esp + 8]
cmp ax, 2
jne 0x1000a6e4
push dword [esp + 0xa]
call dword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
mov ecx, dword [esp + 0x8c]
xor ecx, esp
call fcn.1002a6ae
mov esp, ebp
pop ebp
ret 0xc
cmp ax, 0x17
je 0x1000a6c3
mov ecx, dword [esp + 0x8c]
or eax, 0xffffffff
xor ecx, esp
call fcn.1002a6ae
mov esp, ebp
pop ebp
ret 0xc
Function at 0x1000c2a0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10045c5d
mov eax, dword fs:[0]
push eax
sub esp, 0x34
mov eax, dword [0x10059100]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push str.127.0.0.1
lea ecx, [ebp - 0x28]
call fcn.10003ea0
push ecx
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0
push eax
call fcn.10008d50
lea ecx, [ebp - 0x28]
mov dword [0x100618cc], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1000ea20
cmp dword [0x100618cc], 0
je 0x1000c470
push str._logout.jsp
lea ecx, [ebp - 0x28]
call fcn.10003ea0
sub esp, 0x28
mov dword [ebp - 4], 1
mov ecx, esp
push ecx
call fcn.100152c0
lea eax, [ebp - 0x28]
push eax
call fcn.10008cc0
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
call fcn.1000ea20
push str._statsDriverPushBestRecords2011.jsp
lea ecx, [ebp - 0x28]
call fcn.10003ea0
sub esp, 0x28
mov dword [ebp - 4], 2
mov ecx, esp
push ecx
call fcn.100152e0
lea eax, [ebp - 0x28]
push eax
call fcn.10008cc0
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
call fcn.1000ea20
push str._heartbeat.jsp
lea ecx, [ebp - 0x28]
call fcn.10003ea0
sub esp, 0x28
mov dword [ebp - 4], 3
mov ecx, esp
push ecx
call fcn.10015300
lea eax, [ebp - 0x28]
push eax
call fcn.10008cc0
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
call fcn.1000ea20
push str._getMyRecords.jsp
lea ecx, [ebp - 0x28]
call fcn.10003ea0
sub esp, 0x28
mov dword [ebp - 4], 4
mov ecx, esp
push ecx
call fcn.10015320
lea eax, [ebp - 0x28]
push eax
call fcn.10008cc0
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
call fcn.1000ea20
push str._getMyRecordAndPos.jsp
lea ecx, [ebp - 0x28]
call fcn.10003ea0
sub esp, 0x28
mov dword [ebp - 4], 5
mov ecx, esp
push ecx
call fcn.10015340
lea eax, [ebp - 0x28]
push eax
call fcn.10008cc0
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
call fcn.1000ea20
push str._checkLogin.jsp
lea ecx, [ebp - 0x40]
call fcn.10003ea0
mov dword [ebp - 4], 6
sub esp, 0x28
mov ecx, esp
push ecx
call fcn.10015360
lea eax, [ebp - 0x40]
push eax
call fcn.10008cc0
lea ecx, [ebp - 0x40]
call fcn.1000ea20
push 0
push 0
push 0
push 0x1000c290
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, 0xffffffff
je 0x1000c47a
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret
mov ecx, str.Could_not_bind_any_port_to_the_local_server_
call fcn.1000c110
mov ecx, str.Could_not_start_internal_server_
call fcn.1000c110
int3

Function at 0x1000f9b0
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push esi
mov eax, 0x10061c10
mov esi, 0x270
nop dword [eax + eax]
mov edx, dword [eax]
lea eax, [eax + 4]
xor edx, dword [eax - 8]
and edx, 0x7fffffff
xor edx, dword [eax - 8]
mov ecx, edx
and cl, 1
movzx ecx, cl
neg ecx
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [eax + 0x62c]
xor ecx, edx
mov dword [eax + 0x9b8], ecx
sub esi, 1
jne 0x1000f9c0
pop esi
ret