joyce8/EMBER2024-capa huggingface dataset:
Function at 0x49576a
Capabilities:
Encode data using xor

Disassembly:
sub dh, dl
xchg ecx, eax
mov edi, 0xde3e614a
sti
mov ch, byte [ebx + 0x73bcd47b]
add eax, 0xf0db0c8b
cli
cli
mov eax, 0xe5bd3b53
fcmovne st(0), st(6)
dec esi
aas
out 0x66, al
or byte [esp + ebx*4], cl
sbb eax, 0xfa466ec
wait
lahf
invalid

Function at 0x4ac52d
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x46f490
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push ebx
push ebp
push esi
push edi
mov eax, dword [0x48cc80]
xor eax, esp
push eax
lea eax, [esp + 0x64]
mov dword fs:[0], eax
mov eax, dword [0x48f4f0]
push eax
lea ecx, [esp + 0x34]
call 0x4cfc7d
lea esi, [esp + 0x34]
mov dword [esp + 0x6c], 0
call fcn.004ae81d
push 0x47ba28
push eax
lea ecx, [esp + 0x34]
push ecx
mov byte [esp + 0x78], 1
call fcn.004a510d
add esp, 0xc
mov byte [esp + 0x6c], 3
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4ac5b1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]

Function at 0x4ac6f8
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub eax, esi
or eax, ecx
jge 0x4ac70c
push esi
lea ecx, [esp + 0x20]
call fcn.004a542d
mov edx, dword [esp + 0x1c]
lea ecx, [esi + 1]
push ecx
push edx
call 0x4f491b
add esp, 8
test esi, esi
test byte [edi], 0x8c
jo 0x4ac723
add byte [eax], al
mov eax, dword [esp + 0x1c]
cmp esi, dword [eax - 8]
jg 0x4acb91
mov dword [eax - 0xc], esi
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov word [edx + esi*2], 0
call fcn.004bfc9d
add esp, 8
mov byte [esp + 0x6c], 0xb
mov edx, dword [esp + 0x18]
mov esi, dword [edx - 0xc]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, esi
or eax, ecx
jge 0x4ac778
push esi
lea ecx, [esp + 0x1c]
call fcn.004a542d
mov edx, dword [esp + 0x18]
lea eax, [esi + 1]
push eax
push edx
call 0x4f491b
add esp, 8
test esi, esi
jl 0x4acb91
mov eax, dword [esp + 0x18]
cmp esi, dword [eax - 8]
jg 0x4acb91
mov dword [eax - 0xc], esi
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x18]
push eax
mov word [ecx + esi*2], 0
call fcn.004bfc9d
add esp, 8
mov byte [esp + 0x6c], 0xc
mov edx, dword [esp + 0x14]
mov esi, dword [edx - 0xc]
mov eax, dword [edx - 8]
mov ecx, 1
add byte [eax], al
add byte [ebx], ch
dec edx
cld
sub eax, esi
or eax, ecx
jge 0x4ac7e4
push esi
lea ecx, [esp + 0x18]
call fcn.004a542d
mov edx, dword [esp + 0x14]
lea ecx, [esi + 1]
push ecx
push edx
call 0x4f491b
add esp, 8
test esi, esi
jl 0x4acb91
mov eax, dword [esp + 0x14]
cmp esi, dword [eax - 8]
jg 0x4acb91
mov dword [eax - 0xc], esi
mov edx, dword [esp + 0x14]
mov word [edx + esi*2], 0
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x4aca43
mov ebp, dword [ebx + 0x23c]
xor esi, esi
test ebp, ebp
jle 0x4ac86d
mov edi, edi
Function at 0x4ac82d
Capabilities:
Resolve function by parsing pe exports

