joyce8/EMBER2024-capa huggingface dataset:
Function at 0x451060
Capabilities:
Get common file path

Disassembly:
mov eax, dword [esp + 8]
sub esp, 0x408
test ah, 8
push esi
jne 0x451086
test ah, 0x10
je 0x451176
call fcn.00423420
test eax, eax
je 0x451176
push str.TMPDIR
call fcn.004a3dcd
add esp, 4
test eax, eax
je 0x4510aa
cmp byte [eax], 0
jne 0x451156
push str.illegal_TMPDIR_environment_variable
jmp 0x451139
push str.TEMP
call fcn.004a3dcd
add esp, 4
test eax, eax
je 0x4510e6
cmp byte [eax], 0
jne 0x451156
mov ecx, dword [esp + 0x410]
push str.illegal_TEMP_environment_variable
push ecx
call fcn.00415f80
add esp, 8
mov eax, 0x16
pop esi
add esp, 0x408
ret
push 0x4c240c
call fcn.004a3dcd
add esp, 4
test eax, eax
je 0x45111e
cmp byte [eax], 0
jne 0x451156
mov edx, dword [esp + 0x410]
push str.illegal_TMP_environment_variable
push edx
call fcn.00415f80
add esp, 8
mov eax, 0x16
pop esi
add esp, 0x408
ret
push str.TempFolder
call fcn.004a3dcd
add esp, 4
test eax, eax
je 0x451176
cmp byte [eax], 0
jne 0x451156
push str.illegal_TempFolder_environment_variable
mov eax, dword [esp + 0x414]
push eax
call fcn.00415f80
add esp, 8
mov eax, 0x16
pop esi
add esp, 0x408
ret
mov ecx, dword [esp + 0x410]
lea edx, [ecx + 0xc8]
push edx
push eax
push ecx
call fcn.00410b00
add esp, 0xc
pop esi
add esp, 0x408
ret
lea eax, [esp + 8]
push eax
push 0x400
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
cmp eax, 2
jbe 0x4511f2
push edi
lea edi, [esp + 0xc]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
pop edi
lea eax, [esp + ecx + 7]
mov cl, byte [esp + ecx + 7]
cmp cl, 0x5c
je 0x4511ad
cmp cl, 0x2f
jne 0x4511b0
mov byte [eax], 0
lea ecx, [esp + 4]
lea edx, [esp + 8]
push ecx
push edx
call fcn.00451780
add esp, 8
test eax, eax
jne 0x4511f2
mov eax, dword [esp + 4]
test eax, eax
je 0x4511f2
mov eax, dword [esp + 0x410]
lea edx, [esp + 8]
lea ecx, [eax + 0xc8]
push ecx
push edx
push eax
call fcn.00410b00
add esp, 0xc
pop esi
add esp, 0x408
ret
mov eax, dword [str._var_tmp]
mov esi, 0x4c2360
test eax, eax
je 0x451226
mov ecx, dword [esi]
lea eax, [esp + 4]
push eax
push ecx
call fcn.00451780
add esp, 8
test eax, eax
jne 0x45121c
mov eax, dword [esp + 4]
test eax, eax
jne 0x451230
mov eax, dword [esi + 4]
add esi, 4
test eax, eax
jne 0x451200
xor eax, eax
pop esi
add esp, 0x408
ret
mov eax, dword [esp + 0x410]
mov ecx, dword [esi]
lea edx, [eax + 0xc8]
push edx
push ecx
push eax
call fcn.00410b00
add esp, 0xc
pop esi
add esp, 0x408
ret
Function at 0x451780
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov eax, dword [0x4b8958]
test eax, eax
je 0x451799
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
push ecx
push edx
call eax
add esp, 8
ret
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push ebp
push esi
push edi
mov edi, dword [esp + 0x14]
mov ebp, 0x64
push edi
call ebx
mov esi, eax
xor eax, eax
cmp esi, 0xffffffff
sete al
test eax, eax
je 0x4517df
call fcn.0043c770
cmp eax, 0xb
je 0x4517d6
cmp eax, 0x10
je 0x4517d6
cmp eax, 4
je 0x4517d6
cmp eax, 5
jne 0x4517db
dec ebp
test ebp, ebp
jg 0x4517ac
test eax, eax
jne 0x4517ec
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4517ec
and esi, 0x10
mov dword [ecx], esi
pop edi
pop esi
pop ebp
pop ebx
ret
Function at 0x452870
Capabilities:
Check if file exists
Delete file
Get file attributes
Move file

