joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40a8f0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6315a0
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x70ee84]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, dword [ebp + 8]
mov dword [ebp - 4], 0
cmp dword [esi + 0x20dec], 0
je 0x40a947
push 0
push 0x34b
push str..Updater.cpp
push str.status___STATUS_Checking
call fcn.005b9260
add esp, 0x10
mov ecx, esi
call fcn.00408f90
call fcn.00409180
test al, al
je 0x40a972
mov ecx, esi
call fcn.004091f0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edi, esi
mov byte [esi + 0x98], 1
call fcn.00409480
mov dword [esi + 0x20dec], eax
lea eax, [esi + 0x20df5]
push 0x6df002
push eax
call fcn.00401ac0
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
add esp, 8
mov ebx, 5
jmp 0x40a9b0
cmp dword [esi + 0x20dec], ebx
jne 0x40aab0
mov ecx, dword [esi + 0x217d0]
mov eax, dword [0x8f68c8]
or eax, dword [0x8f68cc]
mov dword [0x8f68b8], ecx
mov edx, dword [esi + 0x217d4]
mov dword [0x8f68bc], edx
je 0x40aa09
call fcn.00402d90
test al, al
je 0x40aa09
push 0
push 0
push 0x8f68b8
push 0x402a50
push 0
push 0
call fcn.005df7d7
add esp, 0x18
mov dword [0x8f6a80], eax
call fcn.004094e0
call fcn.00409630
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x5e4]
push ecx
push eax
push str.current_build_version_d__updater_data_version_d_n
call fcn.005b8f50
mov eax, dword [esi + 0x5e4]
add esp, 0xc
cmp eax, dword [esi + 0x1c]
jne 0x40aa3d
mov eax, esi
call fcn.0040a820
mov ebx, esi
call fcn.004098d0
mov ecx, esi
call fcn.00409fb0
call fcn.0040a780
push str.Validating_game_data_n
call fcn.005b8f50
add esp, 4
lea edx, [esi + 0x20df5]
push str.Validating_game_data
push edx
call fcn.00401ac0
add esp, 8
lea eax, [esi + 0x21600]
push eax
lea ecx, [esi + 0x215f8]
push ecx
push 0
lea ecx, [esi + 0x4e0]
call fcn.005cad80
test al, al
jne 0x40aa9c
push str.Game_data_is_damaged__please_restart_launcher_to_repair_damaged_files
mov eax, esi
call fcn.00408f30
push str.Validating_game_data___finished_n
call fcn.005b8f50
add esp, 4
mov eax, esi
call fcn.0040a820
push 0x32
call edi
jmp 0x40a9b0

Function at 0x40bf90
Capabilities:
Create thread

Disassembly:
cmp dword [esi + 0x21618], 0
je 0x40bfb2
push 0
push 0x5d5
push str..Updater.cpp
push str.mainThread___NULL
call fcn.005b9260
add esp, 0x10
cmp dword [esi + 0x21630], 0
je 0x40bfd4
push 0
push 0x5d6
push str..Updater.cpp
push str.loginThread___NULL
call fcn.005b9260
add esp, 0x10
push 0
push 0
push esi
push 0x40ab80
push 0
push 0
call fcn.005df7d7
push 0
push 0
push esi
push 0x40b430
push 0
push 0
mov dword [esi + 0x21618], eax
call fcn.005df7d7
push 0
push 0
push esi
push 0x40b440
push 0
push 0
mov dword [esi + 0x21cf8], eax
call fcn.005df7d7
add esp, 0x48
mov dword [esi + 0x21628], eax
ret
Function at 0x40c0b0
Capabilities:
Terminate thread