Disassembly:
test esi, esi
jl 0x4acb8c
cmp esi, dword [ebx + 0x23c]
jge 0x4acb8c
mov eax, dword [ebx + 0x238]
mov ebx, dword [eax + esi*4]
mov eax, dword [ebx + 0x1d8]
push edi
push eax
call 0x4f40a8
add esp, 8
test eax, eax
je 0x4ac946
mov ebx, dword [esp + 0x74]
add esi, 1
cmp esi, ebp
jl fcn.004ac82d
add ebx, 0x25c
push edi
call fcn.004ae5ad
test eax, eax
jne 0x4ac8c5
mov esi, dword [esp + 0x74]
lea ebx, [esi + 0x284]
push edi
call fcn.004ae60d
test eax, eax
jne 0x4ac8c5
lea ebx, [esi + 0x270]
push edi
call fcn.004ae66d
test eax, eax
jne 0x4ac8c5
lea ebx, [esi + 0x248]
push edi
call fcn.004ae6cd
test eax, eax
jne 0x4ac8c5
lea ebx, [esi + 0x2ac]
push edi
call fcn.004ae72d
test eax, eax
je 0x4acb7b
mov edi, eax
test edi, edi
je 0x4aca3f
call 0x4d61b5
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4acb82
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
mov byte [esp + 0x6c], 0xd
mov ecx, dword [esp + 0x14]
cmp dword [ecx - 0xc], 0
jne 0x4ac94d
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x44]
push ecx
call fcn.004a504d
add esp, 0xc
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x70], 0xe
call fcn.004a553d
mov byte [esp + 0x6c], 0xd
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x4aca06
mov edi, ebx
jmp 0x4ac8c7
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x50]
push eax
call fcn.004a504d
push 0x47b14c
push eax
lea ecx, [esp + 0x58]
push ecx
mov byte [esp + 0x84], 0xf
call fcn.004a510d
lea edx, [esp + 0x30]
push edx
push eax
lea eax, [esp + 0x60]
mov bl, 0x10
push eax
mov byte [esp + 0x90], bl
call fcn.004a504d
add esp, 0x24
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x70], 0x11
call fcn.004a553d
mov byte [esp + 0x6c], bl
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4ac9c8
mov ecx, dword [eax]
mov edx, dword [ecx]
ja 0x4acb6f
pop es
sub dword [ebx], ebx
ljmp 0xc11f:0xdde76224
Function at 0x4aed0d
Capabilities:
Encode data using xor