Disassembly:
mov eax, dword [0x4b8994]
sub esp, 0x404
test eax, eax
push ebx
push ebp
push esi
push edi
je 0x452897
mov ecx, dword [esp + 0x41c]
push ecx
call eax
add esp, 4
mov esi, eax
jmp 0x45296e
mov edi, dword [esp + 0x41c]
xor esi, esi
call fcn.0043cf00
test eax, eax
je 0x452939
mov ebx, dword [esp + 0x418]
lea edx, [esp + 0x10]
push edx
push ebx
call fcn.004241e0
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x1c]
push eax
push edi
push str._s.del._010u
push 0x400
push ecx
call fcn.004a3f7b
add esp, 0x1c
lea edx, [esp + 0x14]
push edx
push edi
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
je 0x4528f2
lea edi, [esp + 0x14]
jmp 0x45290b
call fcn.0043c770
cmp eax, 2
je 0x45290b
push edi
push str.unlink:_rename__s_to_temporary_file_failed
push ebx
call fcn.00415f80
add esp, 0xc
push 0
push 0x4000000
push 3
push 0
push 1
push 0
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
je 0x452939
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x45299b
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ebp, 0x64
push edi
call ebx
neg eax
sbb eax, eax
inc eax
je 0x45299d
call fcn.0043c770
mov esi, eax
cmp esi, 0xb
je 0x452969
cmp esi, 0x10
je 0x452969
cmp esi, 4
je 0x452969
cmp esi, 5
jne 0x45296e
dec ebp
test ebp, ebp
jg 0x452944
test esi, esi
je 0x45299b
cmp esi, 2
je 0x45299b
push esi
call fcn.004a3a3c
mov ecx, dword [esp + 0x41c]
push eax
mov eax, dword [esp + 0x424]
push eax
push str.unlink:__s:__s
push ecx
call fcn.00415f80
add esp, 0x14
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x404
ret
Function at 0x459200
Capabilities:
Read file on windows
Write file on windows

Disassembly:
sub esp, 0x14
push ebx
push ebp
push esi
push edi
call fcn.0043cf00
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
test eax, eax
je 0x4592af
mov eax, ebx
mov dword [esp + 0x20], 0
mul esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x2c]
dec eax
mov dword [esp + 0x1c], edx
je 0x459270
dec eax
jne 0x459297
mov eax, dword [0x4b899c]
test eax, eax
jne 0x4592af
call fcn.0043cf20
test eax, eax
jne 0x4592af
mov edx, dword [esp + 0x3c]
lea eax, [esp + 0x10]
lea ecx, [esp + 0x38]
push eax
mov eax, dword [edi + 8]
push ecx
push esi
push edx
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x4592af
jmp 0x459297
mov eax, dword [0x4b8980]
test eax, eax
jne 0x4592af
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x10]
lea edx, [esp + 0x38]
push ecx
mov ecx, dword [edi + 8]
push edx
push esi
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4592af
mov eax, dword [esp + 0x38]
cmp eax, esi
jne 0x4592af
mov edx, dword [esp + 0x40]
pop edi
pop esi
pop ebp
mov dword [edx], eax
xor eax, eax
pop ebx
add esp, 0x14
ret
mov eax, dword [edi]
mov ebp, dword [esp + 0x28]
test eax, eax
je 0x4592d4
push eax
push ebp
call fcn.004151f0
add esp, 8
test eax, eax
je 0x4592d4
pop edi
pop esi
pop ebp
mov eax, 0xffff8702
pop ebx
add esp, 0x14
ret
push 2
push 0
push 0
push ebx
push esi
push edi
push ebp
call fcn.00459860
mov ebx, eax
add esp, 0x1c
test ebx, ebx
jne 0x459321
mov eax, dword [esp + 0x2c]
dec eax
je 0x45930a
dec eax
jne 0x459321
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
push eax
push esi
push ecx
push edi
push ebp
call fcn.00459480
jmp 0x45931c
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
push edx
push esi
push eax
push edi
push ebp
call fcn.00459350
add esp, 0x14
mov ebx, eax
mov edi, dword [edi]
test edi, edi
je 0x45933a
push edi
push ebp
call fcn.00415420
add esp, 8
test eax, eax
mov eax, 0xffff8702
jne 0x45933c
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
Function at 0x459350
Capabilities:
Read file on windows

