joyce8/EMBER2024-capa huggingface dataset:
Function at 0x402250
Capabilities:
Terminate process

Disassembly:
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call main
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_ExitProcess]

Function at 0x4024c0
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x250
push esi
mov esi, dword [ebp + 8]
push edi
push 0x104
push esi
call fcn.00402fd0
push 0x401310
push 0x104
push esi
mov edi, eax
call fcn.00402f30
add esp, 0x14
test al, al
je 0x4025cc
push ebx
push 0x24c
lea eax, [ebp - 0x24c]
mov dword [ebp - 0x250], 0
push 0
push eax
call fcn.00402e50
add esp, 0xc
lea eax, [ebp - 0x250]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x4025b6
cmp word [ebp - 0x1c], 0
lea ecx, [ebp - 0x1c]
lea eax, [ebp - 0x224]
cmove ecx, eax
test ecx, ecx
je 0x402560
cmp word [ecx], 0x2e
jne 0x402560
movzx eax, word [ecx + 2]
test ax, ax
je 0x40259d
cmp eax, 0x2e
jne 0x402560
cmp word [ecx + 4], 0
je 0x40259d
lea eax, [edi + 1]
cmp eax, 0x104
jae 0x402570
xor edx, edx
mov word [esi + eax*2], dx
push ecx
push 0x104
push esi
call fcn.00402f30
add esp, 0xc
test al, al
je 0x40259d
test byte [ebp - 0x250], 0x10
push esi
je 0x402597
call fcn.004024c0
add esp, 4
jmp 0x40259d
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x250]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x402530
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
pop ebx
cmp edi, 0x104
jae 0x4025c5
xor eax, eax
mov word [esi + edi*2], ax
push esi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
pop edi
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x4025e0
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
push 0x40
lea eax, [ebp - 0x54]
mov dword [ebp - 0x58], 0x44
push 0
push eax
call fcn.00402e50
add esp, 0xc
lea eax, [ebp - 0x14]
xorps xmm0, xmm0
movdqu xmmword [ebp - 0x14], xmm0
push eax
lea eax, [ebp - 0x58]
push eax
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
jne 0x402635
mov eax, 0x6a
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xffffffffffffffff
push dword [ebp - 0x14]
mov dword [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x402665
lea eax, [ebp - 4]
push eax
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
jne 0x40266c
mov dword [ebp - 4], 0x6b
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
Function at 0x402d10
Capabilities:
Delete directory
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x640
push esi
push edi
call fcn.00401ed0
lea ecx, [ebp - 0x1c]
call fcn.004014d0
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x1c]
push esi
call fcn.00401560
test al, al
jne 0x402d4d
lea ecx, [ebp - 0x1c]
mov edi, 0x65
call fcn.00401510
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0xc]
dec eax
je 0x402e3e
xor eax, eax
mov word [ebp - 0x438], ax
mov word [ebp - 0x640], ax
lea eax, [ebp - 0x640]
push eax
push esi
call fcn.004021a0
add esp, 8
test al, al
jne 0x402d90
lea ecx, [ebp - 0x1c]
mov edi, 0x6d
call fcn.00401510
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor eax, eax
mov word [ebp - 0x20], ax
mov word [ebp - 0x228], ax
mov word [ebp - 0x22c], ax
mov word [ebp - 0x434], ax
lea eax, [ebp - 0x434]
push eax
lea eax, [ebp - 0x228]
push eax
lea eax, [ebp - 0x640]
push eax
lea eax, [ebp - 0x1c]
push esi
push eax
call fcn.004028f0
add esp, 0x14
mov edi, eax
push 0xffffffffffffffff
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_SetProcessWorkingSetSize]
test edi, edi
jne 0x402e00
lea eax, [ebp - 0x434]
push eax
lea eax, [ebp - 0x228]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.00402680
add esp, 0xc
mov edi, eax
call fcn.00402880
test al, al
je 0x402e40
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x228]
push eax
call esi
lea eax, [ebp - 0x434]
push eax
call esi
lea eax, [ebp - 0x640]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
lea ecx, [ebp - 0x1c]
call fcn.00401510
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor edi, edi
lea ecx, [ebp - 0x1c]
call fcn.00401510
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x403150
Capabilities:
Extract resource via kernel32 functions
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, ecx
push dword [esi]
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
jne 0x40316f
xor al, al
pop esi
mov esp, ebp
pop ebp
ret 4
push edi
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
jne 0x403187
pop edi
xor al, al
pop esi
mov esp, ebp
pop ebp
ret 4
push ebx
push dword [esi]
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
push dword [ebp + 8]
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x4031d8
push 0
lea eax, [ebp - 4]
mov dword [ebp - 4], 0
push eax
push ebx
push edi
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
test eax, eax
jne 0x4031e3
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop ebx
pop edi
xor al, al
pop esi
mov esp, ebp
pop ebp
ret 4
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop ebx
test eax, eax
pop edi
setne al
pop esi
mov esp, ebp
pop ebp
ret 4
Function at 0x41ec7c
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x42a520]
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.00415f82
and dword [ebp - 0x14], 0
cmp dword [0x46b150], 0
mov dword [ebp - 0x18], eax
jne 0x41ed2f
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x41edd7
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MessageBoxW
push ebx
call edi
test eax, eax
je 0x41edd7
mov esi, dword [sym.imp.KERNEL32.dll_EncodePointer]
push eax
call esi
push str.GetActiveWindow
push ebx
mov dword [0x46b150], eax
call edi
push eax
call esi
push str.GetLastActivePopup
push ebx
mov dword [0x46b154], eax
call edi
push eax
call esi
push str.GetUserObjectInformationW
push ebx
mov dword [0x46b158], eax
call edi
push eax
call esi
mov dword [0x46b160], eax
test eax, eax
je 0x41ed2f
push str.GetProcessWindowStation
push ebx
call edi
push eax
call esi
mov dword [0x46b15c], eax
mov eax, dword [0x46b15c]
mov ecx, dword [ebp - 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, ecx
je 0x41ed88
cmp dword [0x46b160], ecx
je 0x41ed88
push eax
call esi
push dword [0x46b160]
mov edi, eax
call esi
mov ebx, eax
test edi, edi
je 0x41ed88
test ebx, ebx
je 0x41ed88
call edi
test eax, eax
je 0x41ed7f
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call ebx
test eax, eax
je 0x41ed7f
test byte [ebp - 8], 1
jne 0x41ed88
or dword [ebp + 0x10], 0x200000
jmp 0x41edbb
mov eax, dword [0x46b154]
cmp eax, dword [ebp - 0x18]
je 0x41edbb
push eax
call esi
test eax, eax
je 0x41edbb
call eax
mov dword [ebp - 0x14], eax
test eax, eax
je 0x41edbb
mov eax, dword [0x46b158]
cmp eax, dword [ebp - 0x18]
je 0x41edbb
push eax
call esi
test eax, eax
je 0x41edbb
push dword [ebp - 0x14]
call eax
mov dword [ebp - 0x14], eax
push dword [0x46b150]
call esi
test eax, eax
je 0x41edd7
push dword [ebp + 0x10]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x14]
call eax
jmp 0x41edd9
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004106c7
leave
ret

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