Disassembly:
inc edi
outsd dx, dword [esi]
xchg esp, eax
jno 0x4aecb1
lodsd eax, dword [si]
movsb byte es:[edi], byte [esi]
ret 0x5912
invalid
xor byte [ebp - 0x1a12ef2e], cl
xchg esi, eax
in eax, dx
in eax, 0x96
cdq
test al, 0x36
mov eax, 0x599c7505
lodsb al, byte [esi]
pop eax
loop 0x4aed11
sub bl, bl
jp 0x4aec92
fstp xword [edx - 0x22]
cwde
inc ecx
xor al, 0x15
lodsb al, byte [esi]
cmp ecx, ebx
jns 0x4aed39
ja 0x4aeca1
ja 0x4aed07
adc dword [edi + 0x15], esi
mov ch, 0x1b
fsub st(7), st(0)
adc eax, 0xefdc1bb5
mov ebx, 0xc4cbbd59
jmp 0x4aec73
cmp bl, byte [ecx + 0x3c6a10e]
loop 0x4aecc3
push ebx
add dword [edi + ecx + 0x785dbab8], edx
add al, 0x77
xor eax, 0x548834bc
aam 0xb7
mov byte [esp + edx*8 - 0x49], dl
cmp eax, 0xec7b1cf5
inc esi
leave
movsb byte es:[edi], byte [esi]
aaa
add al, 0x98
inc ebp
adc esi, dword [eax + edi*8 + 2]
or eax, 0xaaae38a6
je 0x4aed33
test eax, 0xf52f585a
jns 0x4aed96
out 0xb0, al
sbb eax, 0xabd5b996
ficom dword [esp + edx - 0x779ef9d5]
inc eax
salc
sub eax, dword [esi]
popal
mov byte [eax - 0x2a], al
mov ecx, 0x6439e6de
mov ecx, 0x6439e6de
imul esp, esp, 0x5bd3ef6
xor byte [esi + 0x75cf219e], ah
mov ebx, 0xe611c69a
mov ebx, 0x358f152b
sbb al, byte [ecx + 0x27]
outsd dx, dword [esi]
xchg ecx, eax
jle 0x4aed3a
xchg ebp, eax
pop esp
cmpsb byte [esi], byte es:[edi]
jge 0x4aeda6
psllw mm0, qword [ecx + 0x19387d34]
dec esp
sbb edi, dword [esp + eax*8]
jl 0x4aecf2
invalid
and al, 5
sub al, bl
lds ebx, [eax + 0x313aeccc]
sbb ebx, edx
push ss
pop esi
xor cl, byte [eax + 0x27]
daa
movsb byte es:[edi], byte [esi]
hlt
Function at 0x4bd1b5
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a4
mov edx, dword [ebp + 8]
xor ecx, ecx
mov eax, 0x4c8360
cmp edx, dword [eax]
je 0x4bd1d7
add eax, 8
inc ecx
cmp eax, 0x4c83f0
jl 0x4bd1c8
push esi
mov esi, ecx
shl esi, 3
cmp edx, dword [esi + 0x4c8360]
jne 0x4bd305
mov eax, dword [0x4cccf0]
cmp eax, 1
je 0x4bd2df
test eax, eax
jne 0x4bd208
cmp dword [0x4c8288], 1
je 0x4bd2df
cmp edx, 0xfc
je 0x4bd305
lea eax, [ebp - 0x1a4]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x4bd23f
lea eax, [ebp - 0x1a4]
push str._program_name_unknown_
push eax
call fcn.004bdba0
pop ecx
pop ecx
lea eax, [ebp - 0x1a4]
push edi
push eax
lea edi, [ebp - 0x1a4]
call fcn.004be030
inc eax
pop ecx
cmp eax, 0x3c
jbe 0x4bd282
lea eax, [ebp - 0x1a4]
push eax
call fcn.004be030
mov edi, eax
lea eax, [ebp - 0x1a4]
sub eax, 0x3b
push 3
add edi, eax
push 0x4c302c
push edi
call fcn.004bff00
add esp, 0x10
lea eax, [ebp - 0xa0]
push str.Runtime_Error__n_nProgram:
push eax
call fcn.004bdba0
lea eax, [ebp - 0xa0]
push edi
push eax
call fcn.004bdbb0
lea eax, [ebp - 0xa0]
push 0x4c300c
push eax
call fcn.004bdbb0
push dword [esi + 0x4c8364]
lea eax, [ebp - 0xa0]
push eax
call fcn.004bdbb0
push 0x12010
lea eax, [ebp - 0xa0]
push str.Microsoft_Visual_C_Runtime_Library
push eax
call fcn.004bfe74
add esp, 0x2c
pop edi
jmp 0x4bd305
lea eax, [ebp + 8]
lea esi, [esi + 0x4c8364]
push 0
push eax
push dword [esi]
call fcn.004be030
pop ecx
push eax
push dword [esi]
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
pop esi
leave
ret
Function at 0x10001a00
Capabilities:
Check os version

