joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40b910
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push esi
mov esi, ecx
call fcn.0040c920
cmp eax, 0xffffffff
je 0x40b93d
mov edx, eax
and dl, 0x11
cmp dl, 1
jne 0x40b93d
and eax, 0xfffffffe
mov ecx, esi
mov edx, eax
call fcn.0040b500
test al, al
je 0x40b97e
cmp byte [0x475e51], 0
jne 0x40b96c
mov edx, esi
lea ecx, [ebp - 0xc]
call fcn.00409ce0
mov ecx, eax
call fcn.00408800
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea ecx, [ebp - 0xc]
mov esi, eax
call fcn.004087b0
test esi, esi
jmp 0x40b975
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x40b97e
mov al, 1
pop esi
mov esp, ebp
pop ebp
ret
xor al, al
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x40bc30
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
cmp byte [0x475e51], 0
jne 0x40bc70
mov edx, ecx
lea ecx, [ebp - 0xc]
push ebx
call fcn.00409ce0
mov ecx, eax
call fcn.00408800
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov ecx, eax
call fcn.0040acd0
lea ecx, [ebp - 0xc]
mov bl, al
call fcn.004087b0
mov al, bl
pop ebx
mov esp, ebp
pop ebp
ret
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov ecx, eax
call fcn.0040acd0
mov esp, ebp
pop ebp
ret

Function at 0x40bc90
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45d596
mov eax, dword fs:[0]
push eax
sub esp, 0x354
mov eax, dword [0x474014]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
call fcn.004087f0
cmp byte [0x475e51], 0
jne 0x40bd30
lea eax, [ebp - 0x128]
mov byte [ebp - 0x128], 0
push eax
push 0x114
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
je 0x40bdd2
cmp eax, 0x114
jae 0x40bdd2
lea edx, [ebp - 0x128]
mov byte [ebp - 0x14], 0
lea ecx, [ebp - 0x360]
call fcn.00409d50
mov dword [ebp - 4], 0
push eax
mov ecx, edi
call fcn.00409710
lea ecx, [ebp - 0x360]
call fcn.004087b0
mov al, 1
jmp 0x40bdd4
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
xor eax, eax
mov word [ebp - 0x354], ax
lea eax, [ebp - 0x354]
push eax
push 0x114
call ebx
mov esi, eax
test esi, esi
je 0x40bdd2
cmp esi, 0x114
jae 0x40bd76
xor eax, eax
mov ecx, edi
mov word [ebp - 0x12c], ax
lea eax, [ebp - 0x354]
push eax
call fcn.004096a0
mov al, 1
jmp 0x40bdd4
lea ecx, [ebp - 0x360]
call fcn.00409540
push esi
lea ecx, [ebp - 0x360]
mov dword [ebp - 4], 1
call fcn.00409e90
push eax
push esi
call ebx
mov ebx, eax
lea ecx, [ebp - 0x360]
test ebx, ebx
je 0x40bdcd
push esi
call fcn.0040b3e0
lea ecx, [ebp - 0x360]
call fcn.004087d0
cmp eax, ebx
jne 0x40bdc7
lea eax, [esi - 1]
cmp eax, ebx
jne 0x40bdc7
mov eax, ecx
jmp 0x40bd16
lea ecx, [ebp - 0x360]
call fcn.004087b0
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0043858c
mov esp, ebp
pop ebp
ret
Function at 0x40be40
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45d5cb
mov eax, dword fs:[0]
push eax
sub esp, 0x354
mov eax, dword [0x474014]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
cmp byte [0x475e51], 0
jne 0x40bec7
lea eax, [ebp - 0x128]
mov byte [ebp - 0x128], 0
push eax
push 0x114
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea edx, [ebp - 0x128]
mov esi, eax
lea ecx, [ebp - 0x360]
call fcn.00409d50
push eax
mov ecx, edi
mov dword [ebp - 4], 0
call fcn.00409710
lea ecx, [ebp - 0x360]
mov dword [ebp - 4], 0xffffffff
call fcn.004087b0
jmp 0x40bef2
xor eax, eax
mov word [ebp - 0x354], ax
lea eax, [ebp - 0x354]
push eax
push 0x114
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
mov esi, eax
mov ecx, edi
lea eax, [ebp - 0x354]
push eax
call fcn.004096a0
mov ecx, edi
call fcn.0040d5e0
test esi, esi
je 0x40bf09
cmp esi, 0x114
jae 0x40bf09
mov al, 1
jmp 0x40bf0b
xor al, al
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.0043858c
mov esp, ebp
pop ebp
ret

