joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4043ac
Capabilities:
Get geographical location
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffee0
push ebx
push esi
mov dword [ebp - 4], eax
push 0x105
lea eax, [ebp - 0x11d]
push eax
push 0
call sub.KERNEL32.DLL_GetModuleFileNameA_1
mov byte [ebp - 0x12], 0
lea eax, [ebp - 8]
push eax
push 0xf0019
push 0
push 0x4045dc
push 0x80000001
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
je 0x40442f
lea eax, [ebp - 8]
push eax
push 0xf0019
push 0
push 0x4045dc
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
je 0x40442f
lea eax, [ebp - 8]
push eax
push 0xf0019
push 0
push 0x4045f8
push 0x80000001
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
jne 0x4044b8
xor eax, eax
push ebp
push 0x4044b1
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x18], 5
lea eax, [ebp - 0x11d]
mov edx, 0x105
call fcn.004041e8
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x12]
push eax
push 0
push 0
lea eax, [ebp - 0x11d]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA
test eax, eax
je 0x404496
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x12]
push eax
push 0
push 0
push 0x404618
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA
test eax, eax
je 0x404496
mov byte [ebp - 0x12], 0
mov byte [ebp - 0xe], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4044b8
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegCloseKey
ret
push 0x105
mov eax, dword [ebp - 4]
push eax
lea eax, [ebp - 0x11d]
push eax
call sub.KERNEL32.DLL_lstrcpynA
push 5
lea eax, [ebp - 0xd]
push eax
push 3
call sub.KERNEL32.DLL_GetThreadLocale_1
push eax
call sub.KERNEL32.DLL_GetLocaleInfoA_1
xor esi, esi
cmp byte [ebp - 0x11d], 0
je 0x4045d2
cmp byte [ebp - 0xd], 0
jne 0x4044ff
cmp byte [ebp - 0x12], 0
je 0x4045d2
lea eax, [ebp - 0x11d]
push eax
call sub.KERNEL32.DLL_lstrlenA
mov ebx, eax
lea eax, [ebp - 0x11d]
add ebx, eax
jmp 0x404518
dec ebx
cmp byte [ebx], 0x2e
je 0x404527
lea eax, [ebp - 0x11d]
cmp ebx, eax
jne 0x404517
lea eax, [ebp - 0x11d]
cmp ebx, eax
je 0x4045d2
inc ebx
cmp byte [ebp - 0x12], 0
je 0x404564
mov edx, ebx
sub edx, eax
mov eax, 0x105
sub eax, edx
push eax
lea eax, [ebp - 0x12]
push eax
push ebx
call sub.KERNEL32.DLL_lstrcpynA
push 2
push 0
lea eax, [ebp - 0x11d]
push eax
call sub.KERNEL32.DLL_LoadLibraryExA
mov esi, eax
test esi, esi
jne 0x4045d2
cmp byte [ebp - 0xd], 0
je 0x4045d2
lea eax, [ebp - 0x11d]
mov edx, ebx
sub edx, eax
mov eax, 0x105
sub eax, edx
push eax
lea eax, [ebp - 0xd]
push eax
push ebx
call sub.KERNEL32.DLL_lstrcpynA
push 2
push 0
lea eax, [ebp - 0x11d]
push eax
call sub.KERNEL32.DLL_LoadLibraryExA
mov esi, eax
test esi, esi
jne 0x4045d2
mov byte [ebp - 0xb], 0
lea eax, [ebp - 0x11d]
mov edx, ebx
sub edx, eax
mov eax, 0x105
sub eax, edx
push eax
lea eax, [ebp - 0xd]
push eax
push ebx
call sub.KERNEL32.DLL_lstrcpynA
push 2
push 0
lea eax, [ebp - 0x11d]
push eax
call sub.KERNEL32.DLL_LoadLibraryExA
mov esi, eax
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x404770
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
xor edx, edx
mov dword [ebp - 0x10], edx
xor edx, edx
push ebp
push 0x4047d6
push dword fs:[edx]
mov dword fs:[edx], esp
push 7
lea edx, [ebp - 0xb]
push edx
push 0x1004
push eax
call sub.KERNEL32.DLL_GetLocaleInfoA_1
lea eax, [ebp - 0x10]
lea edx, [ebp - 0xb]
mov ecx, 7
call fcn.00403b14
mov eax, dword [ebp - 0x10]
lea edx, [ebp - 4]
call fcn.004029a0
mov ebx, eax
cmp dword [ebp - 4], 0
je 0x4047c0
xor ebx, ebx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4047dd
lea eax, [ebp - 0x10]
call fcn.004038b0
ret