Disassembly:
sub esp, 0x9c
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExA]
push edi
mov ecx, 0x27
xor eax, eax
lea edi, [esp + 8]
rep stosd dword es:[edi], eax
lea eax, [esp + 8]
mov dword [esp + 8], 0x9c
push eax
call esi
test eax, eax
jne 0x10001a4e
lea ecx, [esp + 8]
mov dword [esp + 8], 0x94
push ecx
call esi
test eax, eax
jne 0x10001a4e
pop edi
xor al, al
pop esi
add esp, 0x9c
ret 4
mov eax, dword [esp + 0x18]
sub eax, 0
je 0x10001b90
dec eax
je 0x10001b19
dec eax
jne 0x10001ba4
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0xa8]
lea ecx, [edx - 3]
mov dword [eax + 4], 0xf
cmp ecx, 3
ja case.default.0x10001a83
jmp dword [ecx*4 + 0x10001bb4]
mov dword [eax], 0xb
pop edi
mov al, 1
pop esi
add esp, 0x9c
ret 4
mov dword [eax], 0xc
pop edi
mov al, 1
pop esi
add esp, 0x9c
ret 4
mov ecx, dword [esp + 0x10]
mov dword [eax + 4], 0x12
sub ecx, 0
je 0x10001ac6
dec ecx
je case.default.0x10001a83
dec ecx
je 0x10001ad9
mov dword [eax], 0xd
pop edi
mov al, 1
pop esi
add esp, 0x9c
ret 4
mov dword [eax], 0x10
pop edi
mov al, 1
pop esi
add esp, 0x9c
ret 4
mov dword [eax], 0xe
pop edi
mov al, 1
pop esi
add esp, 0x9c
ret 4
mov dword [eax], 0x11
mov dword [eax + 4], 0x12
pop edi
mov al, 1
pop esi
add esp, 0x9c
ret 4
mov eax, dword [esp + 0x10]
test eax, eax
je 0x10001b6f
cmp eax, 0xa
je 0x10001b4e
xor ecx, ecx
cmp eax, 0x5a
mov eax, dword [esp + 0xa8]
pop edi
setne cl
add ecx, 9
mov dword [eax + 4], 0xa
mov dword [eax], ecx
mov al, 1
pop esi
add esp, 0x9c
ret 4
mov eax, dword [esp + 0xa8]
pop edi
pop esi
mov dword [eax], 8
mov dword [eax + 4], 0xa
mov al, 1
add esp, 0x9c
ret 4
mov eax, dword [esp + 0xa8]
pop edi
pop esi
mov dword [eax], 5
mov dword [eax + 4], 0xa
mov al, 1
add esp, 0x9c
ret 4
mov eax, dword [esp + 0xa8]
mov dword [eax], 2
mov dword [eax + 4], 2
pop edi
mov al, 1
pop esi
add esp, 0x9c
ret 4

Function at 0x100049fd
Capabilities:
Enumerate pe sections