Function at 0x40c920
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
cmp byte [0x475e51], 0
jne 0x40c959
mov edx, ecx
lea ecx, [ebp - 0xc]
push esi
call fcn.00409ce0
mov ecx, eax
call fcn.00408800
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
lea ecx, [ebp - 0xc]
mov esi, eax
call fcn.004087b0
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
or ecx, 0xffffffff
cmp eax, 0xffffffff
cmovne ecx, eax
mov eax, ecx
mov esp, ebp
pop ebp
ret

Function at 0x40d0a0
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
lea eax, [ebp - 4]
mov dword [ebp - 4], 0
push eax
push dword [ecx]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, 0xffffffff
jne 0x40d0d2
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x40d0d2
xor al, al
pop esi
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebp + 8]
xor ecx, ecx
mov edx, dword [ebp - 4]
add ecx, esi
pop esi
adc edx, 0
mov dword [eax], ecx
mov dword [eax + 4], edx
mov al, 1
mov esp, ebp
pop ebp
ret 4
Function at 0x4129c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov ebx, ecx
mov ecx, edi
call fcn.0040deb0
lea ecx, [ebx + 0xf0]
call fcn.00408800
test eax, eax
je 0x412b63
lea ecx, [ebx + 0xe8]
call fcn.00408800
test eax, eax
je 0x412b63
mov eax, dword [ebp + 8]
lea ecx, [ebx + 0xf0]
lea edx, [eax*4]
call fcn.00408800
lea ecx, [ebx + 0xf0]
mov eax, dword [eax + edx]
mov dword [ebp + 0xc], eax
call fcn.00408800
mov esi, dword [eax + edx + 4]
sub esi, dword [ebp + 0xc]
cmp esi, 0x4000
jae 0x412b63
lea edx, [esi - 1]
mov ecx, edi
call fcn.0040dcd0
test eax, eax
jne 0x412b65
mov edx, dword [edi + 8]
lea ecx, [ebx + 0xe8]
call fcn.00408800
mov ecx, dword [ebp + 0xc]
xor edi, edi
lea ecx, [eax + ecx*2]
test esi, esi
je 0x412b63
cmp esi, 0x10
jb 0x412b30
lea eax, [esi - 1]
lea eax, [ecx + eax*2]
lea ebx, [edx - 2]
lea ebx, [ebx + esi*2]
cmp edx, eax
ja 0x412a82
cmp ebx, ecx
jae 0x412b30
movaps xmm5, xmmword [str._________]
mov eax, esi
movaps xmm6, xmmword [0x46dd10]
and eax, 0xfffffff0
movaps xmm4, xmmword [0x46dce0]
movaps xmm7, xmmword [0x46dd00]
movups xmm0, xmmword [ecx]
add edi, 0x10
movaps xmm3, xmm5
pcmpeqw xmm3, xmm0
movaps xmm2, xmm3
pandn xmm2, xmm0
movaps xmm0, xmm3
pand xmm0, xmm4
pxor xmm3, xmm6
por xmm2, xmm0
movaps xmm1, xmm2
pcmpeqw xmm1, xmm4
pand xmm1, xmm3
movaps xmm3, xmm5
movaps xmm0, xmm1
pand xmm1, xmm7
pandn xmm0, xmm2
por xmm0, xmm1
movups xmmword [edx], xmm0
movups xmm0, xmmword [ecx + 0x10]
add ecx, 0x20
pcmpeqw xmm3, xmm0
movaps xmm2, xmm3
pandn xmm2, xmm0
movaps xmm0, xmm3
pand xmm0, xmm4
pxor xmm3, xmm6
por xmm2, xmm0
movaps xmm1, xmm2
pcmpeqw xmm1, xmm4
pand xmm1, xmm3
movaps xmm0, xmm1
pand xmm1, xmm7
pandn xmm0, xmm2
por xmm0, xmm1
movups xmmword [edx + 0x10], xmm0
add edx, 0x20
cmp edi, eax
jb 0x412aa3
cmp edi, esi
jae 0x412b63
sub esi, edi
mov edi, 0xf05c
nop dword [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
cmp eax, 0x2f
jne 0x412b52
mov eax, 0x5c
jmp 0x412b58
cmp eax, 0x5c
cmove eax, edi
mov word [edx], ax
add edx, 2
sub esi, 1
jne 0x412b40
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret 8
Function at 0x41c3e0
Capabilities:
Get process heap flags
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45e038
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x474014]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
lea ecx, [edi + 0x98]
call fcn.0041ca20
lea ecx, [edi + 0x18]
call fcn.00408930
lea ecx, [edi + 0x24]
call fcn.00408aa0
lea ecx, [edi + 0x30]
call fcn.00408aa0
push dword [ebp + 8]
lea ecx, [edi + 0x44]
mov word [edi + 0x14], 0
call fcn.00409710
push dword [ebp + 0xc]
lea edx, [edi + 0x44]
lea ecx, [ebp - 0x18]
call fcn.00409500
mov ecx, eax
mov dword [ebp - 4], 0
call fcn.00408800
push eax
lea ecx, [edi + 0x60]
call fcn.0040c390
lea ecx, [ebp - 0x18]
mov dword [ebp - 4], 0xffffffff
mov bl, al
call fcn.004087b0
test bl, bl
jne 0x41c491
call fcn.0040cfc0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8