Function at 0x4065cc
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff00
push ebx
push esi
mov esi, ecx
mov ebx, dword [ebp + 8]
push pe_nt_image_headers32
lea ecx, [ebp - 0x100]
push ecx
push edx
push eax
call sub.KERNEL32.DLL_GetLocaleInfoA
test eax, eax
jle 0x406605
mov ecx, eax
dec ecx
lea edx, [ebp - 0x100]
mov eax, ebx
call fcn.004039a0
jmp 0x40660e
mov eax, ebx
mov edx, esi
call fcn.00403904
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x401f10
Capabilities:
Get disk information
Inspect load icon resource
Read file on windows

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x148
push ebx
push esi
push edi
push 0x65
push eax
call dword [sym.imp.USER32.dll_LoadIconA]
lea ecx, [esp + 0xc]
call fcn.00401000
lea ecx, [esp + 0x50]
push 0x104
push ecx
push 0
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameA]
lea edx, [esp + 0x50]
lea ecx, [esp + 0xc]
push edx
call fcn.004012b0
test eax, eax
je 0x402021
lea eax, [esp + 0x50]
push 0x404030
push eax
call dword [sym.imp.MSVCRT.dll_fopen]
mov esi, eax
add esp, 8
test esi, esi
je 0x402084
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x10]
call fcn.00401290
mov edi, dword [sym.imp.MSVCRT.dll_fseek]
sub eax, 8
push 0
push eax
push esi
call edi
mov ebx, dword [sym.imp.MSVCRT.dll_fread]
push esi
push 1
lea edx, [esp + 0x24]
push 8
push edx
call ebx
mov eax, dword [esp + 0x2c]
push 0
push eax
push esi
call edi
push esi
push 1
lea ecx, [esp + 0x48]
push 0x38
push ecx
call ebx
push esi
call dword [sym.imp.MSVCRT.dll_fclose]
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x50]
add esp, 0x3c
test eax, eax
mov eax, dword [esp + 0x10]
push edx
push eax
jne 0x401ffe
sub esp, 0x38
mov ecx, 0xe
lea esi, [esp + 0x58]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x90]
push ecx
lea ecx, [esp + 0x50]
call fcn.00401800
jmp 0x402084
sub esp, 0x38
mov ecx, 0xe
lea esi, [esp + 0x58]
mov edi, esp
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x90]
push ecx
lea ecx, [esp + 0x50]
call fcn.00401a90
jmp 0x402084
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_1
call dword [sym.imp.KERNEL32.DLL_GetLogicalDrives]
mov edi, eax
mov esi, 1
xor ebx, ebx
test edi, esi
je 0x40206a
mov dl, bl
lea ecx, [esp + 0x10]
add dl, 0x41
push edx
call sub.MFC42.DLL_CString::operator_1
push 0x40412c
lea ecx, [esp + 0x14]
call fcn.004020e2
lea ecx, [esp + 0xc]
mov eax, dword [esp + 0x10]
push eax
push 0
call fcn.00401cf0
add esi, esi
inc ebx
cmp ebx, 0x1a
jl 0x402039
lea ecx, [esp + 0xc]
call fcn.00401040
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0xc]
call fcn.00401030
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x148
ret 0x10

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