Disassembly:
pushal
nop
mov eax, section..text
nop
nop
mov ebx, 0x408ecc
nop
mov ecx, 0x7a5c1e7d
nop
nop
nop
test eax, eax
nop
nop
je 0x43004e
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
jne 0x430024
nop
nop
nop
mov eax, section..data
nop
nop
mov ebx, 0x42e1d0
nop
mov ecx, 0x24f3258
test eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
je 0x430084
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
nop
add eax, 4
cmp eax, ebx
nop
nop
nop
nop
jne 0x43006c
nop
nop
nop
nop
nop
nop
nop
popal
nop
nop
jmp 0x401219
Function at 0x41b007
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
call fcn.004126ae
mov esi, dword [ebp + 8]
push 2
mov edi, eax
lea eax, [ebp - 4]
push eax
mov ecx, esi
and ecx, 0x3ff
push 0x20000001
or ecx, 0x400
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
jne 0x41b03f
xor eax, eax
jmp 0x41b06b
cmp esi, dword [ebp - 4]
je 0x41b068
cmp dword [ebp + 0xc], 0
je 0x41b068
push dword [edi + 0x9c]
call fcn.0041ac15
push dword [edi + 0x9c]
mov esi, eax
call fcn.0040d5b4
pop ecx
pop ecx
cmp esi, eax
je 0x41b03b
xor eax, eax
inc eax
pop edi
pop esi
leave
ret

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