Disassembly:
mov eax, dword [0x4b8980]
sub esp, 8
push ebx
push esi
push edi
xor esi, esi
xor edi, edi
cmp eax, esi
je 0x4593b3
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
mov dword [eax], esi
push esi
mov edx, dword [ecx + 0xc]
push ebx
push edx
call dword [0x4b8980]
add esp, 0xc
cmp eax, esi
je 0x4593aa
call fcn.0043c770
mov edi, eax
push edi
call fcn.004a3a3c
push eax
mov eax, dword [esp + 0x20]
push esi
push ebx
push str.read:__lx___lu:__s
push eax
call fcn.00415f80
add esp, 0x18
mov eax, edi
pop edi
pop esi
pop ebx
add esp, 8
ret
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
cmp edi, esi
mov dword [esp + 0xc], esi
jbe 0x45943a
push ebp
jmp 0x4593ca
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov ebp, 0x64
sub edi, eax
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x14]
push 0
push ecx
mov eax, dword [edx + 8]
push edi
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov esi, eax
neg esi
sbb esi, esi
inc esi
je 0x459415
call fcn.0043c770
mov esi, eax
cmp esi, 0xb
je 0x459410
cmp esi, 0x10
je 0x459410
cmp esi, 4
je 0x459410
cmp esi, 5
jne 0x459415
dec ebp
test ebp, ebp
jg 0x4593d5
mov eax, dword [esp + 0x14]
test eax, eax
je 0x459435
test esi, esi
jne 0x459435
mov ecx, dword [esp + 0x10]
add ebx, eax
add ecx, eax
mov eax, dword [esp + 0x28]
cmp ecx, eax
mov dword [esp + 0x10], ecx
jb 0x4593c6
mov edi, dword [esp + 0x28]
pop ebp
mov edx, dword [esp + 0x20]
mov ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0x28]
test esi, esi
mov dword [edx], ecx
je 0x45946d
push esi
call fcn.004a3a3c
push eax
mov eax, dword [esp + 0x14]
sub edi, eax
mov eax, dword [esp + 0x20]
push edi
push ebx
push str.read:_0x_lx___lu:__s
push eax
call fcn.00415f80
add esp, 0x18
mov eax, esi
pop edi
pop esi
pop ebx
add esp, 8
ret
Function at 0x4594c0
Capabilities:
Write file on windows

