joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4025e0
Capabilities:
Print debug messages

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov dword [esp + 0x10], edi
call fcn.00402580
mov eax, dword [esp + 0x1c]
push 0x4690c0
push eax
call fcn.0042674e
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x402621
push str.Unable_to_open_input_file_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
push ebx
push 4
lea ecx, [esp + 0x1c]
push 1
push ecx
call fcn.00426761
push 4
lea edx, [esp + 0x28]
push str.HPDT
push edx
call fcn.00426d80
add esp, 0x1c
test eax, eax
je 0x40265f
push str.Unrecognised_Resource_Package_file_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
push ebx
lea esi, [edi + 0x100]
push 1
push 4
push esi
call fcn.00426761
mov eax, dword [esi]
add esp, 0x10
test eax, eax
jl 0x402721
cmp eax, 0xff
jge 0x402721
xor ebp, ebp
test eax, eax
jle 0x4026b0
add edi, 0x500
push ebx
push 1
push 4
push edi
call fcn.00426761
mov eax, dword [esi]
add esp, 0x10
inc ebp
add edi, 4
cmp ebp, eax
jl 0x402694
mov edi, dword [esp + 0x10]
mov eax, dword [esi]
xor ebp, ebp
test eax, eax
jle 0x4026ec
add edi, 0x500
mov eax, dword [edi]
push eax
call fcn.00426ae8
add esp, 4
mov dword [edi - 0x3fc], eax
test eax, eax
je 0x402701
mov ecx, dword [edi]
push ebx
push ecx
push 1
push eax
call fcn.00426761
mov eax, dword [esi]
add esp, 0x10
inc ebp
add edi, 4
cmp ebp, eax
jl 0x4026be
push ebx
call fcn.004265ce
add esp, 4
mov al, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
mov ecx, dword [esp + 0x10]
call fcn.00402580
push str.Couldnt_allocate_memory_for_file_data_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
mov ecx, edi
call fcn.00402580
push str.Invalid_number_of_files_in_package_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 8
ret 4
Function at 0x402820
Capabilities:
Set registry value

Disassembly:
sub esp, 0x10c
lea eax, [esp + 8]
push edi
mov edi, ecx
lea ecx, [esp + 8]
push eax
push ecx
push 0
push 0xf003f
push 0
push 0
push 0
push str.SoftwareAdamDawesHighwayPursuit
push reloc.DSOUND.dll_DirectSoundCreate
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x402a2a
mov ecx, dword [esp + 8]
mov edx, dword [edi]
push ebx
push ebp
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
lea eax, [esp + 0x10]
push 4
push eax
push 4
push 0
push str.ScreenMode
push ecx
mov dword [esp + 0x28], edx
call esi
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 4]
lea eax, [esp + 0x10]
push 4
push eax
push 4
push 0
push str.Filtering
push ecx
mov dword [esp + 0x28], edx
call esi
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 8]
lea eax, [esp + 0x10]
push 4
push eax
push 4
push 0
push str.AntiAliasing
push ecx
mov dword [esp + 0x28], edx
call esi
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0xc]
lea eax, [esp + 0x10]
push 4
push eax
push 4
push 0
push str.Brightness
push ecx
mov dword [esp + 0x28], edx
call esi
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x10]
lea eax, [esp + 0x10]
push 4
push eax
push 4
push 0
push str.VertexMode
push ecx
mov dword [esp + 0x28], edx
call esi
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x14]
lea eax, [esp + 0x10]
push 4
push eax
push 4
push 0
push str.Music
push ecx
mov dword [esp + 0x28], edx
call esi
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x18]
lea eax, [esp + 0x10]
push 4
push eax
push 4
push 0
push str.SoundFX
push ecx
mov dword [esp + 0x28], edx
call esi
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x1c]
lea eax, [esp + 0x10]
push 4
push eax
push 4
push 0
push str.Speech
push ecx
mov dword [esp + 0x28], edx
call esi
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push 4
push eax
xor edx, edx
push 4
mov dl, byte [edi + 0x20]
push 0
push str.Subtitles
push ecx
mov dword [esp + 0x28], edx
call esi
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x24]
lea eax, [esp + 0x10]
push 4
push eax
push 4
push 0
push str.Controller
push ecx
mov dword [esp + 0x28], edx
call esi
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x68]
lea eax, [esp + 0x10]
push 4
push eax
push 4
push 0
push str.Sens
push ecx
mov dword [esp + 0x28], edx
call esi
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x6c]
lea eax, [esp + 0x10]
push 4
push eax
push 4
push 0
push str.DeadZone
push ecx
mov dword [esp + 0x28], edx
call esi
xor ebx, ebx
lea ebp, [edi + 0x28]
push ebx
lea edx, [esp + 0x20]
push str.Controls_d
push edx
call fcn.00426959
mov ecx, dword [esp + 0x20]
add esp, 0xc
lea eax, [esp + 0x1c]
push 0x20
push ebp
push 3
push 0
push eax
push ecx
call esi
inc ebx
add ebp, 0x20
cmp ebx, 2
jl 0x4029cf
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x70]
lea eax, [esp + 0x10]
push 4
push eax
push 4
push 0
push str.ScoreUploads
push ecx
mov dword [esp + 0x28], edx
call esi
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
pop ebp
pop ebx
pop edi
add esp, 0x10c
ret
Function at 0x402ef0
Capabilities:
Print debug messages