Disassembly:
pushal
nop
call 0x43000c
pop eax
nop
nop
nop
nop
nop
add eax, 0x403d6f
nop
nop
sub eax, 0x403d15
mov ebx, dword [eax]
nop
nop
nop
nop
mov ecx, dword [eax + 4]
nop
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
nop
nop
nop
nop
nop
nop
jl 0x430030
nop
nop
nop
add eax, 0xc
nop
cmp dword [eax], 0
nop
nop
nop
nop
nop
jne 0x43001e
nop
nop
popal
nop
nop
nop
nop
jmp int.00401219
Function at 0x4031d0
Capabilities:
Encrypt data using rc4 ksa
Encrypt data using rc4 prga

Disassembly:
sub esp, 0x208
mov eax, dword [0x439100]
xor eax, esp
mov dword [esp + 0x204], eax
mov eax, dword [esp + 0x20c]
push ebx
push ebp
push esi
push edi
push str.diouiyAYUs
push 0x43b398
mov dword [esp + 0x18], eax
call fcn.004015c0
push eax
call fcn.00401b30
mov esi, dword [esp + 0x234]
add esp, 0xc
mov edi, dword [esp + 0x224]
xor ebx, ebx
nop dword [eax + eax]
push str.ghbtfdg
push 0x43b398
call fcn.004015c0
push eax
call fcn.00401b30
mov eax, ebx
mov byte [esp + ebx + 0x120], bl
cdq
add esp, 0xc
idiv esi
mov al, byte [edx + edi]
mov byte [esp + ebx + 0x14], al
inc ebx
cmp ebx, 0x100
jl 0x403220
xor esi, esi
xor edi, edi
nop dword [eax + eax]
push str.XAS56
push 0x43b398
call fcn.004015c0
push eax
call fcn.00401b30
mov dl, byte [esp + esi + 0x120]
add esp, 0xc
movzx eax, byte [esp + esi + 0x14]
add edi, eax
movzx ecx, dl
add edi, ecx
and edi, 0x800000ff
jns 0x40329b
dec edi
or edi, 0xffffff00
inc edi
mov al, byte [esp + edi + 0x114]
mov byte [esp + esi + 0x114], al
inc esi
mov byte [esp + edi + 0x114], dl
cmp esi, 0x100
jl 0x403260
push str.HGhlu
push 0x43b398
xor esi, esi
xor edi, edi
call fcn.004015c0
push eax
call fcn.00401b30
mov ebp, dword [esp + 0x22c]
add esp, 0xc
xor ebx, ebx
test ebp, ebp
jle 0x40336c
nop word [eax + eax]
push str.jkbci9u8
push 0x43b398
call fcn.004015c0
push eax
call fcn.00401b30
inc esi
add esp, 0xc
and esi, 0x800000ff
jns 0x403319
dec esi
or esi, 0xffffff00
inc esi
mov cl, byte [esp + esi + 0x114]
movzx edx, cl
add edi, edx
and edi, 0x800000ff
jns 0x403335
dec edi
or edi, 0xffffff00
inc edi
movzx eax, byte [esp + edi + 0x114]
mov byte [esp + esi + 0x114], al
mov byte [esp + edi + 0x114], cl
movzx eax, byte [esp + esi + 0x114]
mov ecx, dword [esp + 0x10]
add eax, edx
movzx eax, al
movzx eax, byte [esp + eax + 0x114]
xor byte [ecx + ebx], al
inc ebx
cmp ebx, ebp
jl 0x4032f0
mov ecx, dword [esp + 0x214]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0040b1a5
add esp, 0x208
ret
Function at 0x407260
Capabilities:
Create thread