Disassembly:
push ecx
push ebx
push esi
push edi
mov edi, dword [esp + 0x14]
xor esi, esi
mov eax, dword [edi + 0xe8]
cmp eax, esi
je 0x4594f5
mov eax, dword [eax + 0x1c]
cmp dword [eax + 4], esi
je 0x4594f5
mov eax, dword [edi + 0x394]
test ah, 0x80
jne 0x4594f5
push edi
call fcn.00415d30
add esp, 4
pop edi
pop esi
pop ebx
pop ecx
ret
cmp dword [0x4b899c], esi
je 0x459556
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov dword [ecx], esi
push esi
mov eax, dword [edx + 0xc]
push ebx
push eax
call dword [0x4b899c]
add esp, 0xc
cmp eax, esi
je 0x45954b
call fcn.0043c770
mov edi, eax
push edi
call fcn.004a3a3c
mov ecx, dword [esp + 0x18]
push eax
push esi
push ebx
push str.write:__lx___lu:__s
push ecx
call fcn.00415f80
add esp, 0x18
mov eax, edi
pop edi
pop esi
pop ebx
pop ecx
ret
mov edi, dword [esp + 0x14]
mov eax, edi
pop edi
pop esi
pop ebx
pop ecx
ret
mov ebx, dword [esp + 0x1c]
push ebp
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x20], esi
cmp ebp, esi
jbe 0x4595db
mov eax, dword [esp + 0x20]
mov edi, ebp
mov dword [esp + 0x24], 0x64
sub edi, eax
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x10]
push 0
push edx
mov ecx, dword [eax + 8]
push edi
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov esi, eax
neg esi
sbb esi, esi
inc esi
je 0x4595c3
call fcn.0043c770
mov esi, eax
cmp esi, 0xb
je 0x4595b2
cmp esi, 0x10
je 0x4595b2
cmp esi, 4
je 0x4595b2
cmp esi, 5
jne 0x4595bf
mov eax, dword [esp + 0x24]
dec eax
test eax, eax
mov dword [esp + 0x24], eax
jg 0x459577
test esi, esi
jne 0x4595d7
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
add ecx, eax
add ebx, eax
cmp ecx, ebp
mov dword [esp + 0x20], ecx
jb 0x459567
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x28]
test esi, esi
mov dword [edx], ebp
je 0x459602
push esi
call fcn.004a3a3c
mov ecx, dword [esp + 0x24]
push eax
sub ebp, ecx
push ebp
push ebx
push str.write:__lx___lu:__s
push edi
call fcn.00415f80
add esp, 0x18
pop ebp
mov eax, esi
pop edi
pop esi
pop ebx
pop ecx
ret
Function at 0x462e60
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
lea edx, [ecx + eax]
xor eax, eax
cmp ecx, edx
jae 0x462e84
push ebx
imul eax, eax, 0x1000193
xor ebx, ebx
mov bl, byte [ecx]
xor eax, ebx
inc ecx
cmp ecx, edx
jb 0x462e72
pop ebx
ret
Function at 0x473e30
Capabilities:
Delete file
Move file

Disassembly:
mov eax, dword [0x4b8988]
push ebx
push ebp
push esi
xor esi, esi
push edi
test eax, eax
je 0x473e55
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
push edi
push ebx
call eax
add esp, 8
cmp eax, 0xffffffff
jne 0x473ed1
jmp 0x473ea3
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov ebp, dword [sym.imp.KERNEL32.dll_MoveFileA]
push edi
push ebx
xor esi, esi
call ebp
test eax, eax
jne 0x473ed1
call fcn.0043c770
mov esi, eax
cmp esi, 0x11
jne 0x473eaa
xor esi, esi
call fcn.0043cf00
test eax, eax
je 0x473e94
push 1
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
test eax, eax
jne 0x473ed1
jmp 0x473ea3
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push edi
push ebx
call ebp
test eax, eax
jne 0x473ed1
call fcn.0043c770
mov esi, eax
test esi, esi
je 0x473ed1
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x473ed1
push esi
call fcn.004a3a3c
push eax
mov eax, dword [esp + 0x1c]
push edi
push ebx
push str.Rename__s__s:__s
push eax
call fcn.00415f80
add esp, 0x18
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
ret
Function at 0x47d780
Capabilities:
Hash data using sha1

Disassembly:
mov eax, dword [esp + 4]
xor ecx, ecx
mov dword [eax], 0x67452301
mov dword [eax + 4], 0xefcdab89
mov dword [eax + 8], 0x98badcfe
mov dword [eax + 0xc], 0x10325476
mov dword [eax + 0x10], 0xc3d2e1f0
mov dword [eax + 0x18], ecx
mov dword [eax + 0x14], ecx
ret

Function at 0x47dc60
Capabilities:
Enumerate files on windows