Function at 0x41db10
Capabilities:
Access peb ldr_data
Get ntdll base address
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45e2f7
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x474014]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
lea ecx, [esi + 0x10]
call fcn.0040e5f0
lea ecx, [esi + 0x18]
mov dword [esi], 0x46d368
mov dword [esi + 4], 0x46d37c
mov dword [esi + 8], 0x46d3a0
mov dword [esi + 0xc], 0x46d354
mov byte [esi + 0x14], 0
call fcn.004089f0
lea ecx, [esi + 0x24]
mov dword [ebp - 4], 0
call fcn.00408ab0
lea ecx, [esi + 0x30]
call fcn.00408ab0
mov byte [ebp - 4], 2
lea ecx, [esi + 0x44]
mov dword [esi + 0x3c], 0
mov dword [esi + 0x40], 0
call fcn.00409540
lea ecx, [esi + 0x50]
mov byte [ebp - 4], 3
call fcn.00409540
lea ecx, [esi + 0x60]
mov byte [ebp - 4], 4
call fcn.0040b710
lea ecx, [esi + 0x98]
call fcn.0041ca40
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x41df40
Capabilities:
Access peb ldr_data
Get process heap flags
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45e3c5
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x474014]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
call fcn.0040e5f0
lea ecx, [esi + 4]
mov dword [ebp - 4], 0
call fcn.0040e5f0
lea ecx, [esi + 8]
call fcn.0040e5f0
lea ecx, [esi + 0xc]
call fcn.0040e5f0
mov byte [ebp - 4], 3
lea ecx, [esi + 0x18]
mov dword [esi + 0x11], 0
mov word [esi + 0x15], 0
mov byte [esi + 0x17], 0
call fcn.00409540
lea ecx, [esi + 0x24]
mov byte [ebp - 4], 4
call fcn.00409540
lea ecx, [esi + 0x30]
mov byte [ebp - 4], 5
call fcn.00409540
lea ecx, [esi + 0x44]
mov byte [ebp - 4], 6
call fcn.0041dd40
lea ecx, [esi + 0x78]
call fcn.0041deb0
lea ecx, [esi + 0xa8]
mov byte [ebp - 4], 7
call fcn.0041deb0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x41fe20
Capabilities:
Access peb ldr_data
Get process heap flags
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45e6b5
mov eax, dword fs:[0]
push eax
push ecx
push esi
push edi
mov eax, dword [0x474014]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x10], edi
mov esi, dword [ebp + 8]
push esi
call fcn.0041d190
lea eax, [esi + 4]
mov dword [ebp - 4], 0
push eax
lea ecx, [edi + 4]
call fcn.0041d190
lea eax, [esi + 8]
push eax
lea ecx, [edi + 8]
call fcn.0041d190
lea eax, [esi + 0xc]
push eax
lea ecx, [edi + 0xc]
call fcn.0041d190
mov byte [ebp - 4], 3
lea ecx, [edi + 0x18]
movzx eax, byte [esi + 0x10]
mov byte [edi + 0x10], al
movzx eax, byte [esi + 0x11]
mov byte [edi + 0x11], al
movzx eax, byte [esi + 0x12]
mov byte [edi + 0x12], al
movzx eax, byte [esi + 0x13]
mov byte [edi + 0x13], al
movzx eax, byte [esi + 0x14]
mov byte [edi + 0x14], al
movzx eax, byte [esi + 0x15]
mov byte [edi + 0x15], al
movzx eax, byte [esi + 0x16]
mov byte [edi + 0x16], al
movzx eax, byte [esi + 0x17]
mov byte [edi + 0x17], al
lea eax, [esi + 0x18]
push eax
call fcn.00409670
lea eax, [esi + 0x24]
mov byte [ebp - 4], 4
push eax
lea ecx, [edi + 0x24]
call fcn.00409670
lea eax, [esi + 0x30]
mov byte [ebp - 4], 5
push eax
lea ecx, [edi + 0x30]
call fcn.00409670
mov byte [ebp - 4], 6
mov eax, dword [esi + 0x3c]
mov dword [edi + 0x3c], eax
mov eax, dword [esi + 0x40]
mov dword [edi + 0x40], eax
movq xmm0, qword [esi + 0x44]
movq qword [edi + 0x44], xmm0
mov eax, dword [esi + 0x4c]
mov dword [edi + 0x4c], eax
mov eax, dword [esi + 0x50]
mov dword [edi + 0x50], eax
mov eax, dword [esi + 0x54]
mov dword [edi + 0x54], eax
mov eax, dword [esi + 0x58]
mov dword [edi + 0x58], eax
mov eax, dword [esi + 0x5c]
mov dword [edi + 0x5c], eax
movzx eax, byte [esi + 0x60]
mov byte [edi + 0x60], al
mov eax, dword [esi + 0x68]
mov dword [edi + 0x68], eax
mov eax, dword [esi + 0x6c]
mov dword [edi + 0x6c], eax
mov eax, dword [esi + 0x70]
mov dword [edi + 0x70], eax
mov eax, dword [esi + 0x74]
mov dword [edi + 0x74], eax
lea eax, [esi + 0x78]
push eax
lea ecx, [edi + 0x78]
call fcn.0041ff90
lea eax, [esi + 0xa8]
mov byte [ebp - 4], 7
push eax
lea ecx, [edi + 0xa8]
call fcn.0041ff90
mov eax, dword [esi + 0xd8]
mov dword [edi + 0xd8], eax
mov eax, dword [esi + 0xdc]
mov dword [edi + 0xdc], eax
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
Function at 0x4210e0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45e7ce
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x474014]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
call fcn.004089f0
lea ecx, [esi + 0xc]
mov dword [ebp - 4], 0
call fcn.004089f0
mov byte [ebp - 4], 1
lea ecx, [esi + 0x24]
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov word [esi + 0x20], 0
call fcn.00409540
lea ecx, [esi + 0x30]
mov byte [ebp - 4], 2
call fcn.0041deb0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x421310
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45e819
mov eax, dword fs:[0]
push eax
sub esp, 8
push esi
push edi
mov eax, dword [0x474014]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x14], edi
call fcn.00421490
mov dword [ebp - 4], 0
lea ecx, [edi + 0xc]
mov dword [edi], 0x46d528
mov dword [edi + 8], 0
call fcn.00409540
lea ecx, [edi + 0x30]
call fcn.004214c0
lea ecx, [edi + 0x44]
call fcn.00415360
lea ecx, [edi + 0x48]
mov byte [ebp - 4], 2
call fcn.004212c0
mov byte [ebp - 4], 3
push ecx
lea ecx, [edi + 0x44]
mov dword [edi + 0x78], 0xffffffff
mov dword [edi + 0x40], 0
call fcn.004211b0
test eax, eax
jne 0x4213ab
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0x471620
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0x145ecb
push eax
call fcn.0043e102
int3
Function at 0x422310
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x84
mov eax, dword [0x474014]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov edi, ecx
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
mov dword [ebp - 0x84], 0x420041
xor edx, edx
mov dword [ebp - 0x80], 0x440043
mov dword [ebp - 0x7c], 0x460045
mov dword [ebp - 0x78], 0x480047
mov dword [ebp - 0x74], 0x4a0049
mov dword [ebp - 0x70], 0x4c004b
mov dword [ebp - 0x6c], 0x4e004d
mov dword [ebp - 0x68], 0x50004f
mov dword [ebp - 0x64], 0x520051
mov dword [ebp - 0x60], 0x540053
mov dword [ebp - 0x5c], 0x560055
mov dword [ebp - 0x58], 0x580057
mov dword [ebp - 0x54], 0x5a0059
mov dword [ebp - 0x50], 0x620061
mov dword [ebp - 0x4c], 0x640063
mov dword [ebp - 0x48], 0x660065
mov dword [ebp - 0x44], 0x680067
mov dword [ebp - 0x40], 0x6a0069
mov dword [ebp - 0x3c], 0x6c006b
mov dword [ebp - 0x38], 0x6e006d
mov dword [ebp - 0x34], 0x70006f
mov dword [ebp - 0x30], 0x720071
mov dword [ebp - 0x2c], 0x740073
mov dword [ebp - 0x28], 0x760075
mov dword [ebp - 0x24], 0x780077
mov dword [ebp - 0x20], 0x7a0079
mov dword [ebp - 0x1c], 0x310030
mov dword [ebp - 0x18], 0x330032
mov dword [ebp - 0x14], 0x350034
mov dword [ebp - 0x10], 0x370036
mov dword [ebp - 0xc], 0x390038
mov dword [ebp - 8], 0x2f002b
test esi, esi
jle 0x42244d
nop dword [eax]
movzx ecx, word [edi + edx*2]
xor eax, eax
cmp word [ebp + eax*2 - 0x84], cx
je 0x422448
inc eax
cmp eax, 0x40
jb 0x422426
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043858c
mov esp, ebp
pop ebp
ret
inc edx
cmp edx, esi
jl 0x422420
mov ecx, dword [ebp - 4]
mov al, 1
pop edi
xor ecx, ebp
pop esi
call fcn.0043858c
mov esp, ebp
pop ebp
ret