Disassembly:
sub esp, 8
mov eax, dword [0x439100]
xor eax, esp
mov dword [esp + 4], eax
lea eax, [esp]
mov dword [esp], 0
push eax
push 0
push 0
push 0x406eb0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [esp + 4]
xor eax, eax
xor ecx, esp
call fcn.0040b1a5
add esp, 8
ret

Function at 0x40b7f1
Capabilities:
Parse pe header

Disassembly:
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x40b830
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x40b830
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x40b830
mov eax, 0x10b
cmp word [ecx + 0x18], ax
jne 0x40b830
cmp dword [ecx + 0x74], 0xe
jbe 0x40b830
cmp dword [ecx + 0xe8], 0
setne al
ret
xor al, al
ret

Function at 0x41846c
Capabilities:
Allocate thread local storage

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x42e3f8
push 0x42e3f0
push str.FlsAlloc
push 0x1e
call fcn.004182d9
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4184a0
push dword [ebp + 8]
mov ecx, esi
call dword [0x42a194]
call esi
jmp 0x4184a6
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
pop esi
pop ebp
ret 4

Function at 0x4184ea
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x42e408
push 0x42e400
push str.FlsGetValue
push 0x20
call fcn.004182d9
mov esi, eax
add esp, 0x10
test esi, esi
je 0x418521
push dword [ebp + 8]
mov ecx, esi
call dword [0x42a194]
call esi
pop esi
pop ebp
ret 4
pop esi
pop ebp
jmp dword [sym.imp.KERNEL32.dll_TlsGetValue]
Function at 0x41c22b
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.0041becd

Function at 0x41c236
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.0041c05c