Disassembly:
pushal
nop
nop
nop
nop
nop
mov eax, section..rsrc
nop
mov ebx, 0x40c7d0
nop
nop
mov ecx, 0x1cac5959
test eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
je 0x43204e
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
inc eax
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
cmp eax, ebx
nop
nop
nop
jne 0x432024
nop
nop
nop
mov eax, section..data
nop
nop
mov ebx, 0x42f314
nop
mov ecx, 0x48802142
nop
nop
test eax, eax
nop
nop
nop
nop
nop
nop
je 0x432084
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
add eax, 4
cmp eax, ebx
nop
nop
nop
nop
jne 0x43206c
nop
nop
nop
nop
nop
nop
nop
nop
nop
popal
jmp 0x431219
Function at 0x402eb3
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x41a1ec]
jne 0x402ebd
repz ret
jmp fcn.00405817

Function at 0x40c64c
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x41a1ec]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0xc]
push esi
push edi
mov dword [ebp - 0x1c], eax
call fcn.00406daa
and dword [ebp - 0x14], 0
cmp dword [0x41c2e8], 0
mov dword [ebp - 0x18], eax
jne 0x40c6ff
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x40c7a7
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MessageBoxW
push ebx
call edi
test eax, eax
je 0x40c7a7
mov esi, dword [sym.imp.KERNEL32.dll_EncodePointer]
push eax
call esi
push str.GetActiveWindow
push ebx
mov dword [0x41c2e8], eax
call edi
push eax
call esi
push str.GetLastActivePopup
push ebx
mov dword [0x41c2ec], eax
call edi
push eax
call esi
push str.GetUserObjectInformationW
push ebx
mov dword [0x41c2f0], eax
call edi
push eax
call esi
mov dword [0x41c2f8], eax
test eax, eax
je 0x40c6ff
push str.GetProcessWindowStation
push ebx
call edi
push eax
call esi
mov dword [0x41c2f4], eax
mov eax, dword [0x41c2f4]
mov ecx, dword [ebp - 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, ecx
je 0x40c758
cmp dword [0x41c2f8], ecx
je 0x40c758
push eax
call esi
push dword [0x41c2f8]
mov edi, eax
call esi
mov ebx, eax
test edi, edi
je 0x40c758
test ebx, ebx
je 0x40c758
call edi
test eax, eax
je 0x40c74f
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call ebx
test eax, eax
je 0x40c74f
test byte [ebp - 8], 1
jne 0x40c758
or dword [ebp + 0x10], 0x200000
jmp 0x40c78b
mov eax, dword [0x41c2ec]
cmp eax, dword [ebp - 0x18]
je 0x40c78b
push eax
call esi
test eax, eax
je 0x40c78b
call eax
mov dword [ebp - 0x14], eax
test eax, eax
je 0x40c78b
mov eax, dword [0x41c2f0]
cmp eax, dword [ebp - 0x18]
je 0x40c78b
push eax
call esi
test eax, eax
je 0x40c78b
push dword [ebp - 0x14]
call eax
mov dword [ebp - 0x14], eax
push dword [0x41c2e8]
call esi
test eax, eax
je 0x40c7a7
push dword [ebp + 0x10]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x14]
call eax
jmp 0x40c7a9
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00402eb3
leave
ret

Function at 0x40d7e7
Capabilities:
Encode data using xor
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x804
mov eax, dword [0x41a1ec]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
xor esi, esi
push edi
mov edi, dword [0x41c740]
cmp dword [ebp + 8], esi
jle 0x40d83c
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
call fcn.0040d7c3
xor byte [edi + esi], al
push 0
call dword [sym.imp.USER32.dll_SwitchDesktop]
lea eax, [ebp - 0x804]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
inc esi
cmp esi, dword [ebp + 8]
jl 0x40d809
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.00402eb3
leave
ret 4
Function at 0x401040
Capabilities:
Read file on windows
Write file on windows