Function at 0x4224a0
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
lea eax, [ebp - 4]
mov dword [ebp - 4], 0
push eax
push ecx
mov esi, edx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
cmp edi, 0xffffffff
jne 0x4224d3
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x4224d3
pop edi
xor al, al
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
add eax, edi
mov dword [esi], eax
mov al, 1
adc ecx, 0
pop edi
mov dword [esi + 4], ecx
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x4226a0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
mov eax, dword [0x474014]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x208
lea eax, [ebp - 0x20c]
mov edi, edx
push 0
push eax
mov ebx, ecx
call fcn.0043be20
add esp, 0xc
lea eax, [ebp - 0x20c]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0
push 0x80
push 3
push 0
push 1
push SysReAllocStringLen
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x422743
mov edx, edi
mov ecx, esi
call fcn.004224a0
push dword [edi]
mov dword [ebp - 0x210], 0
call fcn.004386ec
add esp, 4
mov dword [ebx], eax
lea ecx, [ebp - 0x210]
push 0
push ecx
push dword [edi]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0043858c
mov esp, ebp
pop ebp
ret
Function at 0x44f5a3
Capabilities:
Allocate thread local storage

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x4662bc
push 0x4662b4
push str.FlsAlloc
push 0x1e
call fcn.0044f42d
mov esi, eax
add esp, 0x10
test esi, esi
je 0x44f5d7
push dword [ebp + 8]
mov ecx, esi
call dword [0x460278]
call esi
jmp 0x44f5dd
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
pop esi
pop ebp
ret 4