Disassembly:
push ecx
push ebx
push ebp
push esi
push edi
push str.CUpdater::Stop___n
mov esi, eax
call fcn.005b8f50
xor ebx, ebx
add esp, 4
cmp byte [esi + 0x20df4], bl
jne 0x40c0d4
mov eax, dword [esi + 0x21620]
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 0x8d8f7c
call edi
lea eax, [esi + 0x20dd4]
push eax
mov dword [esp + 0x14], eax
call edi
mov eax, dword [esi + 0x21618]
mov edi, dword [sym.imp.KERNEL32.dll_TerminateThread]
mov ebp, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp eax, ebx
je 0x40c117
push ebx
push eax
call edi
mov ecx, dword [esi + 0x21618]
push ecx
call ebp
mov dword [esi + 0x21618], ebx
mov eax, dword [esi + 0x21cf8]
cmp eax, ebx
je 0x40c134
push ebx
push eax
call edi
mov edx, dword [esi + 0x21cf8]
push edx
call ebp
mov dword [esi + 0x21cf8], ebx
mov eax, dword [esi + 0x21630]
cmp eax, ebx
je 0x40c151
push ebx
push eax
call edi
mov eax, dword [esi + 0x21630]
push eax
call ebp
mov dword [esi + 0x21630], ebx
mov eax, dword [esi + 0x21628]
cmp eax, ebx
je 0x40c16e
push ebx
push eax
call edi
mov ecx, dword [esi + 0x21628]
push ecx
call ebp
mov dword [esi + 0x21628], ebx
mov edx, dword [esp + 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push edx
call esi
push 0x8d8f7c
call esi
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret

Function at 0x40e250
Capabilities:
Get local ipv4 addresses
Get mac address on windows

Disassembly:
sub esp, 8
push esi
push edi
push 0x11
mov dword [esp + 0xc], 4
call fcn.005e0b23
mov edi, eax
push 0x288
mov dword [esp + 0x14], edi
call fcn.005e0b23
mov esi, eax
add esp, 8
test esi, esi
jne 0x40e28a
push str.Error_allocating_memory_needed_to_call_GetAdaptersinfo_n
call fcn.005e0bed
add esp, 4
lea eax, [esp + 8]
push eax
push esi
call sub.IPHLPAPI.DLL_GetAdaptersInfo
cmp eax, 0x6f
jne 0x40e2ba
mov ecx, dword [esp + 8]
push ecx
call fcn.005e0b23
mov esi, eax
add esp, 4
test esi, esi
jne 0x40e2ba
push str.Error_allocating_memory_needed_to_call_GetAdaptersinfo_n
call fcn.005e0bed
add esp, 4
lea edx, [esp + 8]
push edx
push esi
call sub.IPHLPAPI.DLL_GetAdaptersInfo
test eax, eax
jne 0x40e325
movzx eax, byte [esi + 0x199]
movzx ecx, byte [esi + 0x198]
movzx edx, byte [esi + 0x197]
push eax
movzx eax, byte [esi + 0x196]
push ecx
movzx ecx, byte [esi + 0x195]
push edx
movzx edx, byte [esi + 0x194]
push eax
push ecx
push edx
lea eax, [esp + 0x24]
push str._02X:_02X:_02X:_02X:_02X:_02X
push eax
call fcn.0040f250
push edi
add esi, 0x1b0
push esi
push str.Address:__s__mac:__s_n
call fcn.005e0bed
add esp, 0x2c
mov eax, edi
pop edi
pop esi
add esp, 8
ret
push esi
call fcn.005e0cb2
add esp, 4
pop edi
xor eax, eax
pop esi
add esp, 8
ret
Function at 0x40e980
Capabilities:
Set registry value

Disassembly:
sub esp, 0x28
push esi
push edi
push 0
lea eax, [esp + 0xc]
push eax
push 0
push 0xf003f
push 0
push 0
push 0
mov edi, 0x1d50547a
lea esi, [esp + 0x28]
call fcn.0040f0a0
push eax
push bind
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
pop edi
pop esi
test eax, eax
jne 0x40e9e9
mov eax, ebx
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40e9c0
mov ecx, dword [esp]
sub eax, edx
inc eax
push eax
push ebx
push 1
push 0
push str.username
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov edx, dword [esp]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
add esp, 0x28
ret

Function at 0x40e9f0
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x2c
push esi
push edi
lea eax, [esp + 8]
push eax
push 0xf003f
push 0
mov edi, 0x1d50547a
lea esi, [esp + 0x1c]
call fcn.0040f0a0
push eax
push bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
pop edi
pop esi
test eax, eax
jne 0x40ea4f
mov edx, dword [esp + 0x30]
lea ecx, [esp + 4]
push ecx
push edx
push eax
push eax
mov eax, dword [esp + 0x10]
push str.username
push eax
mov dword [esp + 0x1c], 0x80
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [esp]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, 1
add esp, 0x2c
ret 4

Function at 0x40ea60
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x60
push esi
push edi
lea eax, [esp + 8]
push eax
push 0x20019
mov edi, str.JBVAQFZLVOIM_YAFZ__JDajnqASjLUKEQKESAFDjHL_UCn
push 0
sub edi, 0x2757e3bf
lea esi, [esp + 0x1f]
call fcn.0040f0e0
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
setne al
pop edi
pop esi
test al, al
jne 0x40ead1
mov edx, dword [esp + 0x64]
mov eax, dword [esp]
lea ecx, [esp + 4]
push ecx
add edx, 0x132
push edx
push 0
push 0
push str.Identifier
push eax
mov dword [esp + 0x1c], 0x32
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [esp]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, 1
add esp, 0x60
ret 4

Function at 0x40eae0
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x60
push ebx
push esi
push edi
mov edi, str._bhgp_vHn_T__W__3_
sub edi, 0x6ad66049
lea esi, [esp + 0x15]
mov ebx, eax
call fcn.0040f120
lea ecx, [esp + 0xc]
push ecx
push 0xf003f
push 0
push eax
push bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x40eb26
call fcn.0040eb70
pop edi
pop esi
mov al, 1
pop ebx
add esp, 0x60
ret
mov eax, dword [esp + 0xc]
lea edx, [esp + 0x10]
push edx
add ebx, 0x100
push ebx
push 0
push 0
push str.hardwareid
push eax
mov dword [esp + 0x28], 0x32
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [esp + 0xc]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
mov al, 1
pop ebx
add esp, 0x60
ret
Function at 0x40eb70
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x230
mov eax, dword [0x70ee84]
xor eax, esp
mov dword [esp + 0x22c], eax
push esi
push edi
mov edi, 0x1c1dd2a7
lea esi, [esp + 0x11]
call fcn.0040f160
push 0
lea ecx, [esp + 0x10]
push ecx
push 0
push 0xf003f
push 0
push 0
push 0
push eax
push bind
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x40ec2b
push 0x1c8
push eax
lea edx, [esp + 0x70]
push edx
call fcn.005e3040
add esp, 0xc
lea eax, [esp + 0x68]
call fcn.004021c0
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
push eax
push ecx
lea esi, [ebx + 0x100]
push str.0x_I64x
mov edx, esi
call fcn.0040f1a0
mov eax, esi
add esp, 0xc
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40ec00
sub eax, edx
mov edx, dword [esp + 0xc]
inc eax
push eax
push esi
push 1
push 0
push str.hardwareid
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [esp + 0xc]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [esp + 0x234]
pop edi
pop esi
xor ecx, esp
call fcn.005dee98
mov esp, ebp
pop ebp
ret

Function at 0x40ec40
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x40
push esi
push edi
lea eax, [esp + 8]
push eax
push 0x20019
mov edi, 0x6e0f90
push 0
sub edi, 0x30964fd9
lea esi, [esp + 0x1d]
call fcn.0040f1c0
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
setne al
pop edi
pop esi
test al, al
jne 0x40ecb1
mov edx, dword [esp + 0x44]
mov eax, dword [esp]
lea ecx, [esp + 4]
push ecx
add edx, 0x164
push edx
push 0
push 0
push str.ComputerName
push eax
mov dword [esp + 0x1c], 0x32
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [esp]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, 1
add esp, 0x40
ret 4

Function at 0x40f0e0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov edx, 2
xor ecx, ecx
jmp 0x40f0f0
mov al, byte [edi + ecx + 0x2757e3bf]
xor al, dl
inc edx
and edx, 0x800000ff
mov byte [ecx + esi], al
jns 0x40f10d
dec edx
or edx, 0xffffff00
inc edx
inc ecx
cmp ecx, 0x54
jl 0x40f0f0
mov byte [esi + 0x54], 0
mov eax, esi
ret
Function at 0x40f270
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [0x70ee84]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
push 0x4c
mov dword [ebp - 0x10], edi
call fcn.005e0b23
mov esi, eax
xor ebx, ebx
add esp, 4
cmp esi, ebx
jne 0x40f2b8
cmp edi, ebx
je 0x40f2a5
mov dword [edi], 0x6d
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005dee98
mov esp, ebp
pop ebp
ret
push 0x4c
push ebx
push esi
call fcn.005e3040
push 0x614c
push 1
mov dword [esi + 0x34], ebx
mov dword [esi + 0x14], ebx
call fcn.005e8926
mov edi, eax
add esp, 0x14
cmp edi, ebx
jne 0x40f305
mov eax, dword [ebp - 0x10]
cmp eax, ebx
je 0x40f2e9
mov dword [eax], 0x6d
push esi
call fcn.005e0cb2
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005dee98
mov esp, ebp
pop ebp
ret
push 0x614c
push ebx
push edi
call fcn.005e3040
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [esi + 0x48], edi
mov dword [edi + 4], ebx
mov dword [edi + 0x38], ebx
mov dword [edi], 8
mov dword [edi + 0x3c], eax
mov eax, dword [esi + 0x48]
mov dword [esi + 0x44], ecx
mov ecx, dword [eax + 0x3c]
add esp, 0xc
cmp ecx, ebx
je 0x40f347
push 6
lea edx, [ebp - 0xc]
push edx
push esi
call ecx
add esp, 0xc
jmp 0x40f35b
mov eax, dword [eax + 0x38]
push eax
push 6
lea ecx, [ebp - 0xc]
push 1
push ecx
call fcn.005e5837
add esp, 0x10
cmp eax, 6
je 0x40f38f
mov eax, dword [ebp - 0x10]
cmp eax, ebx
je 0x40f36d
mov dword [eax], 0x66
push edi
call fcn.005e0cb2
push esi
call fcn.005e0cb2
add esp, 8
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005dee98
mov esp, ebp
pop ebp
ret
push 3
lea edx, [ebp - 0xc]
push edx
push str.GIFVER
mov byte [ebp - 6], bl
call fcn.005e3608
add esp, 0xc
test eax, eax
je 0x40f3b8
mov eax, dword [ebp - 0x10]
cmp eax, ebx
je 0x40f36d
mov dword [eax], 0x67
jmp 0x40f36d
mov ebx, esi
call fcn.0040f420
test eax, eax
jne 0x40f3f2
push edi
call fcn.005e0cb2
push esi
call fcn.005e0cb2
mov eax, dword [ebp - 0x10]
add esp, 8
test eax, eax
je 0x40f37c
pop edi
pop esi
mov dword [eax], 0x68
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005dee98
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
mov dword [esi + 0x40], 0
cmp byte [ebp - 9], 0x39
sete al
xor ecx, ebp
mov dword [edi + 0x6148], eax
pop edi
mov eax, esi
pop esi
pop ebx
call fcn.005dee98
mov esp, ebp
pop ebp
ret
Function at 0x40f420
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebx + 0x48]
test byte [eax], 8
jne 0x40f439
mov dword [ebx + 0x40], 0x6f
xor eax, eax
mov esp, ebp
pop ebp
ret
push esi
push ebx
mov esi, ebx
call fcn.0040fbf0
add esp, 4
test eax, eax
je 0x40f5cc
lea ecx, [ebx + 4]
push ecx
call fcn.0040fbf0
add esp, 4
test eax, eax
je 0x40f5cc
mov eax, dword [ebx + 0x48]
mov ecx, dword [eax + 0x3c]
push edi
xor edi, edi
cmp ecx, edi
je 0x40f47c
push 3
lea edx, [ebp - 4]
push edx
push ebx
call ecx
add esp, 0xc
jmp 0x40f490
mov eax, dword [eax + 0x38]
push eax
push 3
lea ecx, [ebp - 4]
push 1
push ecx
call fcn.005e5837
add esp, 0x10
cmp eax, 3
je 0x40f4c0
mov esi, dword [ebx + 0x14]
mov dword [ebx + 0x40], 0x66
cmp esi, edi
je 0x40f4b5
mov edx, dword [esi + 0xc]
push edx
call fcn.005e0cb2
push esi
call fcn.005e0cb2
add esp, 8
mov dword [ebx + 0x14], edi
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
mov dl, byte [ebp - 4]
movzx eax, dl
mov ecx, eax
shr ecx, 4
and ecx, 7
inc ecx
mov dword [ebx + 8], ecx
movzx ecx, byte [ebp - 3]
mov esi, eax
shr esi, 3
and eax, 7
mov dword [ebx + 0xc], ecx
mov cl, byte [ebp - 2]
and esi, 1
inc eax
mov byte [ebx + 0x10], cl
test dl, dl
jns 0x40f5be
push edi
mov ecx, eax
mov edi, 1
shl edi, cl
call fcn.00410430
add esp, 4
mov dword [ebx + 0x14], eax
test eax, eax
jne 0x40f519
pop edi
mov dword [ebx + 0x40], 0x6d
pop esi
mov esp, ebp
pop ebp
ret
mov dword [eax + 8], esi
mov edx, dword [ebx + 0x14]
xor edi, edi
cmp dword [edx], edi
jle 0x40f5c1
xor esi, esi
jmp 0x40f530
mov eax, dword [ebx + 0x48]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x40f548
push 3
lea eax, [ebp - 4]
push eax
push ebx
call ecx
add esp, 0xc
jmp 0x40f55c
mov ecx, dword [eax + 0x38]
push ecx
push 3
lea edx, [ebp - 4]
push 1
push edx
call fcn.005e5837
add esp, 0x10
cmp eax, 3
jne 0x40f5a0
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + 0xc]
movzx edx, byte [ebp - 4]
mov byte [esi + ecx], dl
mov eax, dword [ebx + 0x14]
mov ecx, dword [eax + 0xc]
movzx edx, byte [ebp - 3]
mov byte [ecx + esi + 1], dl
mov eax, dword [ebx + 0x14]
movzx edx, byte [ebp - 2]
mov ecx, dword [eax + 0xc]
mov byte [ecx + esi + 2], dl
mov eax, dword [ebx + 0x14]
inc edi
add esi, 3
cmp edi, dword [eax]
jl 0x40f530
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret
mov esi, dword [ebx + 0x14]
call fcn.004104d0
pop edi
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x40], 0x66
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
mov dword [ebx + 0x14], edi
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x40f5e0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [esi + 0x48]
test byte [eax], 8
jne 0x40f5f9
mov dword [esi + 0x40], 0x6f
xor eax, eax
mov esp, ebp
pop ebp
ret
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x40f60e
push 1
lea eax, [ebp - 1]
push eax
push esi
call ecx
add esp, 0xc
jmp 0x40f622
mov ecx, dword [eax + 0x38]
push ecx
push 1
lea edx, [ebp - 1]
push 1
push edx
call fcn.005e5837
add esp, 0x10
cmp eax, 1
je 0x40f634
mov dword [esi + 0x40], 0x66
xor eax, eax
mov esp, ebp
pop ebp
ret
mov al, byte [ebp - 1]
cmp al, 0x21
je 0x40f674
cmp al, 0x2c
je 0x40f665
cmp al, 0x3b
je 0x40f656
mov dword [edi], 0
mov dword [esi + 0x40], 0x6b
xor eax, eax
mov esp, ebp
pop ebp
ret
mov dword [edi], 4
mov eax, 1
mov esp, ebp
pop ebp
ret
mov dword [edi], 2
mov eax, 1
mov esp, ebp
pop ebp
ret
mov dword [edi], 3
mov eax, 1
mov esp, ebp
pop ebp
ret
Function at 0x40f980
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, eax
mov eax, dword [esi + 0x48]
test byte [eax], 8
jne 0x40f99d
mov dword [esi + 0x40], 0x6f
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x40f9b2
push 1
lea eax, [ebp - 1]
push eax
push esi
call ecx
add esp, 0xc
jmp 0x40f9c6
mov ecx, dword [eax + 0x38]
push ecx
push 1
lea edx, [ebp - 1]
push 1
push edx
call fcn.005e5837
add esp, 0x10
cmp eax, 1
je 0x40f9d9
mov dword [esi + 0x40], 0x66
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
movzx eax, byte [ebp - 1]
mov ecx, dword [ebp + 8]
mov dword [ecx], eax
call fcn.0040f9f0
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x40f9f0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push edi
mov edi, dword [esi + 0x48]
mov eax, dword [edi + 0x3c]
test eax, eax
je 0x40fa0d
push 1
lea ecx, [ebp - 1]
push ecx
push esi
call eax
add esp, 0xc
jmp 0x40fa21
mov edx, dword [edi + 0x38]
push edx
push 1
lea eax, [ebp - 1]
push 1
push eax
call fcn.005e5837
add esp, 0x10
cmp eax, 1
jne 0x40fa69
mov cl, byte [ebp - 1]
test cl, cl
jbe 0x40fa77
lea eax, [edi + 0x44]
mov byte [eax], cl
mov ecx, dword [esi + 0x48]
mov edx, dword [ecx + 0x3c]
mov dword [ebx], eax
inc eax
test edx, edx
je 0x40fa4d
movzx ecx, byte [ebp - 1]
push ecx
push eax
push esi
call edx
add esp, 0xc
jmp 0x40fa61
mov edx, dword [ecx + 0x38]
movzx ecx, byte [ebp - 1]
push edx
push ecx
push 1
push eax
call fcn.005e5837
add esp, 0x10
movzx edx, byte [ebp - 1]
cmp eax, edx
je 0x40fa7d
mov dword [esi + 0x40], 0x66
xor eax, eax
pop edi
mov esp, ebp
pop ebp
ret
mov dword [ebx], 0
mov eax, 1
pop edi
mov esp, ebp
pop ebp
ret