Disassembly:
mov eax, dword [0x4b8954]
sub esp, 0x550
push edi
xor edi, edi
cmp eax, edi
je 0x47dc97
mov ecx, dword [esp + 0x564]
mov edx, dword [esp + 0x560]
push ecx
mov ecx, dword [esp + 0x560]
push edx
push ecx
call eax
add esp, 0xc
pop edi
add esp, 0x550
ret
movsx edx, byte [0x4b9048]
mov eax, dword [esp + 0x55c]
push edx
push eax
push str._s_hc
lea ecx, [esp + 0x15c]
push 0x400
push ecx
call fcn.004a3f7b
add esp, 0x14
lea edx, [esp + 0x10]
lea eax, [esp + 0x150]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [esp + 0xc], eax
jne 0x47dcea
call fcn.0043c770
pop edi
add esp, 0x550
ret
push ebx
mov ebx, dword [esp + 0x55c]
push ebp
push esi
mov dword [esp + 0x10], edi
xor ebp, ebp
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x14]
cmp ebp, eax
jl 0x47dd2a
lea ecx, [esp + 0x10]
mov edx, eax
add edi, 0x190
push ecx
add edx, 0x64
push edi
push ebx
mov dword [esp + 0x20], edx
call fcn.00410c30
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x47dd6d
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x48]
lea eax, [edx + ebp*4]
push eax
push ecx
push ebx
call fcn.00410b00
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x47dd6d
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x1c]
push edx
push eax
inc ebp
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x47dcfe
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
je 0x47dd6d
call fcn.0043c770
mov esi, eax
mov ecx, dword [esp + 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_FindClose]
test eax, eax
jne 0x47dd87
test esi, esi
jne 0x47ddae
call fcn.0043c770
mov esi, eax
test esi, esi
jne 0x47ddae
mov edx, dword [esp + 0x56c]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x570]
mov dword [edx], eax
mov eax, esi
mov dword [ecx], ebp
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x550
ret
mov eax, dword [esp + 0x10]
test eax, eax
je 0x47ddc1
push ebp
push eax
push ebx
call fcn.0047ddd0
add esp, 0xc
mov eax, esi
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x550
ret

Function at 0x4887b0
Capabilities:
Get system information on windows