Disassembly:
sub esp, 0x28
push esi
mov esi, ecx
push edi
mov ecx, 9
xor eax, eax
lea edi, [esp + 0xc]
lea edx, [esp + 8]
push 0
rep stosd dword es:[edi], eax
mov eax, dword [esi]
push edx
lea edx, [esp + 0x14]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0x24
mov dword [esp + 0x18], 0x11
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0xc]
test eax, eax
jge 0x402f47
push str.Couldnt_create_primary_sound_buffer_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
xor al, al
pop esi
add esp, 0x28
ret
mov eax, dword [esp + 8]
add esi, 4
push esi
push 0x4668b4
mov ecx, dword [eax]
push eax
call dword [ecx]
test eax, eax
mov eax, dword [esp + 8]
jge 0x402f7a
mov edx, dword [eax]
push eax
call dword [edx + 8]
push str.Couldnt_obtain_3d_listener_interface_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
xor al, al
pop esi
add esp, 0x28
ret
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esi]
push 1
push 0xbf800000
push 0
mov edx, dword [eax]
push 0
push 0
push 0x3f800000
push 0
push eax
call dword [edx + 0x34]
mov eax, dword [esi]
push 1
push 0x3dcccccd
push eax
mov ecx, dword [eax]
call dword [ecx + 0x3c]
mov esi, dword [esi]
push 1
push 0x40000000
push esi
mov edx, dword [esi]
call dword [edx + 0x30]
pop edi
mov al, 1
pop esi
add esp, 0x28
ret
Function at 0x403020
Capabilities:
Print debug messages