Disassembly:
mov ecx, dword [esp + 8]
push esi
push edi
xor edi, edi
movzx eax, word [ecx + 0x14]
movzx esi, word [ecx + 6]
test esi, esi
lea eax, [eax + ecx + 0x18]
jbe 0x10004a38
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x10004a1f
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
cmp dword [esp + 0xc], edx
jb 0x10004a30
add edx, ecx
cmp dword [esp + 0xc], edx
jb 0x10004a3a
inc edi
add eax, 0x28
shr byte [eax], 0x3b
invalid
jb 0x10004a15
xor eax, eax
pop edi
pop esi
ret
Function at 0x405860
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x464a60
mov eax, dword fs:[0]
push eax
push esi
push edi
mov eax, dword [0x48906c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
push 8
mov dword [edi], vtable.std::basic_streambuf_wchar_t__struct_std::char_traits_wchar_t__.0
call fcn.0043efa3
mov esi, eax
push 1
mov dword [ebp - 4], 0
call fcn.0042b909
mov dword [esi + 4], eax
lea ecx, [edi + 8]
lea eax, [edi + 4]
mov dword [edi + 0x34], esi
mov dword [edi + 0xc], eax
add esp, 8
lea eax, [edi + 0x14]
mov dword [edi + 0x10], ecx
mov dword [edi + 0x1c], eax
lea eax, [edi + 0x18]
mov dword [edi + 0x20], eax
lea eax, [edi + 0x24]
mov dword [edi + 0x2c], eax
lea eax, [edi + 0x28]
mov dword [edi + 0x30], eax
mov dword [ecx], 0
mov eax, dword [edi + 0x20]
mov dword [eax], 0
mov eax, dword [edi + 0x30]
mov dword [eax], 0
mov eax, dword [edi + 0xc]
mov dword [eax], 0
mov eax, dword [edi + 0x1c]
mov dword [eax], 0
mov eax, dword [edi + 0x2c]
mov dword [eax], 0
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

Function at 0x407ac0
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x464fd0
mov eax, dword fs:[0]
push eax
sub esp, 0x64
push esi
mov eax, dword [0x48906c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
mov dword [esi + 4], 0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x70]
push 0
mov dword [esi], vtable.std::codecvt_wchar_t__char__struct__Mbstatet_.0
call fcn.0042b69c
mov dword [ebp - 0x6c], 0
mov byte [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov byte [ebp - 0x60], 0
xor eax, eax
mov dword [ebp - 0x5c], 0
mov word [ebp - 0x58], ax
mov dword [ebp - 0x54], eax
mov word [ebp - 0x50], ax
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x48], al
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x40], al
lea eax, [ebp - 0x70]
mov byte [ebp - 4], 7
push 0x4782c8
push eax
call fcn.0042ba10
lea eax, [ebp - 0x3c]
push eax
call fcn.0042bf0d
add esp, 0xc
lea ecx, [ebp - 0x70]
movups xmm0, xmmword [eax]
movups xmmword [esi + 8], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esi + 0x18], xmm0
movq xmm0, qword [eax + 0x20]
movq qword [esi + 0x28], xmm0
mov eax, dword [eax + 0x28]
mov dword [esi + 0x30], eax
call fcn.00401b70
mov dword [esi], vtable.std::codecvt_utf8_wchar_t__1114111__0_.0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret 4
Function at 0x408310
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x48906c]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, 0xffff
mov esi, ecx
cmp ax, di
jne 0x408345
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043ef8d
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esi + 0x20]
push ebx
mov ecx, dword [eax]
test ecx, ecx
je 0x408383
mov edx, dword [esi + 0x30]
mov ebx, dword [edx]
lea eax, [ecx + ebx*2]
cmp ecx, eax
jae 0x408383
lea ecx, [ebx - 1]
mov dword [edx], ecx
mov edx, dword [esi + 0x20]
mov esi, dword [edx]
lea ecx, [esi + 2]
mov dword [edx], ecx
mov word [esi], di
pop ebx
mov ax, di
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043ef8d
mov esp, ebp
pop ebp
ret 4
cmp dword [esi + 0x4c], 0
je 0x40845f
mov ebx, dword [esi + 0xc]
lea eax, [esi + 0x3c]
cmp dword [ebx], eax
jne 0x4083ad
mov edx, dword [esi + 0x54]
mov ecx, dword [esi + 0x50]
sub edx, ecx
mov dword [ebx], ecx
mov eax, dword [esi + 0x1c]
sar edx, 1
mov dword [eax], ecx
mov eax, dword [esi + 0x2c]
mov dword [eax], edx
mov ecx, dword [esi + 0x38]
test ecx, ecx
jne 0x4083e6
push dword [esi + 0x4c]
push edi
call fcn.00446d12
mov ecx, 0xffff
add esp, 8
cmp ax, cx
movzx eax, di
jne 0x408464
pop ebx
pop edi
mov eax, ecx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043ef8d
mov esp, ebp
pop ebp
ret 4
movzx eax, di
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x2c]
mov edx, dword [ecx]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x26]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [esi + 0x40]
push eax
call dword [edx + 0x1c]
test eax, eax
js 0x40845f
cmp eax, 1
jle 0x408432
cmp eax, 3
jne 0x40845f
push dword [esi + 0x4c]
push dword [ebp - 0x28]
call fcn.00407030
add esp, 8
test al, al
movzx eax, di
jne 0x408464
jmp 0x40845f
mov ebx, dword [ebp - 0x2c]
lea eax, [ebp - 0x24]
sub ebx, eax
je 0x40844f
push dword [esi + 0x4c]
push ebx
push 1
push eax
call fcn.004442fc
add esp, 0x10
cmp ebx, eax
jne 0x40845f
lea eax, [ebp - 0x28]
mov byte [esi + 0x3e], 1
cmp dword [ebp - 0x30], eax
jne 0x40836d
mov eax, 0xffff
mov ecx, dword [ebp - 4]
pop ebx
pop edi
xor ecx, ebp
pop esi
call fcn.0043ef8d
mov esp, ebp
pop ebp
ret 4
Function at 0x4089f0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x48906c]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
push edi
cmp dword [esi + 0x38], 0
je 0x408a9d
cmp byte [esi + 0x3e], 0
je 0x408a9d
mov eax, dword [esi]
push 0xffff
call dword [eax + 0xc]
mov ecx, 0xffff
cmp cx, ax
je 0x408a53
mov ecx, dword [esi + 0x38]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 4]
push eax
mov edx, dword [ecx]
lea eax, [ebp - 0x24]
push eax
lea eax, [esi + 0x40]
push eax
call dword [edx + 0x20]
sub eax, 0
je 0x408a65
sub eax, 1
je 0x408a69
sub eax, 2
je 0x408a9d
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043ef8d
mov esp, ebp
pop ebp
ret
mov byte [esi + 0x3e], 0
mov edi, dword [ebp - 0x28]
lea eax, [ebp - 0x24]
sub edi, eax
je 0x408a86
push dword [esi + 0x4c]
push edi
push 1
push eax
call fcn.004442fc
add esp, 0x10
cmp edi, eax
jne 0x408a53
cmp byte [esi + 0x3e], 0
pop edi
sete al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043ef8d
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov al, 1
pop edi
xor ecx, ebp
pop esi
call fcn.0043ef8d
mov esp, ebp
pop ebp
ret