Disassembly:
sub esp, 0x24
lea eax, [esp]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [esp + 0x14]
cmp eax, 1
jbe 0x4887d3
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 1
add esp, 0x24
ret
mov eax, 1
add esp, 0x24
ret
Function at 0x49c7e0
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
sub esp, 8
push ebx
push esi
mov esi, dword [esp + 0x14]
mov eax, dword [esi + 0x148]
lea ebx, [esi + 0x148]
cmp eax, 0x270
jl 0x49c90d
cmp eax, 0x271
jne 0x49c846
lea eax, [esp + 0xc]
lea ecx, [esp + 0x14]
push eax
push ecx
push esi
call fcn.00474060
lea edx, [esp + 0x14]
lea eax, [esp + 0x20]
push edx
push 0
push 4
push eax
call fcn.0043c150
mov eax, dword [esp + 0x24]
add esp, 0x1c
test eax, eax
je 0x49c807
mov ecx, dword [esi + 0x14c]
push ebx
push ecx
push eax
call fcn.0049c950
add esp, 0xc
push ebp
push edi
xor ecx, ecx
mov edx, dword [esi + 0x14c]
mov edi, dword [edx + ecx*4]
mov eax, dword [edx + ecx*4 + 4]
xor eax, edi
mov ebp, dword [edx + ecx*4 + 0x634]
and eax, 0x7fffffff
xor eax, edi
mov edi, eax
and edi, 1
shr eax, 1
mov edi, dword [edi*4 + 0x4c5114]
xor edi, ebp
xor edi, eax
mov dword [edx + ecx*4], edi
inc ecx
cmp ecx, 0xe3
jl 0x49c84a
cmp ecx, 0x26f
jge 0x49c8ce
shl ecx, 2
mov edx, dword [esi + 0x14c]
add ecx, 4
mov edi, dword [ecx + edx - 4]
mov eax, dword [ecx + edx]
xor eax, edi
mov ebp, dword [ecx + edx - 0x390]
and eax, 0x7fffffff
xor eax, edi
mov edi, eax
and edi, 1
shr eax, 1
mov edi, dword [edi*4 + 0x4c5114]
xor edi, ebp
xor edi, eax
cmp ecx, 0x9bc
mov dword [ecx + edx - 4], edi
jl 0x49c890
mov ecx, dword [esi + 0x14c]
mov edx, dword [ecx + 0x9bc]
mov edi, dword [ecx]
mov eax, edx
xor eax, edi
mov edi, dword [ecx + 0x630]
and eax, 0x7fffffff
xor eax, edx
mov edx, eax
and edx, 1
shr eax, 1
mov edx, dword [edx*4 + 0x4c5114]
xor edx, edi
pop edi
xor edx, eax
pop ebp
mov dword [ecx + 0x9bc], edx
mov dword [ebx], 0
mov eax, dword [ebx]
mov ecx, dword [esi + 0x14c]
pop esi
mov ecx, dword [ecx + eax*4]
inc eax
mov edx, ecx
mov dword [ebx], eax
shr edx, 0xb
xor ecx, edx
pop ebx
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov edx, ecx
and edx, 0xffffdf8c
shl edx, 0xf
xor ecx, edx
mov eax, ecx
shr eax, 0x12
xor eax, ecx
add esp, 8
ret
Function at 0x4a18b0
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x4af8b6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc4
mov eax, dword [0x4c51e0]
push ebp
mov ebp, dword [esp + 0xd8]
mov dword [esp + 0xc4], eax
lea eax, [esp + 8]
push eax
lea ecx, [esp + 8]
push ecx
mov ecx, 0x4c61d0
mov dword [esp + 0x10], ebp
call fcn.004a0740
mov eax, dword [esp + 4]
cmp dword [0x4c61d4], eax
je 0x4a1919
cmp dword [eax + 0x28], 0x10
jb 0x4a1911
mov eax, dword [eax + 0x14]
jmp 0x4a1ad5
add eax, 0x14
jmp 0x4a1ad5
push esi
push edi
xor esi, esi
push esi
push 0x4b0308
lea ecx, [esp + 0x1c]
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], esi
mov byte [esp + 0x20], 0
call fcn.00402220
mov eax, dword [0x4c61cc]
cmp eax, esi
mov dword [esp + 0xd8], esi
push ebp
je 0x4a1965
call eax
mov ecx, eax
add esp, 4
lea esi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x4a1958
sub ecx, esi
push ecx
push eax
jmp 0x4a19c0
lea edx, [esp + 0x50]
xor eax, eax
push 0x4b3764
mov ecx, 0x2000
mov edi, 0x4c61e0
push edx
rep stosd dword es:[edi], eax
call fcn.004a292a
add esp, 0xc
push str.._misc_res_text.ini
push 0x8000
push 0x4c61e0
push 0x4b0308
lea eax, [esp + 0x5c]
push eax
push str.Text
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, 0x4c61e0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4a19b1
sub eax, edx
push eax
push 0x4c61e0
lea ecx, [esp + 0x1c]
call fcn.00402220
mov eax, dword [esp + 0x28]
test eax, eax
push ebx
mov ebx, 0x10
je 0x4a1a2f
cmp dword [esp + 0x30], ebx
mov ecx, dword [esp + 0x1c]
jae 0x4a19e5
lea ecx, [esp + 0x1c]
cmp byte [ecx], 0x22
jne 0x4a1a02
push 0
push 0x4b0308
push 1
push 0
lea ecx, [esp + 0x28]
call fcn.004a0b00
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4a1a2f
cmp dword [esp + 0x30], ebx
mov ecx, dword [esp + 0x1c]
jae 0x4a1a14
lea ecx, [esp + 0x1c]
cmp byte [ecx + eax - 1], 0x22
jne 0x4a1a2f
push 0
push 0x4b0308
push 1
dec eax
push eax
lea ecx, [esp + 0x28]
call fcn.004a0b00
cmp dword [esp + 0x30], ebx
mov edi, dword [esp + 0x1c]
jae 0x4a1a3d
lea edi, [esp + 0x1c]
lea ecx, [esp + 0x34]
push ecx
call fcn.004a1080
add esp, 4
lea edx, [esp + 0x10]
push edx
mov ecx, 0x4c61d0
mov byte [esp + 0xe0], 1
mov dword [esp + 0x14], ebp
call fcn.004a17b0
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x3c]
push ecx
mov ecx, eax
call fcn.00402130
lea edx, [esp + 0x10]
push edx
mov ecx, 0x4c61d0
mov dword [esp + 0x14], ebp
call fcn.004a17b0
cmp dword [eax + 0x18], ebx
jb 0x4a1a92
mov esi, dword [eax + 4]
jmp 0x4a1a95
lea esi, [eax + 4]
cmp dword [esp + 0x4c], ebx
jb 0x4a1aa8
mov eax, dword [esp + 0x38]
push eax
call fcn.004a206d
add esp, 4
cmp dword [esp + 0x30], ebx
mov dword [esp + 0x4c], 0xf
mov dword [esp + 0x48], 0
mov byte [esp + 0x38], 0
pop ebx
jb 0x4a1ad1
mov ecx, dword [esp + 0x18]
push ecx
call fcn.004a206d
add esp, 4
pop edi
mov eax, esi
pop esi
mov ecx, dword [esp + 0xc8]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0xc4]
pop ebp
call fcn.004a256f
add esp, 0xd0
ret
Function at 0x4a2ce2
Capabilities:
Accept command line arguments
Parse pe header
Terminate process