Disassembly:
sub esp, 0x18
push ebx
push ebp
push esi
mov ebp, ecx
or esi, 0xffffffff
xor eax, eax
push edi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
lea ecx, [ebp + 8]
cmp esi, 0xffffffff
jne 0x40306f
cmp byte [ecx], 0
jne 0x403055
mov dword [esp + 0x14], eax
mov esi, eax
inc eax
add ecx, 0x3c
cmp eax, 0x1e
jl 0x403045
cmp esi, 0xffffffff
jne 0x40306f
or eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 0xc
lea eax, [esp + 0x18]
lea ecx, [esp + 0x20]
push eax
mov eax, dword [esp + 0x30]
lea edx, [esp + 0x20]
push ecx
push edx
push eax
mov ecx, ebp
call fcn.00403260
test al, al
jne 0x40309b
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x18
ret 0xc
lea eax, [esi + esi*2]
lea ecx, [eax + eax*4]
xor eax, eax
lea ebp, [ebp + ecx*4]
mov ecx, 9
lea esi, [ebp + 0x10]
mov edi, esi
rep stosd dword es:[edi], eax
mov al, byte [esp + 0x34]
mov dword [esi], 0x24
test al, al
mov dword [ebp + 0x14], 0xa0
je 0x4030f4
mov dword [ebp + 0x14], 0xb0
mov eax, dword [0x466894]
lea edx, [ebp + 0x24]
mov dword [ebp + 0x24], eax
mov ecx, dword [0x466898]
mov dword [edx + 4], ecx
mov eax, dword [0x46689c]
mov dword [edx + 8], eax
mov ecx, dword [0x4668a0]
mov dword [edx + 0xc], ecx
mov edx, dword [esp + 0x18]
lea ebx, [ebp + 0xc]
mov dword [ebp + 0x18], edx
mov eax, dword [esp + 0x1c]
mov dword [ebp + 0x20], eax
mov eax, dword [ebx]
xor edi, edi
cmp eax, edi
je 0x403115
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebx], edi
mov edx, dword [esp + 0x24]
push edi
push ebx
push esi
mov eax, dword [edx]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
test eax, eax
jge 0x403135
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x18
ret 0xc
mov al, byte [esp + 0x34]
mov dword [esp + 0x10], edi
test al, al
mov dword [esp + 0x2c], edi
je 0x403169
mov edx, dword [ebp + 0x20]
cmp word [edx + 2], 1
jbe 0x403169
push str.3D_sound_may_only_have_a_single_channel_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov dword [ebx], edi
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x18
ret 0xc
mov eax, dword [ebx]
push 1
push edi
lea edx, [esp + 0x34]
mov ecx, dword [eax]
push edi
push edx
lea edx, [esp + 0x20]
push edx
mov edx, dword [ebp + 0x18]
push edx
push edi
push eax
call dword [ecx + 0x2c]
test eax, eax
jge 0x403197
mov dword [ebx], edi
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x18
ret 0xc
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 0
and ecx, 3
push 0
rep movsb byte es:[edi], byte [esi]
mov edx, dword [esp + 0x34]
mov eax, dword [ebx]
push edx
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x4c]
mov al, byte [esp + 0x34]
test al, al
je 0x4031df
mov ebx, dword [ebx]
lea ecx, [ebp + 0x34]
push ecx
push 0x4668a4
mov eax, dword [ebx]
push ebx
call dword [eax]
mov eax, dword [esp + 0x14]
pop edi
mov byte [ebp + 8], 1
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 0xc
Function at 0x4035e0
Capabilities:
Print debug messages

Disassembly:
push esi
push edi
mov esi, ecx
call fcn.00403580
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0xc]
push esi
push eax
push ecx
push edi
call fcn.00431be8
test eax, eax
jge 0x403614
push str.Couldnt_load_font_texture_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
xor al, al
pop esi
ret 0xc
push edi
mov ecx, esi
call fcn.004035b0
test al, al
jne 0x403632
push str.Couldnt_initialise_vertex_buffer_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
xor al, al
pop esi
ret 0xc
pop edi
mov al, 1
pop esi
ret 0xc

Function at 0x403b50
Capabilities:
Print debug messages
Terminate process

Disassembly:
mov eax, dword [esp + 0xc]
push ebx
mov ebx, dword [esp + 8]
push esi
lea ecx, [eax + eax*4]
push edi
push ebx
push 1
lea edi, [eax + ecx*2]
mov eax, dword [0x5c1350]
shl edi, 2
mov edx, dword [eax]
push 0x252
push 8
push edi
push eax
call dword [edx + 0x5c]
test eax, eax
jge 0x403b90
push str.Error_creating_vertex_buffer__BuildVertexBuffer_
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 5
call fcn.00426f0a
mov esi, dword [esp + 0x14]
test esi, esi
je 0x403bdd
mov eax, dword [ebx]
lea edx, [esp + 0x18]
push 0
push edx
mov ecx, dword [eax]
push 0
push 0
push eax
call dword [ecx + 0x2c]
test eax, eax
jge 0x403bc1
push str.Error_Locking_vertex_buffer__BuildVertexBuffer_
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 5
call fcn.00426f0a
mov ecx, edi
mov edi, dword [esp + 0x18]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
pop edi
pop esi
mov al, 1
pop ebx
ret

Function at 0x403bf0
Capabilities:
Print debug messages
Terminate process

Disassembly:
push esi
mov esi, dword [esp + 8]
lea ecx, [esp + 8]
push 0
mov eax, dword [esi]
push ecx
push 0
push 0
push esi
call dword [eax + 0x2c]
test eax, eax
jge 0x403c1c
push str.Error_Locking_vertex_buffer__ScaleVertexBuffer_
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 5
call fcn.00426f0a
mov ecx, dword [esp + 0xc]
test ecx, ecx
jle 0x403c5a
mov eax, dword [esp + 8]
fld dword [esp + 0x10]
fmul dword [eax]
fstp dword [eax]
mov eax, dword [esp + 8]
fld dword [esp + 0x14]
fmul dword [eax + 4]
fstp dword [eax + 4]
mov eax, dword [esp + 8]
fld dword [esp + 0x18]
fmul dword [eax + 8]
fstp dword [eax + 8]
mov eax, dword [esp + 8]
add eax, 0x2c
dec ecx
mov dword [esp + 8], eax
jne 0x403c28
mov edx, dword [esi]
push esi
call dword [edx + 0x30]
pop esi
ret
Function at 0x403c70
Capabilities:
Print debug messages
Terminate process

Disassembly:
push esi
mov esi, dword [esp + 8]
lea ecx, [esp + 8]
push 0
mov eax, dword [esi]
push ecx
push 0
push 0
push esi
call dword [eax + 0x2c]
test eax, eax
jge 0x403c9c
push str.Error_Locking_vertex_buffer__TranslateVertexBuffer_
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 5
call fcn.00426f0a
mov ecx, dword [esp + 0xc]
test ecx, ecx
jle 0x403cda
mov eax, dword [esp + 8]
fld dword [esp + 0x10]
fadd dword [eax]
fstp dword [eax]
mov eax, dword [esp + 8]
fld dword [esp + 0x14]
fadd dword [eax + 4]
fstp dword [eax + 4]
mov eax, dword [esp + 8]
fld dword [esp + 0x18]
fadd dword [eax + 8]
fstp dword [eax + 8]
mov eax, dword [esp + 8]
add eax, 0x2c
dec ecx
mov dword [esp + 8], eax
jne 0x403ca8
mov edx, dword [esi]
push esi
call dword [edx + 0x30]
pop esi
ret

Function at 0x403cf0
Capabilities:
Print debug messages
Terminate process

Disassembly:
sub esp, 0x10
lea ecx, [esp + 0xc]
push ebx
mov ebx, dword [esp + 0x18]
push 0
push ecx
mov eax, dword [ebx]
push 0
push 0
push ebx
call dword [eax + 0x2c]
test eax, eax
jge 0x403d1f
push str.Error_Locking_vertex_buffer__TranslateVertexBuffer_
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 5
call fcn.00426f0a
push esi
mov esi, dword [esp + 0x20]
xor edx, edx
push edi
mov edi, dword [esp + 0x18]
test esi, esi
jle 0x403de0
fld dword [esp + 0x20]
lea ecx, [edi + 8]
test edx, edx
jne 0x403d5e
mov eax, dword [ecx - 4]
fstp st(0)
fld dword [ecx - 8]
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], eax
mov eax, dword [ecx]
fst dword [esp + 0xc]
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], eax
jmp 0x403dd2
fcom dword [ecx - 8]
fnstsw ax
test ah, 0x41
jne 0x403d6d
fstp st(0)
fld dword [ecx - 8]
fld dword [ecx - 8]
fcomp dword [esp + 0xc]
fnstsw ax
test ah, 0x41
jne 0x403d82
mov eax, dword [ecx - 8]
mov dword [esp + 0xc], eax
fld dword [ecx - 4]
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 1
je 0x403d97
mov eax, dword [ecx - 4]
mov dword [esp + 0x10], eax
fld dword [ecx - 4]
fcomp dword [esp + 0x20]
fnstsw ax
test ah, 0x41
jne 0x403dac
mov eax, dword [ecx - 4]
mov dword [esp + 0x20], eax
fld dword [ecx]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 1
je 0x403dbf
mov eax, dword [ecx]
mov dword [esp + 0x14], eax
fld dword [ecx]
fcomp dword [esp + 0x24]
fnstsw ax
test ah, 0x41
jne 0x403dd2
mov eax, dword [ecx]
mov dword [esp + 0x24], eax
add ecx, 0x2c
inc edx
cmp edx, esi
jl 0x403d3a
jmp 0x403de4
fld dword [esp + 0x20]
fld dword [esp + 0xc]
fadd st(1)
test esi, esi
fmul dword [0x462238]
fstp dword [esp + 0xc]
fstp st(0)
fld dword [esp + 0x20]
fadd dword [esp + 0x10]
fmul dword [0x462238]
fstp dword [esp + 0x20]
fld dword [esp + 0x24]
fadd dword [esp + 0x14]
fmul dword [0x462238]
fstp dword [esp + 0x24]
jle 0x403e47
lea eax, [edi + 8]
mov ecx, esi
fld dword [eax - 8]
fsub dword [esp + 0xc]
add eax, 0x2c
dec ecx
fstp dword [eax - 0x34]
fld dword [eax - 0x30]
fsub dword [esp + 0x20]
fstp dword [eax - 0x30]
fld dword [eax - 0x2c]
fsub dword [esp + 0x24]
fstp dword [eax - 0x2c]
jne 0x403e23
mov ecx, dword [ebx]
push ebx
call dword [ecx + 0x30]
pop edi
pop esi
pop ebx
add esp, 0x10
ret
Function at 0x403e60
Capabilities:
Print debug messages