Function at 0x40fbf0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [esi + 0x48]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x40fc0c
push 2
lea eax, [ebp - 4]
push eax
push esi
call ecx
add esp, 0xc
jmp 0x40fc20
mov ecx, dword [eax + 0x38]
push ecx
push 2
lea edx, [ebp - 4]
push 1
push edx
call fcn.005e5837
add esp, 0x10
cmp eax, 2
je 0x40fc32
mov dword [esi + 0x40], 0x66
xor eax, eax
mov esp, ebp
pop ebp
ret
mov ax, word [ebp - 4]
movzx ecx, ah
movzx edx, al
mov eax, dword [ebp + 8]
shl ecx, 8
or ecx, edx
mov dword [eax], ecx
mov eax, 1
mov esp, ebp
pop ebp
ret
Function at 0x40fc50
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, dword [edi + 0x48]
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x40fc6d
push 1
lea ecx, [ebp - 1]
push ecx
push edi
call eax
add esp, 0xc
jmp 0x40fc81
mov edx, dword [esi + 0x38]
push edx
push 1
lea eax, [ebp - 1]
push 1
push eax
call fcn.005e5837
add esp, 0x10
cmp eax, 1
jne 0x40fcc9
mov cl, byte [ebp - 1]
test cl, cl
jbe 0x40fcd7
lea eax, [esi + 0x44]
mov byte [eax], cl
mov ecx, dword [edi + 0x48]
mov edx, dword [ecx + 0x3c]
mov dword [ebx], eax
inc eax
test edx, edx
je 0x40fcad
movzx ecx, byte [ebp - 1]
push ecx
push eax
push edi
call edx
add esp, 0xc
jmp 0x40fcc1
mov edx, dword [ecx + 0x38]
movzx ecx, byte [ebp - 1]
push edx
push ecx
push 1
push eax
call fcn.005e5837
add esp, 0x10
movzx edx, byte [ebp - 1]
cmp eax, edx
je 0x40fce8
mov dword [edi + 0x40], 0x66
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
mov dword [ebx], 0
mov byte [esi + 0x44], 0
mov dword [esi + 0x34], 0
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x40fd00
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, eax
mov esi, dword [edi + 0x48]
mov eax, dword [esi + 0x3c]
xor ebx, ebx
cmp eax, ebx
je 0x40fd23
push 1
lea ecx, [ebp - 1]
push ecx
push edi
call eax
add esp, 0xc
jmp 0x40fd37
mov edx, dword [esi + 0x38]
push edx
push 1
lea eax, [ebp - 1]
push 1
push eax
call fcn.005e5837
add esp, 0x10
cmp eax, 1
jb 0x40fd4c
movzx ecx, byte [ebp - 1]
cmp ecx, 8
jle 0x40fd55
mov dword [edi + 0x40], 0x66
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 1
shl eax, cl
mov dword [esi + 8], ecx
inc ecx
mov edx, 1
mov dword [esi + 0xc], eax
inc eax
mov dword [esi + 0x10], eax
inc eax
shl edx, cl
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], ecx
mov eax, 0x1002
mov byte [esi + 0x44], bl
mov dword [esi + 0x28], ebx
mov dword [esi + 0x20], eax
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x30], ebx
lea edi, [esi + 0x2144]
mov dword [esi + 0x1c], edx
mov ecx, 0x1000
rep stosd dword es:[edi], eax
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4100f0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov cl, byte [esi]
push edi
test cl, cl
jne 0x410193
mov ecx, dword [ebx + 0x48]
mov eax, dword [ecx + 0x3c]
test eax, eax
je 0x410113
push 1
push esi
push ebx
call eax
add esp, 0xc
jmp 0x410124
mov eax, dword [ecx + 0x38]
push eax
push 1
push 1
push esi
call fcn.005e5837
add esp, 0x10
cmp eax, 1
je 0x410135
mov dword [ebx + 0x40], 0x66
xor eax, eax
pop edi
pop ebp
ret
mov al, byte [esi]
test al, al
jne 0x410147
mov dword [ebx + 0x40], 0x70
xor eax, eax
pop edi
pop ebp
ret
mov ecx, dword [ebx + 0x48]
mov edx, dword [ecx + 0x3c]
lea edi, [esi + 1]
test edx, edx
je 0x410161
movzx ecx, al
push ecx
push edi
push ebx
call edx
add esp, 0xc
jmp 0x410174
mov edx, dword [ecx + 0x38]
push edx
movzx eax, al
push eax
push 1
push edi
call fcn.005e5837
add esp, 0x10
mov cl, byte [esi]
movzx edx, cl
cmp eax, edx
jne 0x410129
mov al, byte [edi]
mov edx, dword [ebp + 8]
dec cl
mov byte [edx], al
mov byte [edi], 2
mov byte [esi], cl
mov eax, 1
pop edi
pop ebp
ret
mov al, byte [esi + 1]
mov edi, dword [ebp + 8]
movzx edx, al
mov dl, byte [edx + esi]
inc al
dec cl
mov byte [edi], dl
mov byte [esi + 1], al
mov byte [esi], cl
mov eax, 1
pop edi
pop ebp
ret