Disassembly:
push 0x60
push 0x4b3870
call fcn.004a658c
mov edi, 0x94
mov eax, edi
call fcn.004a3950
mov dword [ebp - 0x18], esp
mov esi, esp
mov dword [esi], edi
push esi
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov ecx, dword [esi + 0x10]
mov dword [0x4ce31c], ecx
mov eax, dword [esi + 4]
mov dword [0x4ce328], eax
mov edx, dword [esi + 8]
mov dword [0x4ce32c], edx
mov esi, dword [esi + 0xc]
and esi, 0x7fff
mov dword [0x4ce320], esi
cmp ecx, 2
je 0x4a2d42
or esi, 0x8000
mov dword [0x4ce320], esi
shl eax, 8
add eax, edx
mov dword [0x4ce324], eax
xor esi, esi
push esi
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call edi
cmp word [eax], 0x5a4d
jne 0x4a2d7d
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x4a2d7d
movzx eax, word [ecx + 0x18]
cmp eax, 0x10b
je 0x4a2d95
cmp eax, 0x20b
je 0x4a2d82
mov dword [ebp - 0x1c], esi
jmp 0x4a2da9
cmp dword [ecx + 0x84], 0xe
jbe 0x4a2d7d
xor eax, eax
cmp dword [ecx + 0xf8], esi
jmp 0x4a2da3
cmp dword [ecx + 0x74], 0xe
jbe 0x4a2d7d
xor eax, eax
cmp dword [ecx + 0xe8], esi
setne al
mov dword [ebp - 0x1c], eax
push 1
call fcn.004a9070
pop ecx
test eax, eax
jne 0x4a2dbd
push 0x1c
call fcn.004a2cbe
pop ecx
call fcn.004a7248
test eax, eax
jne 0x4a2dce
push 0x10
call fcn.004a2cbe
pop ecx
call fcn.004a8fce
mov dword [ebp - 4], esi
call fcn.004a8dd0
test eax, eax
jge 0x4a2de7
push 0x1b
call fcn.004a2c99
pop ecx
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov dword [0x4cfc54], eax
call fcn.004a8cae
mov dword [0x4ce30c], eax
call fcn.004a8c0c
test eax, eax
jge 0x4a2e0d
push 8
call fcn.004a2c99
pop ecx
call fcn.004a89d9
test eax, eax
jge 0x4a2e1e
push 9
call fcn.004a2c99
pop ecx
push 1
call fcn.004a330b
pop ecx
mov dword [ebp - 0x28], eax
cmp eax, esi
je 0x4a2e34
push eax
call fcn.004a2c99
pop ecx
mov dword [ebp - 0x44], esi
lea eax, [ebp - 0x70]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
call fcn.004a897c
mov dword [ebp - 0x20], eax
test byte [ebp - 0x44], 1
je 0x4a2e55
movzx eax, word [ebp - 0x40]
jmp 0x4a2e58
push 0xa
pop eax
push eax
push dword [ebp - 0x20]
push esi
push esi
call edi
push eax
call fcn.00403070
mov edi, eax
mov dword [ebp - 0x2c], edi
cmp dword [ebp - 0x1c], esi
jne 0x4a2e76
push edi
call fcn.004a3438
call fcn.004a345a
jmp 0x4a2ea8
or dword [ebp - 4], 0xffffffff
mov eax, edi
lea esp, [ebp - 0x7c]
call fcn.004a65c7
ret