Function at 0x44f621
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x4662cc
push 0x4662c4
push str.FlsGetValue
push 0x20
call fcn.0044f42d
mov esi, eax
add esp, 0x10
test esi, esi
je 0x44f658
push dword [ebp + 8]
mov ecx, esi
call dword [0x460278]
call esi
pop esi
pop ebp
ret 4
pop esi
pop ebp
jmp dword [sym.imp.KERNEL32.dll_TlsGetValue]
Function at 0x451ee2
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 0x451f7f
push ebx
push esi
call fcn.00451eab
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.0044ecd7
add esp, 0x24
mov dword [ebp - 4], eax
test eax, eax
jne 0x451f2c
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
xor eax, eax
jmp 0x451f7e
push edi
push eax
call fcn.0044f0e1
mov edi, eax
pop ecx
push ebx
test edi, edi
jne 0x451f4c
call fcn.0044efce
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
xor eax, eax
jmp 0x451f7d
push ebx
push dword [ebp - 4]
push edi
push dword [ebp - 8]
push esi
push ebx
push ebx
call fcn.0044ecd7
add esp, 0x20
test eax, eax
jne 0x451f6b
push edi
call fcn.0044efce
jmp 0x451f73
push ebx
call fcn.0044efce
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 0x456006
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.00455e77