Function at 0x410cc0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
cmp byte [0x8f623c], 0
jne 0x410d52
jmp 0x410d36
push 0
push 0
push 0
push 0x410c90
push 0
push 0
mov byte [0x8f623c], 1
call dword [sym.imp.KERNEL32.dll_CreateThread]
jmp 0x410db8
push 0xa
mov eax, esi
call fcn.00410c10
add esp, 4
mov ecx, eax
call fcn.004107a0
mov edx, eax
shr edx, 0x10
mov ecx, esi
call fcn.004109f0
mov ecx, dword [ebp + 8]
xor byte [ecx], al
jmp 0x410e42
push 0x14
mov eax, esi
call fcn.00410c10
add esp, 4
mov ecx, eax
call fcn.004107a0
mov dl, al
mov ecx, esi
call fcn.004109f0
xor byte [ebx], al
jmp 0x410ec6
push 0x1e
mov eax, esi
call fcn.00410c10
add esp, 4
mov ecx, eax
call fcn.004107a0
mov edx, eax
shr edx, 8
mov ecx, esi
call fcn.004109f0
mov ecx, dword [ebp + 0xc]
xor byte [ecx], al
jmp 0x410f50
push 0x28
mov eax, esi
call fcn.00410c10
add esp, 4
mov ecx, eax
call fcn.004107a0
mov edx, eax
shr edx, 0x18
mov ecx, esi
call fcn.004109f0
xor byte [edi], al
jmp 0x410fd7
pop ebp
ret