joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4829d0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x5ff7e6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x140
push ebx
push ebp
push esi
push edi
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x30]
push ecx
lea ecx, [esp + 0x1c]
xor ebx, ebx
mov dword [esp + 0x24], str.danger
mov dword [esp + 0x28], 2
mov dword [esp + 0x1c], str.ending
mov dword [esp + 0x20], 3
call fcn.00422ce0
mov edi, eax
push str.level_class
lea ecx, [esp + 0x40]
mov dword [esp + 0x15c], ebx
call fcn.0041f290
lea ecx, [esp + 0x3c]
mov dword [esp + 0x3c], 0x60fcf0
mov dword [esp + 0x14c], ebx
call fcn.0047ff20
mov eax, dword [edi + 8]
cmp eax, dword [edi + 0xc]
lea esi, [edi + 4]
mov ebp, str.normal
mov ecx, str.lose
mov edx, 1
mov byte [esp + 0x158], 1
mov dword [esp + 0x14], 0x60fd30
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], 5
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
je 0x482aa4
cmp eax, ebx
je 0x482a9e
mov dword [eax], ecx
mov dword [eax + 4], edx
add dword [esi + 4], 8
jmp 0x482aba
push 1
push 1
lea edx, [esp + 0x1b]
push edx
lea ecx, [esp + 0x30]
push ecx
push eax
mov ecx, esi
call fcn.004224e0
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
je 0x482ad5
cmp eax, ebx
je 0x482acf
mov edx, dword [esp + 0x20]
mov dword [eax], ebp
mov dword [eax + 4], edx
add dword [esi + 4], 8
jmp 0x482aeb
push 1
push 1
lea ecx, [esp + 0x1b]
push ecx
lea edx, [esp + 0x28]
push edx
push eax
mov ecx, esi
call fcn.004224e0
mov eax, dword [esi + 4]
cmp eax, dword [esi + 8]
je 0x482b0a
cmp eax, ebx
je 0x482b04
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [eax], ecx
mov dword [eax + 4], edx
add dword [esi + 4], 8
jmp 0x482b20
push 1
push 1
lea ecx, [esp + 0x1b]
push ecx
lea edx, [esp + 0x20]
push edx
push eax
mov ecx, esi
call fcn.004224e0
lea eax, [esp + 0x3c]
push eax
xor eax, eax
push eax
mov eax, fcn.0047f060
push eax
push str.is_bonus
call fcn.00482810
lea ecx, [esp + 0x4c]
push ecx
xor eax, eax
push eax
mov eax, fcn.00436b10
push eax
push str.get_state
call fcn.004828f0
lea edx, [esp + 0x5c]
push edx
xor eax, eax
push eax
mov eax, fcn.0047f1a0
push eax
push str.get_number
call fcn.004828f0
lea eax, [esp + 0x6c]
push eax
xor eax, eax
push eax
mov eax, 0x47eff0
push eax
push str.is_winning
call fcn.00482810
mov eax, dword [esp + 0x1a0]
add esp, 0x40
lea ecx, [esp + 0x3c]
push eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebx
call fcn.0041e090
add esp, 4
push edi
lea ecx, [esp + 0x18]
call fcn.004423f0
push eax
lea ecx, [esp + 0x28]
call fcn.0041d840
lea ecx, [esp + 0x3c]
mov byte [esp + 0x158], bl
call fcn.00481890
lea ecx, [esp + 0x30]
mov dword [esp + 0x2c], 0x60cf88
call fcn.00422480
mov ecx, dword [esp + 0x150]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x14c
ret
Function at 0x486a40
Capabilities:
Get common file path
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5ffde0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x40c
mov eax, dword [0x65480c]
push ebx
push esi
push edi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], esp
lea eax, [ebp - 0x414]
push eax
push 0x400
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea edi, [ebp - 0x414]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x486a85
mov ecx, dword [str.game.ini]
mov edx, dword [0x60fedc]
mov ax, word [0x60fee0]
mov dword [edi], ecx
lea ecx, [ebp - 0x414]
push ecx
push 0
push 0x60fed4
mov dword [edi + 4], edx
push str.debug
mov word [edi + 8], ax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
je 0x486adc
push 0x654880
push 0x60d52c
push str.output.txt
call fcn.005e23cc
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.005e0b91
mov ecx, dword [0x655ca8]
add esp, 4
test ecx, ecx
mov dword [ebp - 4], 0
jne 0x486b27
mov al, byte [0x655cac]
test al, al
je 0x486b0a
call fcn.0040c870
call fcn.00411ea0
push 0x411f00
mov dword [0x655ca8], eax
call fcn.005e0ca0
mov ecx, dword [0x655ca8]
add esp, 4
mov edx, dword [ecx]
call dword [edx + 0xb4]
mov ecx, dword [0x655ca8]
test ecx, ecx
jne 0x486b64
mov al, byte [0x655cac]
test al, al
je 0x486b47
call fcn.0040c870
call fcn.00411ea0
push 0x411f00
mov dword [0x655ca8], eax
call fcn.005e0ca0
mov ecx, dword [0x655ca8]
add esp, 4
mov eax, dword [ecx]
call dword [eax + 0xb0]
mov eax, dword [0x655ca8]
test eax, eax
jne 0x486b9a
mov al, byte [0x655cac]
test al, al
je 0x486b83
call fcn.0040c870
call fcn.00411ea0
push 0x411f00
mov dword [0x655ca8], eax
call fcn.005e0ca0
add esp, 4
mov ecx, dword [0x655ca8]
call fcn.00417ef0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x14]
xor eax, eax
call fcn.005e149c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
Function at 0x48d9b0
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x600a1b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
mov eax, dword [esp + 0x20]
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov dword [esp + 0xc], esi
mov dword [esi], method.std::basic_streambuf_char__struct_std::char_traits_char__.virtual_16
mov dword [esi + 4], eax
mov byte [esi + 8], bl
lea ecx, [esp + 0x30]
push ecx
push str.map_window
lea ecx, [esp + 0x18]
mov dword [esp + 0x2c], ebx
call fcn.00402f20
lea edx, [esp + 0x10]
lea ecx, [esi + 0xc]
push edx
mov byte [esp + 0x28], 1
call fcn.00494380
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
sub eax, ecx
cmp ecx, ebx
mov byte [esp + 0x24], 3
mov edi, ecx
je 0x48da5d
cmp eax, 0x80
jbe 0x48da33
push ecx
call fcn.005e05ca
add esp, 4
jmp 0x48da5d
push ebp
lea ebp, [eax - 1]
shr ebp, 3
push 0x655bd8
lea ebp, [ebp*4 + 0x655be0]
call fcn.00401450
mov eax, dword [ebp]
mov dword [edi], eax
add esp, 4
mov dword [ebp], edi
mov dword [0x655bd8], ebx
pop ebp
mov cl, byte [esp + 0x30]
mov byte [esi + 0x48], cl
lea ecx, [esi + 0x54]
mov dword [esi], 0x6103b0
mov dword [esi + 0xc], 0x610844
mov dword [esi + 0x10], 0x60f21c
mov dword [esi + 0x14], 0x6107f0
mov dword [esi + 0x18], 0x60eaa4
mov dword [esi + 0x1c], 0x610394
mov dword [esi + 0x44], 0xffffffff
mov byte [esi + 0x49], bl
mov dword [esi + 0x4c], ebx
mov dword [esi + 0x50], ebx
call fcn.00402680
mov ecx, dword [esp + 0x1c]
mov dword [esi + 0x60], ebx
mov dword [esi + 0x64], ebx
mov dword [esi + 0x68], ebx
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x70], ebx
mov dword [esi + 0x74], ebx
mov dword [esi + 0x78], ebx
mov dword [esi + 0x7c], ebx
mov dword [esi + 0x80], ebx
pop edi
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x1c
ret 8
Function at 0x48d9cd
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x600a1b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
mov eax, dword [esp + 0x20]
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov dword [esp + 0xc], esi
mov dword [esi], method.std::basic_streambuf_char__struct_std::char_traits_char__.virtual_16
mov dword [esi + 4], eax
mov byte [esi + 8], bl
lea ecx, [esp + 0x30]
push ecx
push str.map_window
lea ecx, [esp + 0x18]
mov dword [esp + 0x2c], ebx
call fcn.00402f20
lea edx, [esp + 0x10]
lea ecx, [esi + 0xc]
push edx
mov byte [esp + 0x28], 1
call fcn.00494380
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
sub eax, ecx
cmp ecx, ebx
mov byte [esp + 0x24], 3
mov edi, ecx
je 0x48da5d
cmp eax, 0x80
jbe 0x48da33
push ecx
call fcn.005e05ca
add esp, 4
jmp 0x48da5d
push ebp
lea ebp, [eax - 1]
shr ebp, 3
push 0x655bd8
lea ebp, [ebp*4 + 0x655be0]
call fcn.00401450
mov eax, dword [ebp]
mov dword [edi], eax
add esp, 4
mov dword [ebp], edi
mov dword [0x655bd8], ebx
pop ebp
mov cl, byte [esp + 0x30]
mov byte [esi + 0x48], cl
lea ecx, [esi + 0x54]
mov dword [esi], 0x6103b0
mov dword [esi + 0xc], 0x610844
mov dword [esi + 0x10], 0x60f21c
mov dword [esi + 0x14], 0x6107f0
mov dword [esi + 0x18], 0x60eaa4
mov dword [esi + 0x1c], 0x610394
mov dword [esi + 0x44], 0xffffffff
mov byte [esi + 0x49], bl
mov dword [esi + 0x4c], ebx
mov dword [esi + 0x50], ebx
call fcn.00402680
mov ecx, dword [esp + 0x1c]
mov dword [esi + 0x60], ebx
mov dword [esi + 0x64], ebx
mov dword [esi + 0x68], ebx
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x70], ebx
mov dword [esi + 0x74], ebx
mov dword [esi + 0x78], ebx
mov dword [esi + 0x7c], ebx
mov dword [esi + 0x80], ebx
pop edi
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x1c
ret 8
Function at 0x491cc0
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x600f22
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x14
mov eax, dword [esp + 0x28]
push esi
mov esi, ecx
mov ecx, dword [esp + 0x28]
push eax
push ecx
mov ecx, esi
mov dword [esp + 0xc], esi
call fcn.0050c9b0
push 0
push 0
push 0
lea ecx, [esi + 0x100]
mov dword [esp + 0x2c], 0
mov dword [esi], 0x6105f0
call fcn.00470260
push 0
push 0
push 0
lea ecx, [esi + 0x140]
mov byte [esp + 0x2c], 1
call fcn.00470260
push 0
push 0
push 0
lea ecx, [esi + 0x180]
mov byte [esp + 0x2c], 2
call fcn.00470260
mov dl, byte [esp + 0x30]
push 0xff
push 0xff
push 0xff
push 0xff
lea ecx, [esp + 0x18]
mov byte [esp + 0x30], 3
mov dword [esi + 0x1c0], 0
mov dword [esi + 0x1c4], 0x3e8
mov byte [esi + 0x1c8], 0
mov byte [esi + 0x1c9], dl
call fcn.005075e0
push eax
push 2
mov ecx, esi
call fcn.0050d570
mov ecx, dword [esp + 0x18]
mov eax, esi
pop esi
mov dword fs:[0], ecx
add esp, 0x20
ret 0xc

Function at 0x494af0
Capabilities:
Set registry value

Disassembly:
sub esp, 0xc
push esi
lea eax, [esp + 0xc]
push eax
mov esi, ecx
lea ecx, [esp + 8]
push ecx
push 0
push 0xf003f
push 0
push 0x6109c4
push 0
push str.SoftwareMicrosoftExplorer
push connect
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x494b36
push str.__Something_wrong_with_registry
call fcn.005e22a7
add esp, 4
pop esi
add esp, 0xc
ret
mov edx, dword [esi]
mov dword [esp + 8], edx
fld dword [esp + 8]
fdiv dword [0x60c744]
call fcn.005e0b1c
mov ecx, dword [esp + 4]
push 4
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc]
push eax
push 4
push 0
push str.AQTime
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov edx, dword [esp + 4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
add esp, 0xc
ret

Function at 0x494b90
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x10
push ebx
push esi
lea eax, [esp + 0xc]
push eax
mov esi, ecx
lea ecx, [esp + 0xc]
push ecx
push 0
push 0xf003f
push 0
push 0x6109c4
push 0
push str.SoftwareMicrosoftExplorer
push connect
xor bl, bl
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x494bda
push str.__Something_wrong_with_registry
call fcn.005e22a7
add esp, 4
pop esi
pop ebx
add esp, 0x10
ret
cmp dword [esp + 0xc], 2
je 0x494be5
mov bl, 1
jmp 0x494c35
mov ecx, dword [esp + 8]
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x18]
push eax
push 0
push 0
push str.AQTime
push ecx
mov dword [esp + 0x28], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
je 0x494c13
mov bl, 1
jmp 0x494c35
mov edx, dword [esp + 0x14]
fild dword [esp + 0x14]
test edx, edx
jge 0x494c25
fadd dword [0x60de00]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fmul dword [0x60c744]
fstp dword [esi]
mov eax, dword [esp + 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test bl, bl
je 0x494c4b
mov ecx, esi
call fcn.00494af0
pop esi
pop ebx
add esp, 0x10
ret
Function at 0x4973e0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x601318
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x58
mov eax, dword [0x65480c]
mov dword [esp + 0x54], eax
push ebx
xor ebx, ebx
mov ecx, 2
mov eax, 0x650040
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ecx
mov byte [esp + 0x54], bl
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], ecx
mov cx, word [esp + 0x70]
mov eax, dword [esp + 0x70]
mov word [esp + 8], cx
mov edx, dword [esp + 8]
push edx
push eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x18], 0x43bf80
call fcn.00495e10
mov ecx, dword [esp + 0x6c]
lea eax, [esp + 0xc]
push eax
push ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x14], 0x4972a0
call fcn.004200c0
mov eax, dword [esp + 0x18]
cmp eax, ebx
mov dword [esp + 0x64], 0xffffffff
pop ebx
je 0x497493
mov edx, dword [esp + 0x18]
push 1
push edx
call eax
add esp, 8
mov ecx, dword [esp + 0x58]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x54]
call fcn.005e149c
add esp, 0x64
ret

Function at 0x4974b0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x601318
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x58
mov eax, dword [0x65480c]
mov dword [esp + 0x54], eax
push ebx
xor ebx, ebx
mov eax, 2
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], eax
mov byte [esp + 0x54], bl
mov dword [esp + 0x2c], 0x64fbc8
mov dword [esp + 0x30], 0x650040
mov dword [esp + 0x14], eax
mov cx, word [esp + 0x70]
mov eax, dword [esp + 0x70]
mov word [esp + 8], cx
mov edx, dword [esp + 8]
push edx
push eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x18], 0x43bf80
call fcn.00495ea0
mov ecx, dword [esp + 0x6c]
lea eax, [esp + 0xc]
push eax
push ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x14], 0x4972c0
call fcn.004200c0
mov eax, dword [esp + 0x18]
cmp eax, ebx
mov dword [esp + 0x64], 0xffffffff
pop ebx
je 0x497566
mov edx, dword [esp + 0x18]
push 1
push edx
call eax
add esp, 8
mov ecx, dword [esp + 0x58]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x54]
call fcn.005e149c
add esp, 0x64
ret
Function at 0x4979c7
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x601358
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
push esi
mov esi, ecx
mov ecx, dword [esp + 0x24]
xor eax, eax
push edi
mov dword [esp + 0xc], esi
mov byte [esi + 4], al
mov dword [esi + 8], ecx
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov edi, dword [esp + 0x20]
mov dword [esi], 0x610bac
mov ecx, edi
mov ebx, dword [ecx]
lea edx, [esi + 0x14]
mov dword [edx], ebx
mov ebx, dword [ecx + 4]
mov dword [edx + 4], ebx
mov ebx, dword [ecx + 8]
push eax
mov dword [edx + 8], ebx
mov ecx, dword [ecx + 0xc]
push eax
push eax
mov dword [edx + 0xc], ecx
lea ebx, [esi + 0x24]
push eax
mov ecx, ebx
mov dword [esp + 0x28], eax
call fcn.005075e0
mov eax, edi
mov ecx, dword [eax]
lea edx, [esi + 0x34]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 8]
mov dword [edx + 8], ecx
mov eax, dword [eax + 0xc]
mov dword [edx + 0xc], eax
mov edx, dword [edi + 0xc]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0xc]
sub ecx, edx
mov dword [esi + 0x30], ecx
mov edx, dword [eax]
sub edx, dword [edi]
mov dword [ebx], edx
mov ecx, dword [eax + 4]
sub ecx, dword [edi + 4]
mov dword [esi + 0x28], ecx
mov edx, dword [eax + 8]
mov eax, dword [edi + 8]
mov ecx, dword [esp + 0x10]
sub edx, eax
pop edi
mov dword [esi + 0x2c], edx
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x10
ret 0xc

Function at 0x499c60
Capabilities:
Access peb ldr_data
Get process heap flags

Disassembly:
push 0xffffffffffffffff
push 0x601509
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
push ebp
push esi
mov esi, ecx
push edi
xor ebx, ebx
push 0x24
mov dword [esp + 0x14], esi
mov dword [esi], ebx
call fcn.00401cc0
mov dword [esi], eax
mov dword [esi + 4], ebx
mov byte [eax], bl
mov eax, dword [esi]
mov dword [eax + 4], ebx
mov eax, dword [esi]
mov dword [eax + 8], eax
mov eax, dword [esi]
add esp, 4
mov dword [eax + 0xc], eax
lea edi, [esi + 0xc]
mov dword [edi], ebx
mov dword [edi + 4], ebx
mov dword [esp + 0x1c], ebx
mov dword [edi + 8], ebx
mov ecx, dword [esp + 0x24]
lea ebp, [esi + 0x18]
push ecx
mov ecx, ebp
mov byte [esp + 0x20], 1
call fcn.00404e60
mov edx, dword [esp + 0x28]
push edx
lea ecx, [esi + 0x24]
mov byte [esp + 0x20], 2
call fcn.00404e60
mov eax, dword [esp + 0x2c]
push 6
mov ecx, edi
mov byte [esp + 0x20], 3
mov dword [esi + 0x30], eax
call fcn.00498c90
cmp byte [esp + 0x30], bl
je 0x499d0d
mov ecx, dword [esi + 0x30]
cmp ecx, ebx
je 0x499d0d
mov eax, dword [ebp]
lea edx, [esp + 0x30]
push edx
push eax
mov dword [esp + 0x38], esi
call fcn.004379f0
mov ecx, dword [esp + 0x14]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x10
ret 0x10
Function at 0x49d880
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x601738
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x58
mov eax, dword [0x65480c]
mov dword [esp + 0x54], eax
push ebx
xor ebx, ebx
mov eax, 2
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], eax
mov byte [esp + 0x54], bl
mov dword [esp + 0x2c], 0x64fbc8
mov dword [esp + 0x30], 0x650474
mov dword [esp + 0x14], eax
mov cx, word [esp + 0x70]
mov eax, dword [esp + 0x70]
mov word [esp + 8], cx
mov edx, dword [esp + 8]
push edx
push eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x18], 0x4989f0
call fcn.00499bd0
mov ecx, dword [esp + 0x6c]
lea eax, [esp + 0xc]
push eax
push ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x14], 0x49b4a0
call fcn.004200c0
mov eax, dword [esp + 0x18]
cmp eax, ebx
mov dword [esp + 0x64], 0xffffffff
pop ebx
je 0x49d936
mov edx, dword [esp + 0x18]
push 1
push edx
call eax
add esp, 8
mov ecx, dword [esp + 0x58]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x54]
call fcn.005e149c
add esp, 0x64
ret

Function at 0x49fa30
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x601888
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x58
mov eax, dword [0x65480c]
mov dword [esp + 0x54], eax
push ebx
xor ebx, ebx
mov ecx, 3
mov eax, 0x64fff0
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ecx
mov byte [esp + 0x54], bl
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0x64fbc8
mov dword [esp + 0x14], ecx
mov cx, word [esp + 0x70]
mov eax, dword [esp + 0x70]
mov word [esp + 8], cx
mov edx, dword [esp + 8]
push edx
push eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x18], 0x49e500
call fcn.0049f9a0
mov ecx, dword [esp + 0x6c]
lea eax, [esp + 0xc]
push eax
push ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x14], 0x49f780
call fcn.004200c0
mov eax, dword [esp + 0x18]
cmp eax, ebx
mov dword [esp + 0x64], 0xffffffff
pop ebx
je 0x49faeb
mov edx, dword [esp + 0x18]
push 1
push edx
call eax
add esp, 8
mov ecx, dword [esp + 0x58]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x54]
call fcn.005e149c
add esp, 0x64
ret

Function at 0x49fca0
Capabilities:
Access peb ldr_data
Get process heap flags

Disassembly:
push 0xffffffffffffffff
push 0x6018ee
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push esi
push edi
mov edi, dword [esp + 0x1c]
mov esi, ecx
push edi
mov dword [esp + 0xc], esi
call fcn.0049fbd0
lea eax, [edi + 0xc]
push eax
lea ecx, [esi + 0xc]
mov dword [esp + 0x18], 0
call fcn.00498bb0
lea ecx, [edi + 0x18]
push ecx
lea ecx, [esi + 0x18]
mov byte [esp + 0x18], 1
call fcn.00404e60
lea edx, [edi + 0x24]
push edx
lea ecx, [esi + 0x24]
mov byte [esp + 0x18], 2
call fcn.00404e60
mov eax, dword [edi + 0x30]
mov ecx, dword [esp + 0xc]
mov dword [esi + 0x30], eax
pop edi
mov eax, esi
pop esi
mov dword fs:[0], ecx
add esp, 0x10
ret 4
Function at 0x4a02f0
Capabilities:
Access peb ldr_data
Get process heap force flags

Disassembly:
push 0xffffffffffffffff
push 0x6019f4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
push ebx
push ebp
push esi
mov esi, ecx
push edi
xor ebx, ebx
push 0x58
mov dword [esp + 0x14], esi
mov dword [esi], ebx
call fcn.00401cc0
mov dword [esi], eax
mov dword [esi + 4], ebx
mov byte [eax], bl
mov eax, dword [esi]
mov dword [eax + 4], ebx
mov eax, dword [esi]
mov dword [eax + 8], eax
mov eax, dword [esi]
mov dword [eax + 0xc], eax
push 0x14
mov dword [esp + 0x30], ebx
mov dword [esi + 0xc], ebx
call fcn.00401cc0
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], ebx
mov byte [eax], bl
mov ecx, dword [esi + 0xc]
mov dword [ecx + 4], ebx
mov eax, dword [esi + 0xc]
mov dword [eax + 8], eax
mov eax, dword [esi + 0xc]
add esp, 8
mov dword [eax + 0xc], eax
lea edx, [esp + 0x30]
push edx
push 0x60c437
lea ecx, [esp + 0x1c]
mov byte [esp + 0x30], 1
call fcn.00402f20
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x14]
push eax
lea edi, [esi + 0x18]
push ecx
mov ecx, edi
mov byte [esp + 0x30], 2
call fcn.00478450
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
sub eax, ecx
cmp ecx, ebx
mov byte [esp + 0x28], 4
mov ebp, ecx
je 0x4a03e0
cmp eax, 0x80
jbe 0x4a03b3
push ecx
call fcn.005e05ca
jmp 0x4a03dd
dec eax
shr eax, 3
lea edx, [eax*4 + 0x655be0]
push 0x655bd8
mov dword [esp + 0x34], edx
call fcn.00401450
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [ebp], ecx
mov dword [eax], ebp
mov dword [0x655bd8], ebx
add esp, 4
mov edx, dword [esp + 0x34]
push edx
lea ecx, [esi + 0x3c]
call fcn.00404e60
mov eax, dword [esp + 0x38]
push eax
lea ecx, [esi + 0x48]
mov byte [esp + 0x2c], 5
call fcn.00404e60
mov ecx, dword [esi + 0x20]
push ecx
mov byte [esp + 0x2c], 6
call fcn.004a01e0
mov edx, dword [esi + 0x20]
push edx
call fcn.0049de70
mov eax, dword [esi + 0x20]
push eax
call fcn.00471fd0
add esp, 0xc
lea ecx, [esp + 0x30]
push ecx
push str.play_sound
lea ecx, [esp + 0x1c]
call fcn.00402f20
push 0x49f280
lea edx, [esp + 0x18]
push edx
mov ecx, edi
mov byte [esp + 0x30], 7
call fcn.00479aa0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
sub eax, ecx
cmp ecx, ebx
mov ebp, ecx
je 0x4a0491
cmp eax, 0x80
jbe 0x4a046a
push ecx
call fcn.005e05ca
jmp 0x4a048e
lea edi, [eax - 1]
shr edi, 3
push 0x655bd8
lea edi, [edi*4 + 0x655be0]
call fcn.00401450
mov eax, dword [edi]
mov dword [ebp], eax
mov dword [edi], ebp
mov dword [0x655bd8], ebx
add esp, 4
mov ecx, dword [esp + 0x20]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1c
ret 0xc