Function at 0x41c7ab
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, 0x101c
call fcn.0040bb90
mov eax, dword [0x439100]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x14]
push ebx
push dword [ebp + 8]
mov dword [ebp - 0x100c], eax
call fcn.00418a9f
pop ecx
mov ecx, dword [ebp + 8]
mov ebx, eax
cmp dword [ecx + 8], 0
jne 0x41c7ed
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
jmp 0x41c949
mov eax, dword [ecx]
sub eax, dword [ecx + 4]
push esi
push edi
push 0
cdq
push 2
push edx
push eax
call fcn.00428740
push dword [ebp - 0x100c]
mov ecx, ebx
mov dword [ebp - 0x1008], eax
mov esi, ebx
mov dword [ebp - 0x1018], edx
and ecx, 0x3f
sar esi, 6
imul edi, ecx, 0x38
push 0
mov eax, dword [esi*4 + 0x43bd70]
push dword [edi + eax + 0x24]
push dword [edi + eax + 0x20]
push ebx
call fcn.0041cbd1
mov ecx, dword [esi*4 + 0x43bd70]
add esp, 0x14
mov dword [ebp - 0x1010], eax
mov eax, edx
mov edx, dword [ebp - 0x1010]
mov dword [ebp - 0x101c], eax
cmp edx, dword [edi + ecx + 0x20]
jne 0x41c942
cmp eax, dword [edi + ecx + 0x24]
jne 0x41c942
push 0
lea eax, [ebp - 0x1014]
push eax
push 0x1000
lea eax, [ebp - 0x1004]
push eax
push dword [edi + ecx + 0x18]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x41c942
push dword [ebp - 0x100c]
push 0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ebx
call fcn.0041cbd1
add esp, 0x14
test edx, edx
jl 0x41c942
jg 0x41c8b8
test eax, eax
jb 0x41c942
mov ebx, dword [ebp - 0x1018]
mov eax, dword [ebp - 0x1014]
test ebx, ebx
jg 0x41c942
jl 0x41c8d2
cmp dword [ebp - 0x1008], eax
ja 0x41c942
lea edi, [ebp - 0x1004]
xor edx, edx
add edi, eax
lea ecx, [ebp - 0x1004]
xor esi, esi
cmp dword [ebp - 0x1008], edx
jne 0x41c8f0
test ebx, ebx
je 0x41c929
cmp ecx, edi
jae 0x41c929
mov al, byte [ecx]
cmp al, 0xd
jne 0x41c90a
lea eax, [edi - 1]
cmp ecx, eax
jae 0x41c916
cmp byte [ecx + 1], 0xa
jne 0x41c916
inc ecx
jmp 0x41c916
movzx eax, al
movsx eax, byte [eax + 0x439a40]
add ecx, eax
add esi, 1
adc edx, 0
inc ecx
cmp esi, dword [ebp - 0x1008]
jne 0x41c8f0
cmp edx, ebx
jne 0x41c8f0
lea eax, [ebp - 0x1004]
sub ecx, eax
mov eax, ecx
cdq
add eax, dword [ebp - 0x1010]
adc edx, dword [ebp - 0x101c]
jmp 0x41c947
or edx, 0xffffffff
mov eax, edx
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop ebx
call fcn.0040b1a5
leave
ret
Function at 0x41ff0d
Capabilities:
Query environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
mov esi, eax
test esi, esi
je 0x41ffaa
push ebx
push esi
call fcn.0041fed6
xor ebx, ebx
sub eax, esi
push ebx
push ebx
push ebx
push ebx
sar eax, 1
push eax
push esi
push ebx
push ebx
mov dword [ebp - 8], eax
call fcn.0041eb5b
add esp, 0x24
mov dword [ebp - 4], eax
test eax, eax
jne 0x41ff57
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
xor eax, eax
jmp 0x41ffa9
push edi
push eax
call fcn.0041a23f
mov edi, eax
pop ecx
push ebx
test edi, edi
jne 0x41ff77
call fcn.00417c9b
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
xor eax, eax
jmp 0x41ffa8
push ebx
push dword [ebp - 4]
push edi
push dword [ebp - 8]
push esi
push ebx
push ebx
call fcn.0041eb5b
add esp, 0x20
test eax, eax
jne 0x41ff96
push edi
call fcn.00417c9b
jmp 0x41ff9e
push ebx
call fcn.00417c9b
mov ebx, edi
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov eax, ebx
pop edi
pop ebx
pop esi
leave
ret
Function at 0x423fc4
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [ebp + 8]
mov ecx, eax
push ebx
mov ebx, dword [ebp + 0xc]
and eax, 0x3f
sar ecx, 6
push esi
push edi
imul edi, eax, 0x38
mov eax, dword [ecx*4 + 0x43bd70]
mov dword [ebp - 0x10], ecx
mov ecx, dword [eax + edi + 0x18]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x424004
cmp byte [ebx], 0xa
jne 0x424004
or byte [eax + edi + 0x28], 4
jmp 0x424009
and byte [eax + edi + 0x28], 0xfb
add ecx, ebx
mov edx, ebx
mov dword [ebp - 0xc], ecx
mov esi, ebx
cmp ebx, ecx
jae 0x424107
mov al, byte [edx]
cmp al, 0x1a
je 0x4240e9
lea ecx, [edx + 1]
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 0xc]
cmp al, 0xd
je 0x424038
mov edx, dword [ebp - 8]
mov byte [esi], al
jmp 0x42405d
mov eax, dword [ebp - 8]
cmp eax, ecx
jae 0x424067
mov cl, byte [eax]
xor eax, eax
cmp cl, 0xa
sete al
inc eax
add edx, eax
cmp cl, 0xa
sete al
dec al
and al, 3
add al, 0xa
mov byte [esi], al
mov ecx, dword [ebp - 0xc]
inc esi
cmp edx, ecx
jb 0x42401a
jmp 0x424107
push 0
lea eax, [ebp - 0xc]
push eax
push 1
lea eax, [ebp - 1]
push eax
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4240e4
cmp dword [ebp - 0xc], 0
je 0x4240e4
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx*4 + 0x43bd70]
test byte [eax + edi + 0x28], 0x48
je 0x4240be
mov dl, byte [ebp - 1]
lea eax, [esi + 1]
mov dword [ebp - 0x14], eax
cmp dl, 0xa
jne 0x4240a9
mov byte [esi], dl
jmp 0x4240ba
mov byte [esi], 0xd
mov eax, dword [ecx*4 + 0x43bd70]
mov byte [eax + edi + 0x2a], dl
mov eax, dword [ebp - 0x14]
mov esi, eax
jmp 0x424107
cmp byte [ebp - 1], 0xa
jne 0x4240cd
cmp esi, ebx
jne 0x4240cd
mov byte [esi], 0xa
jmp 0x424106
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [ebp + 8]
call fcn.0041cbef
add esp, 0x10
cmp byte [ebp - 1], 0xa
je 0x424107
mov byte [esi], 0xd
jmp 0x424106
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx*4 + 0x43bd70]
mov al, byte [ecx + edi + 0x28]
test al, 0x40
jne 0x424103
or al, 2
mov byte [ecx + edi + 0x28], al
jmp 0x424107
mov byte [esi], 0x1a
inc esi
sub esi, ebx
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret
Function at 0x424110
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov ebx, eax
and eax, 0x3f
sar ebx, 6
push edi
imul edi, eax, 0x38
push 0xa
mov eax, dword [ebx*4 + 0x43bd70]
pop edx
mov dword [ebp - 0x14], edx
mov ecx, dword [edi + eax + 0x18]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x424153
cmp word [esi], dx
jne 0x424153
or byte [edi + eax + 0x28], 4
jmp 0x424158
and byte [edi + eax + 0x28], 0xfb
lea edx, [esi + ecx*2]
mov eax, esi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
cmp eax, edx
jae 0x4242ab
mov dword [ebp - 0xc], 0xd
movzx ecx, word [eax]
mov edx, ecx
mov dword [ebp - 0x10], edx
push 0x1a
pop edx
cmp cx, dx
mov edx, dword [ebp - 8]
je 0x42428b
add eax, 2
cmp cx, word [ebp - 0xc]
je 0x42419a
mov dword [ebp - 4], eax
mov word [esi], cx
jmp 0x4241d0
cmp eax, edx
jae 0x4241dc
movzx eax, word [eax]
xor ecx, ecx
cmp ax, word [ebp - 0x14]
mov edx, eax
push 0xa
sete cl
xor eax, eax
lea ecx, [ecx*2 + 2]
add dword [ebp - 4], ecx
pop ecx
cmp dx, cx
mov edx, dword [ebp - 8]
sete al
dec eax
and eax, 3
add eax, ecx
mov word [esi], ax
mov eax, dword [ebp - 4]
add esi, 2
cmp eax, edx
jb 0x424172
jmp 0x4242ab
push 0
lea eax, [ebp - 0x14]
push eax
push 2
lea eax, [ebp - 4]
push eax
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x424287
cmp dword [ebp - 0x14], 0
je 0x424287
mov eax, dword [ebx*4 + 0x43bd70]
push 0xa
test byte [edi + eax + 0x28], 0x48
je 0x42425f
mov dx, word [ebp - 4]
lea eax, [esi + 2]
pop ecx
mov dword [ebp - 0x18], eax
cmp dx, cx
jne 0x424228
mov word [esi], cx
jmp 0x42425b
push 0xd
pop eax
mov word [esi], ax
mov eax, dword [ebx*4 + 0x43bd70]
movzx ecx, dx
shr ecx, 8
push 0xa
mov byte [edi + eax + 0x2a], dl
mov eax, dword [ebx*4 + 0x43bd70]
mov byte [edi + eax + 0x2b], cl
mov eax, dword [ebx*4 + 0x43bd70]
pop ecx
mov byte [edi + eax + 0x2c], cl
mov eax, dword [ebp - 0x18]
mov esi, eax
jmp 0x4242ab
pop ebx
cmp word [ebp - 4], bx
jne 0x424270
cmp esi, dword [ebp + 0xc]
jne 0x424270
mov word [esi], bx
jmp 0x4242a8
push 1
push 0xffffffffffffffff
push 0xfffffffffffffffe
push dword [ebp + 8]
call fcn.0041cbef
add esp, 0x10
cmp word [ebp - 4], bx
je 0x4242ab
push 0xd
jmp 0x4242a4
mov ecx, dword [ebx*4 + 0x43bd70]
mov al, byte [ecx + edi + 0x28]
test al, 0x40
jne 0x4242a2
or al, 2
mov byte [ecx + edi + 0x28], al
jmp 0x4242ab
push 0x1a
pop eax
mov word [esi], ax
add esi, 2
sub esi, dword [ebp + 0xc]
and esi, 0xfffffffe
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret