joyce8/EMBER2024-capa huggingface dataset:
Function at 0x420f40
Capabilities:
Access peb ldr_data
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59e5ad
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0xa37210]
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], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [ebp - 4], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x38], 0
push 0xa
lea ecx, [esi + 0x48]
mov byte [ebp - 4], 1
call fcn.004010c0
lea ecx, [esi + 0x68]
mov byte [ebp - 4], 2
call fcn.0041f210
lea edi, [esi + 0x94]
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
lea ebx, [esi + 0xb8]
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0
lea eax, [esi + 0xdc]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
lea eax, [esi + 0x100]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
lea eax, [esi + 0x124]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov dword [esi + 0x148], 0
mov dword [esi + 0x14c], 0
mov dword [esi + 0x150], 0
mov dword [esi + 0x154], 0
mov dword [esi + 0x158], 0
mov dword [esi + 0x15c], 0
push 0x80
push 0x5ae22c
push 0x683508
mov byte [ebp - 4], 9
call fcn.0057ca30
add esp, 0xc
mov dword [0x683504], 0x32
cmp dword [0x6834fc], 0
jne 0x42114d
push 0x64
push 0x6834fc
call fcn.004213e0
mov eax, dword [0x6834fc]
add esp, 8
mov dword [0x683500], eax
push 0x1e
mov ecx, edi
mov dword [esi + 0x64], 0
call fcn.00422350
push 0x1e
mov ecx, ebx
call fcn.00422350
push 0x1e
lea ecx, [esi + 0xdc]
call fcn.00422350
push 0x1e
lea ecx, [esi + 0x100]
call fcn.00422350
push 3
lea ecx, [esi + 0x124]
call fcn.00422350
mov dword [esi + 0x16e], 0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x427e20
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59e3ab
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0xa37210]
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 + 8]
mov dword [esi], vtable.CSkillObjectTargetList.0
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
push 1
mov dword [ebp - 4], 0
call fcn.00422350
mov ecx, dword [ebp + 8]
movzx eax, word [ecx + 0xb7]
mov word [esi + 0x30], ax
movzx eax, word [ecx + 0xad]
mov word [esi + 0x32], ax
mov dword [esi + 0x2c], 0
movzx eax, word [ecx + 0x27]
mov word [esi + 0x34], ax
movzx eax, word [ecx + 0x29]
mov word [esi + 0x36], ax
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 0x42a980
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59ee5e
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0xa37210]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x10], ebx
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0
mov dword [ebp - 4], 0
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x30], 0
mov dword [ebx + 0x34], 0
mov dword [ebx + 0x38], 0
mov dword [ebx + 0x48], 0
mov dword [ebx + 0x4c], 0
mov dword [ebx + 0x50], 0
mov dword [ebx + 0x54], 0
mov dword [ebx + 0x58], 0
mov dword [ebx + 0x5c], 0
push 0x40
mov byte [ebp - 4], 2
call fcn.00422350
push 0x40
lea ecx, [ebx + 0x24]
call fcn.00422350
push 0x40
lea ecx, [ebx + 0x48]
call fcn.00422350
mov ecx, ebx
call fcn.0042a580
mov ecx, ebx
call fcn.0042a3c0
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x42d810
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59ef06
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
mov eax, dword [0xa37210]
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
mov eax, dword [0xa6a654]
mov eax, dword [eax + 0x125]
movzx eax, ax
push eax
lea eax, [ebp - 0x50]
push str.._Data_AiConfig__d.dat
push eax
call fcn.0057cecc
push 0x1b48
lea esi, [edi + 0xae]
push 0
push esi
call fcn.0057c870
push 0x5ab998
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.0057cd10
mov eax, dword [ebp - 0x54]
add esp, 0x24
test eax, eax
je 0x42d962
push eax
push 1
push 0x1b48
push esi
call fcn.0057d2a8
push dword [ebp - 0x54]
call fcn.0057cbc0
mov eax, dword [0xa58ce4]
add esp, 0x14
test eax, eax
jne 0x42d8e0
push 0x1c22
call fcn.0057b17d
add esp, 4
mov dword [ebp - 0x58], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x42d8d2
mov ecx, eax
call fcn.0042b520
jmp 0x42d8d4
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0xa58ce4], eax
imul eax, dword [eax + 0x12e], 0x64
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x5ab790]
cvtpd2ps xmm0, xmm0
movss dword [edi + 0xa2], xmm0
mov eax, dword [0xa58ce4]
test eax, eax
jne 0x42d93b
push 0x1c22
call fcn.0057b17d
add esp, 4
mov dword [ebp - 0x58], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x42d934
mov ecx, eax
call fcn.0042b520
jmp 0x42d936
xor eax, eax
mov dword [0xa58ce4], eax
imul eax, dword [eax + 0x132], 0x64
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x5ab790]
cvtpd2ps xmm0, xmm0
movss dword [edi + 0xaa], xmm0
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.0057b964
mov esp, ebp
pop ebp
ret