Disassembly:
sub esp, 0x48
push ebx
push esi
xor ebx, ebx
lea eax, [esp + 0x18]
push 0x38
push str.1.2.11
push eax
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], ebx
call fcn.00407c80
mov esi, eax
add esp, 0xc
test esi, esi
je 0x401094
mov eax, dword [esp + 0x58]
push esi
add eax, 0x12
push eax
push str.Failed_to_extract__s:_inflateInit___failed_with_return_code__d__n
call fcn.00401b40
add esp, 0xc
or eax, 0xffffffff
pop esi
pop ebx
add esp, 0x48
ret
push 0x2000
call fcn.0040e3d0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4010c8
mov eax, dword [esp + 0x58]
add eax, 0x12
push eax
push str.Failed_to_extract__s:_failed_to_allocate_temporary_input_buffer__n
push str.malloc
call fcn.00401b20
add esp, 0xc
jmp 0x4011f0
push 0x2000
call fcn.0040e3d0
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4010fa
mov ecx, dword [esp + 0x58]
add ecx, 0x12
push ecx
push str.Failed_to_extract__s:_failed_to_allocate_temporary_output_buffer__n
push str.malloc
call fcn.00401b20
add esp, 0xc
jmp 0x4011f0
mov eax, dword [esp + 0x58]
xor ecx, ecx
push ebp
mov ebp, dword [esp + 0x60]
push edi
mov eax, dword [eax + 8]
mov edi, dword [esp + 0x68]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
test ecx, ecx
jb 0x401129
ja 0x401122
cmp eax, 0x2000
jbe 0x401129
mov esi, 0x2000
jmp 0x40112b
mov esi, eax
mov eax, dword [esp + 0x5c]
push dword [eax]
push esi
push 1
push dword [esp + 0x24]
call fcn.0040afde
add esp, 0x10
cmp eax, esi
jne 0x4011eb
mov eax, dword [esp + 0x5c]
push dword [eax]
call fcn.0040adcc
add esp, 4
test eax, eax
jne 0x4011eb
sub dword [esp + 0x10], esi
mov dword [esp + 0x24], esi
sbb dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
mov dword [esp + 0x30], 0x2000
push 0
push eax
mov dword [esp + 0x34], ebx
call fcn.004062f0
add esp, 8
mov dword [esp + 0x1c], eax
lea ecx, [eax + 4]
cmp ecx, 6
ja case.0x4011a0.1
movzx ecx, byte [ecx + 0x401274]
jmp dword [ecx*4 + 0x401268]
mov esi, 0x2000
sub esi, dword [esp + 0x30]
test ebp, ebp
je 0x401214
push ebp
push esi
push 1
push ebx
call fcn.0040b611
add esp, 0x10
cmp eax, esi
jne 0x4011d2
push ebp
call fcn.0040adcc
add esp, 4
test eax, eax
je 0x401225
or eax, 0xffffffff
push eax
mov eax, dword [esp + 0x64]
add eax, 0x12
push eax
push str.Failed_to_extract__s:_decompression_resulted_in_return_code__d__n
call fcn.00401b40
add esp, 0xc
or esi, 0xffffffff
pop edi
pop ebp
lea eax, [esp + 0x18]
push eax
call fcn.00407ac0
push dword [esp + 0x14]
call fcn.0040e3b5
push ebx
call fcn.0040e3b5
add esp, 0xc
mov eax, esi
pop esi
pop ebx
add esp, 0x48
ret
test edi, edi
je 0x401229
push esi
push ebx
push edi
call fcn.00409a30
add esp, 0xc
add edi, esi
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x30], 0
je 0x401172
cmp eax, 1
je 0x401263
mov ecx, dword [esp + 0x14]
test ecx, ecx
jne 0x401247
cmp dword [esp + 0x10], ecx
jbe 0x4011d5
mov eax, dword [esp + 0x10]
jmp 0x401115
mov eax, 0xfffffffd
jmp 0x4011d5
cmp eax, 1
jne 0x4011d5
xor esi, esi
jmp 0x4011ee
Function at 0x4012a0
Capabilities:
Read file on windows

Disassembly:
push ecx
push ebp
mov ebp, dword [esp + 0xc]
mov edx, dword [ebp]
test edx, edx
jne 0x4012e1
lea eax, [ebp + 0x70]
push 0x423200
push eax
call fcn.00402b30
mov edx, eax
add esp, 8
mov dword [ebp], edx
test edx, edx
jne 0x4012e1
mov eax, dword [esp + 0x10]
add eax, 0x12
push eax
push str.Failed_to_extract__s:_failed_to_open_archive_file__n
call fcn.00401b40
add esp, 8
xor eax, eax
pop ebp
pop ecx
ret
push ebx
mov ebx, dword [esp + 0x14]
xor eax, eax
push 0
mov ecx, dword [ebx + 4]
add ecx, dword [ebp + 8]
adc eax, dword [ebp + 0xc]
push eax
push ecx
push edx
call fcn.0040b3d7
add esp, 0x10
test eax, eax
jns 0x40131e
lea eax, [ebx + 0x12]
push eax
push str.Failed_to_extract__s:_failed_to_seek_to_the_entrys_data__n
push str.fseek
call fcn.00401b20
add esp, 0xc
xor eax, eax
pop ebx
pop ebp
pop ecx
ret
push esi
push edi
push dword [ebx + 0xc]
call fcn.0040e3d0
mov esi, eax
add esp, 4
mov dword [esp + 0x18], esi
test esi, esi
jne 0x401350
push dword [ebx + 0xc]
lea ecx, [ebx + 0x12]
push ecx
push str.Failed_to_extract__s:_failed_to_allocate_data_buffer___u_bytes___n
push str.malloc
call fcn.00401b20
add esp, 0x10
jmp 0x4013cb
cmp byte [ebx + 0x10], 1
jne 0x401374
push esi
push 0
push ebx
push ebp
call fcn.00401040
add esp, 0x10
test eax, eax
je 0x4013cb
push esi
call fcn.0040e3b5
add esp, 4
xor esi, esi
jmp 0x4013cb
mov eax, esi
mov esi, dword [ebx + 0xc]
xor ebx, ebx
mov dword [esp + 0x10], eax
test esi, esi
je 0x4013c7
test ebx, ebx
jb 0x401398
ja 0x401391
cmp esi, 0x2000
jbe 0x401398
mov edi, 0x2000
jmp 0x40139a
mov edi, esi
push dword [ebp]
push 1
push edi
push eax
call fcn.0040afde
add esp, 0x10
cmp eax, 1
jb 0x4013ea
mov eax, dword [esp + 0x10]
sub esi, edi
sbb ebx, 0
add eax, edi
mov dword [esp + 0x10], eax
test ebx, ebx
ja 0x401391
jb 0x4013c7
test esi, esi
jne 0x401383
mov esi, dword [esp + 0x18]
mov eax, dword [ebp]
test eax, eax
je 0x4013e2
push eax
call fcn.0040ad1c
add esp, 4
mov dword [ebp], 0
pop edi
mov eax, esi
pop esi
pop ebx
pop ebp
pop ecx
ret
mov eax, dword [esp + 0x1c]
add eax, 0x12
push eax
push str.Failed_to_extract__s:_failed_to_read_data_chunk__n
push str.fread
call fcn.00401b20
mov esi, dword [esp + 0x24]
add esp, 0xc
push esi
call fcn.0040e3b5
add esp, 4
xor esi, esi
jmp 0x4013cb
Function at 0x401420
Capabilities:
Read file on windows
Write file on windows

Disassembly:
sub esp, 0xc
push ebp
mov ebp, dword [esp + 0x14]
push ebp
call fcn.00404fc0
add esp, 4
cmp eax, 0xffffffff
jne 0x40143d
or eax, eax
pop ebp
add esp, 0xc
ret
push ebx
push esi
mov esi, dword [esp + 0x20]
lea eax, [ebp + 0x3070]
push edi
lea ebx, [esi + 0x12]
push ebx
push eax
mov dword [esp + 0x1c], ebx
call fcn.00405290
mov edi, eax
add esp, 8
mov dword [esp + 0x18], edi
test edi, edi
jne 0x401483
push ebx
push str.Failed_to_extract__s:_failed_to_open_target_file__n
push str.fopen
call fcn.00401b20
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebx
pop ebp
add esp, 0xc
ret
mov edx, dword [ebp]
test edx, edx
jne 0x4014ba
lea eax, [ebp + 0x70]
push 0x423200
push eax
call fcn.00402b30
mov edx, eax
add esp, 8
mov dword [ebp], edx
test edx, edx
jne 0x4014ba
push ebx
push str.Failed_to_extract__s:_failed_to_open_archive_file__n
call fcn.00401b40
add esp, 8
or edi, 0xffffffff
jmp 0x4015e0
mov ecx, dword [esi + 4]
xor eax, eax
add ecx, dword [ebp + 8]
push 0
adc eax, dword [ebp + 0xc]
push eax
push ecx
push edx
call fcn.0040b3d7
add esp, 0x10
test eax, eax
jns 0x4014f1
push ebx
push str.Failed_to_extract__s:_failed_to_seek_to_the_entrys_data__n
push str.fseek
call fcn.00401b20
add esp, 0xc
or edi, 0xffffffff
jmp 0x4015e0
cmp byte [esi + 0x10], 1
jne 0x40150b
push 0
push edi
push esi
push ebp
call fcn.00401040
add esp, 0x10
mov edi, eax
jmp 0x4015e0
push 0x2000
xor edi, edi
call fcn.0040e3d0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x40153d
push ebx
push str.Failed_to_extract__s:_failed_to_allocate_temporary_buffer__n
push str.malloc
call fcn.00401b20
add esp, 0xc
or edi, 0xffffffff
jmp 0x4015e0
mov esi, dword [esi + 0xc]
xor ebx, ebx
test esi, esi
je 0x4015d7
nop word [eax + eax]
test ebx, ebx
jb 0x401565
ja 0x40155e
cmp esi, 0x2000
jbe 0x401565
mov edi, 0x2000
jmp 0x401567
mov edi, esi
push dword [ebp]
push 1
push edi
push eax
call fcn.0040afde
add esp, 0x10
cmp eax, 1
jb 0x4015ba
push dword [esp + 0x18]
push 1
push edi
push dword [esp + 0x1c]
call fcn.0040b611
add esp, 0x10
cmp eax, 1
jb 0x4015aa
mov eax, dword [esp + 0x10]
sub esi, edi
sbb ebx, 0
test ebx, ebx
ja 0x40155e
jb 0x4015a6
test esi, esi
jne 0x401550
xor edi, edi
jmp 0x4015d3
push dword [esp + 0x14]
push str.Failed_to_extract__s:_failed_to_write_data_chunk__n
push str.fwrite
jmp 0x4015c8
push dword [esp + 0x14]
push str.Failed_to_extract__s:_failed_to_read_data_chunk__n
push str.fread
call fcn.00401b20
add esp, 0xc
or edi, 0xffffffff
mov eax, dword [esp + 0x10]
push eax
call fcn.0040e3b5
add esp, 4
mov eax, dword [ebp]
test eax, eax
je 0x4015f7
push eax
call fcn.0040ad1c
add esp, 4
mov dword [ebp], 0
push dword [esp + 0x18]
call fcn.0040ad1c
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
pop ebp
add esp, 0xc
ret
Function at 0x404d00
Capabilities:
Create directory
Query environment variable

Disassembly:
mov eax, 0x4004
call fcn.00408e00
mov eax, dword [0x430004]
xor eax, esp
mov dword [esp + 0x4000], eax
mov eax, dword [esp + 0x4008]
push edi
push 0
push eax
push 0
call fcn.00406080
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x404d58
push str.LOADER:_Failed_to_convert_runtime_tmpdir_to_a_wide_string._n
call fcn.00401b40
add esp, 4
xor eax, eax
pop edi
mov ecx, dword [esp + 0x4000]
xor ecx, esp
call fcn.00408dea
add esp, 0x4004
ret
push esi
push 0x1000
lea eax, [esp + 0xc]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
push edi
mov esi, eax
call fcn.0040e3b5
add esp, 4
test esi, esi
jne 0x404d9f
push str.LOADER:_Failed_to_expand_environment_variables_in_the_runtime_tmpdir._n
call fcn.00401b40
add esp, 4
xor eax, eax
pop esi
pop edi
mov ecx, dword [esp + 0x4000]
xor ecx, esp
call fcn.00408dea
add esp, 0x4004
ret
lea eax, [esp + 8]
push eax
call fcn.00405d80
add esp, 4
test eax, eax
lea eax, [esp + 8]
je 0x404dbf
push eax
call fcn.0040fd24
add esp, 4
jmp 0x404dcf
push 0x1000
push eax
push 0
call fcn.0040f3ae
add esp, 0xc
mov esi, eax
test esi, esi
jne 0x404dfb
push str.LOADER:_Failed_to_obtain_the_absolute_path_of_the_runtime_tmpdir._n
call fcn.00401b40
add esp, 4
xor eax, eax
pop esi
pop edi
mov ecx, dword [esp + 0x4000]
xor ecx, esp
call fcn.00408dea
add esp, 0x4004
ret
push ebx
push 0x2000
lea eax, [esp + 0x2010]
push 0
push eax
call fcn.0040a0e0
push 0x5c
push esi
call fcn.0040a377
mov ebx, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov edi, eax
add esp, 0x14
test edi, edi
je 0x404e69
nop word [eax + eax]
mov ecx, edi
lea eax, [esp + 0x200c]
sub ecx, esi
sar ecx, 1
inc ecx
push ecx
push esi
push eax
call fcn.0040fd83
add esp, 0xc
lea eax, [esp + 0x200c]
push 0
push eax
call ebx
lea eax, [edi + 2]
push 0x5c
push eax
call fcn.0040a377
mov edi, eax
add esp, 8
test edi, edi
jne 0x404e30
push 0
push esi
call ebx
mov ecx, dword [esp + 0x400c]
mov eax, esi
pop ebx
pop esi
pop edi
xor ecx, esp
call fcn.00408dea
add esp, 0x4004
ret
Function at 0x404e90
Capabilities:
Read file on windows
Write file on windows

Disassembly:
mov eax, 0x1004
call fcn.00408e00
mov eax, dword [0x430004]
xor eax, esp
mov dword [esp + 0x1000], eax
mov eax, dword [esp + 0x1008]
push ebx
push esi
mov esi, dword [esp + 0x1018]
push edi
mov edi, dword [esp + 0x1018]
push 0x423200
push eax
call fcn.00402b30
push esi
push edi
mov ebx, eax
call fcn.00405290
add esp, 0x10
xor edi, edi
mov esi, eax
test ebx, ebx
je 0x404f8f
push ebx
test esi, esi
je 0x404f94
call fcn.0040ada0
add esp, 4
test eax, eax
jne 0x404f66
nop dword [eax + eax]
push ebx
push 0x1000
lea eax, [esp + 0x14]
push 1
push eax
call fcn.0040afde
add esp, 0x10
test eax, eax
jne 0x404f29
push ebx
call fcn.0040adcc
add esp, 4
test eax, eax
je 0x404f4b
push ebx
jmp 0x404f5b
push esi
push eax
lea eax, [esp + 0x14]
push 1
push eax
call fcn.0040b611
add esp, 0x10
test eax, eax
je 0x404f5a
push esi
call fcn.0040adcc
add esp, 4
test eax, eax
jne 0x404f5a
push ebx
call fcn.0040ada0
add esp, 4
test eax, eax
je 0x404f00
jmp 0x404f66
push esi
call fcn.00411498
add esp, 4
or edi, 0xffffffff
push ebx
call fcn.0040ad1c
push esi
call fcn.0040ad1c
add esp, 8
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1000]
xor ecx, esp
call fcn.00408dea
add esp, 0x1004
ret
test esi, esi
je 0x404f9c
push esi
call fcn.0040ad1c
add esp, 4
mov ecx, dword [esp + 0x100c]
or eax, 0xffffffff
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00408dea
add esp, 0x1004
ret