Disassembly:
sub esp, 0x84
push ebx
push esi
push edi
mov edi, dword [esp + 0x98]
xor esi, esi
mov ecx, edi
mov dword [esp + 0xc], esi
xor ebx, ebx
call fcn.00407010
test eax, eax
jbe 0x403ea4
push ebx
mov ecx, edi
call fcn.00407040
mov ecx, eax
call fcn.00405190
add esi, eax
mov ecx, edi
inc ebx
call fcn.00407010
cmp ebx, eax
jb 0x403e83
mov dword [esp + 0xc], esi
mov ebx, dword [esp + 0x94]
lea eax, [esi + esi*2]
push eax
push 0
push ebx
call fcn.00403b50
mov eax, dword [ebx]
add esp, 0xc
lea edx, [esp + 0x10]
mov ecx, dword [eax]
push 0
push edx
push 0
push 0
push eax
call dword [ecx + 0x2c]
test eax, eax
jge 0x403ee9
push str.Error_Locking_vertex_buffer__BuildVertexBuffer_
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0x84
ret
push ebp
mov ebp, dword [esp + 0x14]
mov ecx, edi
xor ebx, ebx
call fcn.00407010
test eax, eax
jbe 0x403f61
push ebx
mov ecx, edi
xor esi, esi
call fcn.00407040
mov ecx, eax
call fcn.00405190
test eax, eax
jbe 0x403f51
lea eax, [esp + 0x18]
push esi
push eax
push ebx
mov ecx, edi
call fcn.00407040
mov ecx, eax
call fcn.004053f0
mov ecx, dword [esp + 0xa0]
push ecx
push eax
push ebp
call fcn.00403f80
add esp, 0xc
add ebp, 0x84
mov ecx, edi
inc esi
push ebx
call fcn.00407040
mov ecx, eax
call fcn.00405190
cmp esi, eax
jb 0x403f10
mov ecx, edi
inc ebx
call fcn.00407010
cmp ebx, eax
jb 0x403efb
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x98]
mov eax, dword [edx]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
pop ebp
mov eax, esi
pop edi
pop esi
pop ebx
add esp, 0x84
ret

Function at 0x404bc0
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x461803
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 8
push esi
mov esi, ecx
mov dword [esp + 8], esi
call fcn.004045b0
mov cl, byte [esp + 7]
xor eax, eax
mov dword [esp + 0x14], eax
mov byte [esi + 0x14], cl
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
mov dl, byte [esp + 7]
mov dword [esi + 0x28], eax
mov byte [esi + 0x24], dl
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], eax
mov cl, byte [esp + 7]
mov dword [esi + 0x38], eax
mov byte [esi + 0x34], cl
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
mov dl, byte [esp + 7]
mov dword [esi + 0x48], eax
mov byte [esi + 0x44], dl
mov dword [esi + 0x4c], eax
mov dword [esi + 0x50], eax
mov cl, byte [esp + 7]
mov dword [esi + 0x58], eax
mov byte [esi + 0x54], cl
mov dword [esi + 0x5c], eax
mov dword [esi + 0x60], eax
mov dl, byte [esp + 7]
mov dword [esi + 0x68], eax
mov byte [esi + 0x64], dl
mov dword [esi + 0x6c], eax
mov dword [esi + 0x70], eax
mov cl, byte [esp + 7]
mov dword [esi + 0x78], eax
mov byte [esi + 0x74], cl
mov dword [esi + 0x7c], eax
mov dword [esi + 0x80], eax
mov dl, byte [esp + 7]
mov dword [esi + 0xc8], eax
mov byte [esi + 0xc4], dl
mov dword [esi + 0xcc], eax
mov dword [esi + 0xd0], eax
mov ecx, esi
mov byte [esp + 0x14], 8
mov dword [esi], 0x462270
call fcn.00404de0
mov ecx, dword [esp + 0xc]
mov eax, esi
pop esi
mov dword fs:[0], ecx
add esp, 0x14
ret
Function at 0x406e80
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x461941
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 8
mov al, byte [esp + 3]
push esi
mov esi, ecx
mov dword [esp + 8], esi
mov byte [esi + 4], al
xor eax, eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov cl, byte [esp + 7]
mov dword [esp + 0x14], eax
mov byte [esi + 0x14], cl
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
mov dl, byte [esp + 7]
mov dword [esi + 0x28], eax
mov byte [esi + 0x24], dl
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], eax
mov ecx, esi
mov byte [esp + 0x14], 2
mov dword [esi], 0x462288
call fcn.00407140
mov ecx, dword [esp + 0xc]
mov eax, esi
pop esi
mov dword fs:[0], ecx
add esp, 0x14
ret
Function at 0x40fc20
Capabilities:
Print debug messages