Function at 0x42d980
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [0xa37210]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0xa6a654]
push esi
mov esi, ecx
movzx eax, word [eax + 0x125]
push eax
lea eax, [ebp - 0x44]
push str.._Data_AiConfig__d.dat
push eax
call fcn.0057cecc
push 0x5af46c
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.0057cd10
mov eax, dword [ebp - 0x48]
add esp, 0x18
test eax, eax
je 0x42d9e9
push eax
push 1
lea eax, [esi + 0xae]
push 0x1b48
push eax
call fcn.0057d5bf
push dword [ebp - 0x48]
call fcn.0057cbc0
add esp, 0x14
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.0057b964
mov esp, ebp
pop ebp
ret

Function at 0x4363c0
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
cmp dword [ebp + 8], 1
push edi
mov edi, ecx
lea ecx, [edi + 0x8ee]
jne 0x436408
mov eax, dword [0xa690fc]
add eax, 0x1d4c0
push esi
mov dword [edi + 0x8a2], eax
call fcn.0044e860
push str.ANRaster.tga
lea ecx, [edi + 0x8ee]
call fcn.0044e790
pop esi
push dword [ebp + 8]
mov ecx, edi
call fcn.004a2940
pop edi
pop ebp
ret 4
call fcn.0044e860
push str.ANRaster.tga
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push dword [ebp + 8]
mov ecx, edi
call fcn.004a2940
pop edi
pop ebp
ret 4
Function at 0x436430
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
cmp dword [ebp + 8], 1
push edi
mov edi, ecx
lea ecx, [edi + 0x8ee]
jne 0x43647b
imul eax, dword [ebp + 0xc], 0x3e8
push esi
add eax, dword [0xa690fc]
mov dword [edi + 0x8a2], eax
call fcn.0044e860
push str.ANRaster.tga
lea ecx, [edi + 0x8ee]
call fcn.0044e790
pop esi
push dword [ebp + 8]
mov ecx, edi
call fcn.004a2940
pop edi
pop ebp
ret 8
call fcn.0044e860
push str.ANRaster.tga
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push dword [ebp + 8]
mov ecx, edi
call fcn.004a2940
pop edi
pop ebp
ret 8