Function at 0x4093c0
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1008
call fcn.00440280
mov eax, dword [0x48906c]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, edx
push edi
test ecx, ecx
je 0x409418
test esi, esi
je 0x409418
push 0x4782e0
push ecx
call fcn.00444415
mov edi, eax
add esp, 8
test edi, edi
je 0x409418
push 0x478110
push esi
call fcn.00444415
add esp, 8
mov dword [ebp - 0x1008], eax
test eax, eax
jne 0x40942a
push edi
call fcn.00444044
add esp, 4
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043ef8d
mov esp, ebp
pop ebp
ret
push ebx
xor bl, bl
nop dword [eax]
push edi
push 0x200
lea eax, [ebp - 0x1004]
push 1
push eax
call fcn.00447b3d
mov esi, eax
add esp, 0x10
test esi, esi
je 0x40946c
push dword [ebp - 0x1008]
lea eax, [ebp - 0x1004]
push esi
push 1
push eax
call fcn.004442fc
add esp, 0x10
cmp eax, esi
setne bl
je 0x409430
push edi
call fcn.00444044
push dword [ebp - 0x1008]
call fcn.00444044
mov ecx, dword [ebp - 4]
add esp, 8
xor bl, 1
xor ecx, ebp
mov al, bl
pop ebx
pop edi
pop esi
call fcn.0043ef8d
mov esp, ebp
pop ebp
ret