Disassembly:
sub esp, 0x28
mov eax, dword [0x5c133c]
push 0x7f00
push 0
mov dword [esp + 8], 0x20
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], eax
call dword [sym.imp.USER32.dll_LoadIconA]
push 0x7f00
push 0
mov dword [esp + 0x1c], eax
call dword [sym.imp.USER32.dll_LoadCursorA]
push 4
mov dword [esp + 0x1c], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
lea ecx, [esp]
mov dword [esp + 0x1c], eax
push ecx
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], str.Highway_Pursuit
mov dword [esp + 8], 0x413100
call dword [sym.imp.USER32.dll_RegisterClassA]
test ax, ax
jne 0x40fcab
push str.Error_registering_window_class
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor al, al
add esp, 0x28
ret
mov al, byte [0x469914]
push ebp
push esi
push edi
test al, al
je 0x40fcd8
mov edi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
call edi
push 1
mov esi, eax
call edi
push 0
mov edi, eax
mov ebp, DirectSoundCreate
call dword [sym.imp.USER32.dll_ShowCursor]
jmp 0x40fcf5
mov ecx, 0x5bdd90
call fcn.00402db0
mov ecx, 0x5bdd90
mov esi, eax
call fcn.00402df0
mov edi, eax
mov ebp, 0x80000
mov edx, dword [0x5c133c]
push 0
push edx
push 0
push 0
push edi
push esi
push 0
push 0
push ebp
push str.Highway_Pursuit
push str.Highway_Pursuit
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
pop edi
pop esi
test eax, eax
mov dword [0x5c1340], eax
pop ebp
jne 0x40fd38
push str.Error_opening_window
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor al, al
add esp, 0x28
ret
push 5
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [0x5c1340]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
mov ecx, dword [0x5c1340]
push ecx
call dword [sym.imp.USER32.dll_SetFocus]
mov al, 1
add esp, 0x28
ret

Function at 0x40fd60
Capabilities:
Print debug messages

Disassembly:
mov eax, dword [0x5c1340]
sub esp, 0x1c
test eax, eax
push ebx
push ebp
je 0x40fe1b
push esi
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
mov ebx, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ebp, dword [sym.imp.USER32.dll_MessageBoxA]
test eax, eax
jne 0x40fda6
push str.___Failed_to_DestroyWindow_n
call ebx
push 0x40010
push str.Highway_Pursuit
push str.Destroy_Window_Failed
push 0
call ebp
jmp 0x40fde1
mov esi, dword [sym.imp.USER32.dll_PeekMessageA]
push 1
push 0
push 0
lea eax, [esp + 0x18]
push 0
push eax
call esi
test eax, eax
je 0x40fde1
push edi
mov edi, dword [sym.imp.USER32.dll_DispatchMessageA]
lea ecx, [esp + 0x10]
push ecx
call edi
push 1
push 0
push 0
lea edx, [esp + 0x1c]
push 0
push edx
call esi
test eax, eax
jne 0x40fdc6
pop edi
mov eax, dword [0x5c133c]
mov dword [0x5c1340], 0
push eax
push str.Highway_Pursuit
call dword [sym.imp.USER32.dll_UnregisterClassA]
test eax, eax
pop esi
jne 0x40fe1b
push str.___Failed_to_Unregister_Window_n
call ebx
push 0x40010
push str.Highway_Pursuit
push str.Unregister_Failed
push 0
call ebp
push 1
call dword [sym.imp.USER32.dll_ShowCursor]
pop ebp
pop ebx
add esp, 0x1c
ret