Function at 0x43a900
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59f7f7
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0xa37210]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], ecx
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ebp - 4], 0
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x28], 0
mov dword [ecx + 0x2c], 0
mov dword [ecx + 0x30], 0
mov dword [ecx + 0x34], 0
mov dword [ecx + 0x38], 0
lea ebx, [ecx + 0x48]
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0
lea edi, [ecx + 0x6c]
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
lea esi, [ecx + 0x90]
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
push 0x65
mov byte [ebp - 4], 4
call fcn.00422350
mov ecx, dword [ebp - 0x10]
push 0x65
lea ecx, [ecx + 0x24]
call fcn.00422350
push 0x65
mov ecx, ebx
call fcn.00422350
push 0x65
mov ecx, edi
call fcn.00422350
push 0x65
mov ecx, esi
call fcn.00422350
mov eax, dword [ebp - 0x10]
mov dword [0xa58e84], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x446d00
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0xa37210]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 8]
lea eax, [ecx + 0x204bc]
xorps xmm0, xmm0
mov dword [ebp - 0x28], eax
movdqu xmmword [eax], xmm0
mov byte [eax + 0x10], 0
mov eax, dword [ecx + 0x204a6]
push edx
mov ecx, dword [ecx + eax*4 + 0x2047a]
call fcn.004a8b10
test eax, eax
je 0x446ecf
mov ecx, dword [eax]
cmp ecx, 0xffffffff
je 0x446d6d
cmp ecx, 0xffb9f145
je 0x446d6d
cmp ecx, 0xff01d1f7
je 0x446d6d
cmp ecx, 0xff90fcde
je 0x446d6d
cmp ecx, 0xffebc3ce
jne 0x446ecf
lea ecx, [eax + 4]
push esi
mov esi, ecx
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x446d76
push ebx
push edi
sub esi, edx
mov edi, 0
cmovne edi, ecx
xor ebx, ebx
cmp byte [edi], 0x5b
jne 0x446ecc
xor ecx, ecx
xor eax, eax
inc edi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x24], eax
test esi, esi
jle 0x446ecc
lea ebx, [ebx]
cmp byte [eax + edi], 0x5d
jne 0x446e18
lea eax, [ebx + 1]
mov dword [ebp - 0x20], 1
push eax
mov dword [ebp - 0x2c], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x18]
mov byte [ebp - 0x18], 0
push edi
push eax
movdqu xmmword [ebp - 0x17], xmm0
call fcn.00412970
push 5
push 0x5b0910
push edi
call fcn.0057e600
add esp, 0x18
test eax, eax
je 0x446e02
push 5
push 0x5b0918
push edi
call fcn.0057e600
add esp, 0xc
test eax, eax
jne 0x446e21
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x446e24
mov ebx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x1c], 1
jmp 0x446e19
inc ebx
inc eax
mov dword [ebp - 0x24], eax
cmp eax, esi
jl 0x446db0
mov eax, dword [ebp - 0x1c]
cmp ebx, 0x10
jg 0x446ecc
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x446ecc
test eax, eax
lea eax, [ebx + 2]
jne 0x446e42
lea eax, [ebx + 1]
push eax
push edi
mov edi, dword [ebp - 0x28]
push edi
call fcn.00412970
add esp, 0xc
push dword [0xa68690]
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x446ecc
call dword [sym.imp.USER32.dll_EmptyClipboard]
push 0x12
push 0x2002
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
test esi, esi
je 0x446e9f
push esi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push 0x12
push edi
push eax
mov byte [eax], 0
call fcn.00412970
add esp, 0xc
push esi
push 7
call dword [sym.imp.USER32.dll_SetClipboardData]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
call dword [sym.imp.USER32.dll_CloseClipboard]
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push edi
push 0x65e
mov ecx, 0xa59940
call fcn.004489d0
push eax
push 0x17
push 0xa59940
call fcn.004482c0
add esp, 0x10
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0057b964
mov esp, ebp
pop ebp
ret 4
Function at 0x44c560
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59d728
mov eax, dword fs:[0]
push eax
sub esp, 0x20
mov eax, dword [0xa37210]
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 ebx, ecx
cmp dword [ebx + 0x40], 0
je 0x44c685
cmp byte [ebx + 0x45], 0
je 0x44c685
mov eax, dword [ebx]
push 0xffffffffffffffff
call dword [eax + 0xc]
cmp eax, 0xffffffff
jne 0x44c5b4
xor al, al
jmp 0x44c687
mov ecx, 0xf
mov byte [ebp - 0x28], 0
xorps xmm0, xmm0
mov dword [ebp - 0x14], ecx
cmp ecx, 0x10
movq qword [ebp - 0x28], xmm0
lea eax, [ebp - 0x28]
mov dword [ebp - 0x18], 8
cmovae eax, dword [ebp - 0x28]
mov byte [eax + 8], 0
mov dword [ebp - 4], 0
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x2c]
mov ecx, dword [ebx + 0x40]
lea edi, [ebp - 0x28]
cmovae edi, dword [ebp - 0x28]
lea esi, [ebp - 0x28]
cmovae esi, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ecx]
add eax, edi
push eax
push esi
lea eax, [ebx + 0x48]
push eax
call dword [edx + 0x20]
sub eax, 0
je 0x44c61e
dec eax
je 0x44c622
sub eax, 2
je 0x44c66e
xor bl, bl
jmp 0x44c670
mov byte [ebx + 0x45], 0
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x28]
mov edx, dword [ebp - 0x28]
cmp ecx, 0x10
mov esi, dword [ebp - 0x2c]
cmovae eax, edx
sub esi, eax
je 0x44c654
push dword [ebx + 0x50]
cmp ecx, 0x10
lea eax, [ebp - 0x28]
push esi
cmovae eax, edx
push 1
push eax
call fcn.0057d5bf
add esp, 0x10
cmp esi, eax
jne 0x44c61a
cmp byte [ebx + 0x45], 0
je 0x44c66e
test esi, esi
jne 0x44c5e4
push esi
push 8
lea ecx, [ebp - 0x28]
call fcn.0044cde0
jmp 0x44c5e4
mov bl, 1
cmp dword [ebp - 0x14], 0x10
jb 0x44c681
push dword [ebp - 0x28]
call fcn.0057b1ce
add esp, 4
mov al, bl
jmp 0x44c687
mov al, 1
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.0057b964
mov esp, ebp
pop ebp
ret
Function at 0x44da20
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a01b8
mov eax, dword fs:[0]
push eax
sub esp, 0x28
mov eax, dword [0xa37210]
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 ebx, ecx
mov ecx, dword [ebp + 8]
cmp ecx, 0xffffffff
jne 0x44da5c
xor eax, eax
jmp 0x44dbec
mov eax, dword [ebx + 0x20]
mov edx, dword [eax]
test edx, edx
je 0x44da8a
mov esi, dword [ebx + 0x30]
mov edi, dword [esi]
lea eax, [edi + edx]
cmp edx, eax
jae 0x44da8a
lea eax, [edi - 1]
mov dword [esi], eax
mov ecx, dword [ebx + 0x20]
mov edx, dword [ecx]
lea eax, [edx + 1]
mov dword [ecx], eax
mov eax, dword [ebp + 8]
mov byte [edx], al
jmp 0x44dbec
cmp dword [ebx + 0x50], 0
jne 0x44da98
or eax, 0xffffffff
jmp 0x44dbec
mov esi, dword [ebx + 0xc]
lea eax, [ebx + 0x44]
cmp dword [esi], eax
jne 0x44dab9
mov ecx, dword [ebx + 0x38]
mov edx, dword [ebx + 0x3c]
mov dword [esi], ecx
sub edx, ecx
mov eax, dword [ebx + 0x1c]
mov dword [eax], ecx
mov eax, dword [ebx + 0x2c]
mov ecx, dword [ebp + 8]
mov dword [eax], edx
cmp dword [ebx + 0x40], 0
jne 0x44dade
push dword [ebx + 0x50]
movsx eax, cl
push eax
call fcn.0057eafe
or ecx, 0xffffffff
add esp, 8
cmp eax, ecx
cmovne ecx, dword [ebp + 8]
mov eax, ecx
jmp 0x44dbec
mov byte [ebp - 0x2c], cl
lea eax, [ebp - 0x28]
mov ecx, 0xf
mov byte [ebp - 0x28], 0
xorps xmm0, xmm0
mov dword [ebp - 0x14], ecx
cmp ecx, 0x10
movq qword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 8
cmovae eax, dword [ebp - 0x28]
mov byte [eax + 8], 0
mov dword [ebp - 4], 0
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x30]
mov esi, dword [ebx + 0x40]
lea ecx, [ebp - 0x28]
cmovae ecx, dword [ebp - 0x28]
lea edx, [ebp - 0x28]
cmovae edx, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x18]
mov edi, dword [esi]
add eax, ecx
push eax
push edx
lea eax, [ebp - 0x34]
mov ecx, esi
push eax
lea eax, [ebp - 0x2b]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebx + 0x48]
push eax
call dword [edi + 0x1c]
test eax, eax
js 0x44dbd6
cmp eax, 1
jg 0x44dbb6
mov edi, dword [ebp - 0x14]
lea eax, [ebp - 0x28]
mov ecx, dword [ebp - 0x28]
cmp edi, 0x10
mov esi, dword [ebp - 0x30]
cmovae eax, ecx
sub esi, eax
je 0x44db87
push dword [ebx + 0x50]
cmp edi, 0x10
lea eax, [ebp - 0x28]
push esi
cmovae eax, ecx
push 1
push eax
call fcn.0057d5bf
add esp, 0x10
cmp esi, eax
jne 0x44dbd6
lea eax, [ebp - 0x2c]
mov byte [ebx + 0x45], 1
cmp dword [ebp - 0x34], eax
jne 0x44dbb1
test esi, esi
jne 0x44db11
cmp dword [ebp - 0x18], 0x20
jae 0x44dbd6
push esi
push 8
lea ecx, [ebp - 0x28]
call fcn.0044cde0
jmp 0x44db11
mov ebx, dword [ebp + 8]
jmp 0x44dbd9
cmp eax, 3
jne 0x44dbd6
push dword [ebx + 0x50]
push dword [ebp - 0x2c]
call fcn.0044b300
or ecx, 0xffffffff
add esp, 8
test al, al
cmovne ecx, dword [ebp + 8]
mov ebx, ecx
jmp 0x44dbd9
or ebx, 0xffffffff
cmp dword [ebp - 0x14], 0x10
jb 0x44dbea
push dword [ebp - 0x28]
call fcn.0057b1ce
add esp, 4
mov eax, ebx
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.0057b964
mov esp, ebp
pop ebp
ret 4
Function at 0x45c910
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
cmp esi, 0x12
jb 0x45c930
push 0
push 0x6a
push str.DirectoryManager.cpp
call fcn.00412d00
add esp, 0xc
cmp esi, dword [edi + 0x50]
je 0x45c947
cmp esi, 0x11
je 0x45c947
push dword [edi + esi*4 + 8]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov dword [edi + 0x50], esi
pop edi
pop esi
pop ebp
ret 4