Function at 0x40e3a0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 0x10]
xor ecx, ecx
test esi, esi
je 0x40e3cb
mov edx, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jb 0x40e3b4
pop edi
mov eax, edx
pop esi
pop ebp
ret
mov eax, dword [ebp + 8]
pop esi
pop ebp
ret
Function at 0x4178e0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4660eb
mov eax, dword fs:[0]
push eax
sub esp, 0xf8
mov eax, dword [0x48906c]
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 esi, ecx
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x100]
push eax
mov dword [ebp - 0x104], eax
call fcn.00416f30
lea eax, [ebp - 0x88]
mov dword [ebp - 4], 0
cmp eax, esi
je 0x41794f
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x417940
mov eax, dword [esi]
push dword [esi + 0x10]
lea ecx, [ebp - 0x88]
push eax
call fcn.004014b0
lea eax, [ebp - 0x100]
mov dword [ebp - 0x1c], 0x47c390
push eax
lea eax, [ebp - 0x40]
mov dword [ebp - 0x18], 0x47d28c
push eax
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x14], 0x47d294
call fcn.00416b10
mov eax, dword [ebp - 0x30]
lea edi, [ebp - 0x40]
cmp dword [ebp - 0x2c], 8
mov esi, 0x811c9dc5
mov edx, dword [ebp - 0x40]
cmovae edi, edx
xor ecx, ecx
lea ebx, [eax + eax]
test ebx, ebx
je 0x4179a6
movzx eax, byte [ecx + edi]
inc ecx
xor eax, esi
imul esi, eax, 0x1000193
cmp ecx, ebx
jb 0x417995
mov eax, dword [ebp - 0x2c]
cmp eax, 8
jb 0x4179dd
lea ecx, [eax*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4179d3
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x417aaa
push ecx
push edx
call fcn.0043efd3
add esp, 8
xor eax, eax
mov dword [ebp - 0x30], 0
lea ecx, [ebp - 0x100]
mov dword [ebp - 0x2c], 7
mov word [ebp - 0x40], ax
mov dword [ebp - 4], 0xffffffff
call fcn.00417030
mov edx, esi
lea ecx, [ebp - 0x28]
call fcn.0040e4c0
mov eax, dword [ebp - 0x104]
cmp dword [eax + 0x8c], 8
lea ecx, [eax + 0x78]
jb 0x417a22
mov ecx, dword [eax + 0x78]
cmp dword [ebp - 0x14], 8
lea esi, [ebp - 0x28]
mov edi, dword [ebp - 0x28]
mov edx, dword [ebp - 0x18]
cmovae esi, edi
cmp edx, dword [eax + 0x88]
jne 0x417a55
test edx, edx
je 0x417a51
sub esi, ecx
mov ax, word [esi + ecx]
cmp ax, word [ecx]
jne 0x417a55
add ecx, 2
sub edx, 1
jne 0x417a40
mov bl, 1
jmp 0x417a57
xor bl, bl
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x417a8a
lea ecx, [eax*2 + 2]
mov eax, edi
cmp ecx, 0x1000
jb 0x417a80
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x417aaf
push ecx
push edi
call fcn.0043efd3
add esp, 8
mov al, bl
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.0043ef8d
mov esp, ebp
pop ebp
ret 4
call fcn.00444642
call fcn.00444642
int3
Function at 0x419e50
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 0xc]
mov ecx, 0
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, 0x811c9dc5
sub edx, edi
sar edx, 1
add edx, edx
je 0x419e81
nop dword [eax]
movzx eax, byte [ecx + edi]
inc ecx
xor eax, esi
imul esi, eax, 0x1000193
cmp ecx, edx
jb 0x419e70
pop edi
mov eax, esi
pop esi
pop ebp
ret 8
Function at 0x421c00
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x801c
call fcn.00440280
mov eax, dword [0x48906c]
xor eax, esp
mov dword [esp + 0x8018], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, ecx
mov dword [esp + 0x10], eax
mov ebx, edx
mov dword [esp + 8], ebx
push edi
test esi, esi
jne 0x421c5a
mov edx, 0x47ea50
mov ecx, 0x48b188
call fcn.00405e50
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x8018]
xor ecx, esp
call fcn.0043ef8d
mov esp, ebp
pop ebp
ret
xorps xmm0, xmm0
mov dword [eax], 0xffffffff
push 0x4782e0
push esi
movlpd qword [esp + 0x20], xmm0
mov dword [eax + 4], 0xffffffff
call fcn.00444415
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
jne 0x421cbe
mov edx, str.Cant_read_file:
mov ecx, 0x48b188
call fcn.00405e50
mov edx, esi
mov ecx, eax
call fcn.00405e50
push eax
call fcn.0040bc50
add esp, 4
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x8018]
xor ecx, esp
call fcn.0043ef8d
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x1c]
mov dword [ebx], 0
mov ebx, dword [esp + 0x18]
nop dword [eax]
push eax
push 0x8000
lea eax, [esp + 0x28]
push 1
push eax
call fcn.00447b3d
mov esi, eax
lea ecx, [esp + 0x30]
mov eax, dword [esp + 0x1c]
mov edx, esi
push dword [eax]
call fcn.00427b00
mov ecx, dword [esp + 0x20]
add esp, 0x14
add ebx, esi
adc edi, 0
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
cmp esi, 0x8000
je 0x421cd0
push eax
call fcn.00444044
mov eax, dword [esp + 0x18]
add esp, 4
mov ecx, dword [esp + 0x8024]
mov dword [eax + 4], edi
pop edi
mov dword [eax], ebx
mov al, 1
pop esi
pop ebx
xor ecx, esp
call fcn.0043ef8d
mov esp, ebp
pop ebp
ret
Function at 0x45609c
Capabilities:
Read file on windows

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

Function at 0x4560a7
Capabilities:
Read file on windows

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

Function at 0x45cebc
Capabilities:
Set environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.0045c82a

Function at 0x45cec7
Capabilities:
Set environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.0045ca65