Function at 0x456400
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, 0x101c
call fcn.0045ca70
mov eax, dword [0x474014]
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.00450ad3
pop ecx
mov ecx, dword [ebp + 8]
mov ebx, eax
cmp dword [ecx + 8], 0
jne 0x456442
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
jmp 0x45659e
mov eax, dword [ecx]
sub eax, dword [ecx + 4]
push esi
push edi
push 0
cdq
push 2
push edx
push eax
call fcn.0045caa0
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 + 0x475b08]
push dword [edi + eax + 0x24]
push dword [edi + eax + 0x20]
push ebx
call fcn.004573f7
mov ecx, dword [esi*4 + 0x475b08]
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 0x456597
cmp eax, dword [edi + ecx + 0x24]
jne 0x456597
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 0x456597
push dword [ebp - 0x100c]
push 0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ebx
call fcn.004573f7
add esp, 0x14
test edx, edx
jl 0x456597
jg 0x45650d
test eax, eax
jb 0x456597
mov ebx, dword [ebp - 0x1018]
mov eax, dword [ebp - 0x1014]
test ebx, ebx
jg 0x456597
jl 0x456527
cmp dword [ebp - 0x1008], eax
ja 0x456597
lea edi, [ebp - 0x1004]
xor edx, edx
add edi, eax
lea ecx, [ebp - 0x1004]
xor esi, esi
cmp dword [ebp - 0x1008], edx
jne 0x456545
test ebx, ebx
je 0x45657e
cmp ecx, edi
jae 0x45657e
mov al, byte [ecx]
cmp al, 0xd
jne 0x45655f
lea eax, [edi - 1]
cmp ecx, eax
jae 0x45656b
cmp byte [ecx + 1], 0xa
jne 0x45656b
inc ecx
jmp 0x45656b
movzx eax, al
movsx eax, byte [eax + 0x474810]
add ecx, eax
add esi, 1
adc edx, 0
inc ecx
cmp esi, dword [ebp - 0x1008]
jne 0x456545
cmp edx, ebx
jne 0x456545
lea eax, [ebp - 0x1004]
sub ecx, eax
mov eax, ecx
cdq
add eax, dword [ebp - 0x1010]
adc edx, dword [ebp - 0x101c]
jmp 0x45659c
or edx, 0xffffffff
mov eax, edx
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop ebx
call fcn.0043858c
leave
ret