Function at 0x4618d0
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a0c47
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0xa37210]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x10], ebx
mov dword [ebx], vtable.CEffectManager.0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x18], 0
push 0x4614b0
push 0x461490
push 2
push 0xc
lea eax, [ebx + 0x34]
mov dword [ebp - 4], 0
push eax
call fcn.0057c900
mov dword [ebx + 0x4c], 0
mov dword [ebx + 0x50], 0
mov dword [ebx + 0x54], 0
mov dword [ebx + 0x58], 0
mov dword [ebx + 0x5c], 0
mov dword [ebx + 0x60], 0
push 0xa
lea ecx, [ebx + 0x70]
mov byte [ebp - 4], 2
call fcn.004010c0
push 0x20
lea ecx, [ebx + 4]
mov byte [ebp - 4], 3
call fcn.00422350
push 0x20
lea ecx, [ebx + 0x4c]
call fcn.00422350
push 0x190
call fcn.0057b17d
add esp, 4
test eax, eax
je 0x4619c4
mov dword [eax], vtable.CMemoryPoolTempl_class_CDamageNumber_.0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov byte [eax + 0x10], 0
jmp 0x4619c6
xor eax, eax
push 0x190
mov dword [ebx + 0x2c], eax
call fcn.0057b17d
add esp, 4
test eax, eax
je 0x4619f4
mov dword [eax], vtable.CMemoryPoolTempl_class_CEffect_.0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov byte [eax + 0x10], 0
jmp 0x4619f6
xor eax, eax
mov esi, dword [ebx + 0x2c]
push 0x80
mov dword [ebx + 0x28], eax
push str.CDamageNumber
lea eax, [esi + 0x10]
push eax
call fcn.0057ca30
lea edi, [esi + 4]
mov dword [esi + 0xc], 0x28
add esp, 0xc
cmp dword [edi], 0
jne 0x461a31
push 0x3c
push edi
call fcn.00462120
mov eax, dword [edi]
add esp, 8
mov dword [esi + 8], eax
mov esi, dword [ebx + 0x28]
push 0x80
push str.CEffect
lea eax, [esi + 0x10]
push eax
call fcn.0057ca30
lea edi, [esi + 4]
mov dword [esi + 0xc], 0x32
add esp, 0xc
cmp dword [edi], 0
jne 0x461a69
push 0x64
push edi
call fcn.00462250
mov eax, dword [edi]
add esp, 8
mov dword [esi + 8], eax
mov eax, ebx
mov dword [ebx + 0x30], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x46c3f0
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x420
mov eax, dword [0xa37210]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov dword [ebp - 0x408], eax
mov ebx, ecx
mov eax, dword [ebp + 0xc]
push esi
mov dword [ebp - 0x418], eax
xor esi, esi
mov eax, dword [ebp + 0x10]
push edi
mov dword [ebp - 0x41c], eax
xor edi, edi
mov eax, dword [ebp + 0x14]
push 0x400
mov dword [ebp - 0x420], eax
lea eax, [ebp - 0x404]
push edi
push eax
mov dword [ebp - 0x414], ebx
call fcn.0057c870
mov edx, dword [ebp - 0x408]
add esp, 0xc
mov dword [ebp - 0x40c], esi
lea ecx, [edx + 1]
lea ebx, [ebx]
mov al, byte [edx]
inc edx
test al, al
jne 0x46c460
sub edx, ecx
mov dword [ebp - 0x410], esi
xor ecx, ecx
cmp edx, 2
jl 0x46c4a6
lea ebx, [edx - 1]
lea esp, [esp]
mov eax, dword [ebp - 0x408]
movsx eax, byte [eax + ecx]
add esi, eax
mov eax, dword [ebp - 0x408]
movsx eax, byte [eax + ecx + 1]
add ecx, 2
add edi, eax
cmp ecx, ebx
jl 0x46c480
mov ebx, dword [ebp - 0x414]
cmp ecx, edx
jge 0x46c4ba
mov eax, dword [ebp - 0x408]
movsx eax, byte [eax + ecx]
mov dword [ebp - 0x410], eax
lea eax, [edi + esi]
xor edx, edx
add eax, dword [ebp - 0x410]
div dword [ebx + 0x48]
mov esi, edx
xor edx, edx
mov eax, esi
div dword [ebx + 0x24]
mov eax, dword [ebx + 0x28]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x46c4f7
jmp 0x46c4e0
cmp dword [eax], esi
je 0x46c4ed
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x46c4e0
jmp 0x46c4f7
cmp dword [eax + 4], 0
jne 0x46c59b
cmp dword [ebx + 0x20], 0xcd
jb 0x46c52a
push 0x33
mov ecx, ebx
call fcn.0046c5e0
lea eax, [ebp - 0x404]
push 0x5b2f60
push eax
call fcn.0057cecc
add esp, 8
lea eax, [ebp - 0x404]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [ebx]
mov edi, dword [ebp - 0x408]
push 0
push 0
mov ecx, dword [eax]
push 0
push edi
push eax
call dword [ecx + 0x18c]
mov dword [ebp - 0x40c], eax
test eax, eax
je 0x46c5a1
mov ecx, dword [ebx]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x114]
mov eax, dword [ebx]
push dword [ebp - 0x40c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10c]
mov ecx, ebx
call fcn.0046c3b0
test eax, eax
je 0x46c580
mov ecx, dword [ebp - 0x40c]
mov dword [eax + 8], ecx
mov dword [eax + 4], esi
push eax
lea ecx, [ebx + 4]
call fcn.004013d0
push esi
lea eax, [ebp - 0x40c]
push eax
lea ecx, [ebx + 0x20]
call fcn.00490e90
jmp 0x46c5a1
mov edi, dword [ebp - 0x408]
push dword [ebp - 0x420]
mov eax, dword [ebx]
push dword [ebp - 0x41c]
push dword [ebp - 0x418]
mov ecx, dword [eax]
push edi
push eax
call dword [ecx + 0x18c]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0057b964
mov esp, ebp
pop ebp
ret 0x10