Function at 0x530220
Capabilities:
Get disk information
Query or enumerate registry value
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x587ede
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1b0
push ebx
push ebp
push esi
push edi
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
mov eax, dword [0x59a760]
mov byte [esp + 0x13], 0x41
setge byte [esp + 0x1f]
mov dword [esp + 0x14], eax
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov ebx, eax
test ebx, ebx
je 0x5302c6
mov esi, dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
mov edi, dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
mov al, byte [esp + 0x13]
cmp al, 0x5a
jg 0x5302c6
test bl, 1
je 0x5302b6
lea ecx, [esp + 0x14]
mov byte [esp + 0x14], al
push ecx
call esi
cmp eax, 3
jne 0x5302b6
push 0
push 0
push 0
push 0
push 0x5b6f50
lea edx, [esp + 0xd4]
push 0x100
lea eax, [esp + 0x2c]
push edx
push eax
call edi
test eax, eax
jne 0x5302c6
mov cl, byte [esp + 0x13]
shr ebx, 1
inc cl
test ebx, ebx
mov byte [esp + 0x13], cl
jne 0x530274
mov eax, dword [0x5a1d20]
xor esi, esi
mov cl, byte [eax]
cmp cl, 0xff
je 0x5302ec
lea edx, [esp + 0xc0]
sub edx, eax
not cl
mov byte [edx + eax], cl
mov cl, byte [eax + 1]
inc esi
inc eax
cmp cl, 0xff
jne 0x5302dd
lea ecx, [esp + 0x14]
lea edx, [esp + 0xc0]
push ecx
push 1
push 0
push edx
push reloc.WS2_32.dll_bind
mov byte [esp + esi + 0xd4], 0
mov dword [esp + 0x28], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x53036f
mov edx, dword [esp + 0x14]
mov byte [esp + 0xc3], al
lea eax, [esp + 0x20]
lea ecx, [esp + 0xc0]
push eax
push str.SmoTheOneWasHere
push 0
push 0
push ecx
push edx
mov byte [esp + 0xda], 0x79
mov dword [esp + 0x38], 0x11
mov byte [esp + 0xd9], 0x65
mov byte [esp + 0xd8], 0x4b
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edi, dword [0x5b6f50]
xor ecx, ecx
xor esi, esi
mov al, byte [ecx + str.SmoTheOneWasHere]
cmp al, 0x39
jbe 0x53038d
and eax, 0xff
sub eax, 0x41
jmp 0x530395
and eax, 0xff
sub eax, 0x16
movsx eax, byte [esi + eax + 0x5a7ac0]
cmp eax, 0x20
mov dword [ecx*4 + 0xab5b60], eax
jne 0x5303b0
mov byte [0xaab48c], 1
mov dl, byte [ecx + 0x5a80d4]
add esi, 0x24
sub eax, edx
sub eax, edi
and eax, 0x1f
mov dword [ecx*4 + 0xab5b60], eax
shr edi, 2
inc ecx
cmp ecx, 0x10
jb 0x530379
mov dword [0xab5b5c], 0
mov edi, 0xab5b60
mov eax, 0x5a8f40
mov ebp, 0x10
xor edx, edx
mov esi, eax
mov eax, dword [esi]
test eax, 0x40000000
je 0x530426
mov ebx, 1
mov ecx, edx
shl ebx, cl
test dword [edi], ebx
setne cl
test eax, eax
jns 0x53040d
test cl, cl
sete cl
test cl, cl
je 0x530426
mov ebx, 1
mov cl, al
mov eax, dword [0xab5b5c]
shl ebx, cl
or eax, ebx
mov dword [0xab5b5c], eax
inc edx
add esi, 4
cmp edx, 5
jb 0x5303ed
add edi, 4
dec ebp
mov eax, esi
jne 0x5303e9
mov dword [esp + 0x14], 0xab5b60
mov eax, 0x5a8f40
mov dword [esp + 0x20], 0x10
xor edi, edi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov esi, dword [eax]
test esi, 0x40000000
jne 0x5304d8
mov ebp, dword [0xab5b5c]
xor bl, bl
xor edx, edx
mov eax, esi
mov ecx, edx
shr eax, cl
mov ecx, 1
mov dword [esp + 0x30], ecx
and eax, 0xff
mov ecx, eax
mov eax, dword [esp + 0x30]
shl eax, cl
test ebp, eax
je 0x53048f
test bl, bl
sete bl
add edx, 8
cmp edx, 0x18
jb 0x53046a
test esi, esi
jns 0x5304a0
test bl, bl
sete bl
mov eax, dword [esp + 0x14]
mov ecx, edi
mov edx, 1
shl edx, cl
mov ecx, dword [eax]
test bl, bl
je 0x5304be
test ecx, edx
jne 0x5304d8
push str.fail_1_n
jmp 0x5304c7
test ecx, edx
je 0x5304d8
push str.fail_2_n
mov ecx, dword [0x59a758]
mov byte [ecx], 1
call fcn.00535ef0
add esp, 4
mov ecx, dword [esp + 0x28]
inc edi
add ecx, 4
cmp edi, 5
mov dword [esp + 0x28], ecx
jb 0x530452
mov edx, dword [esp + 0x14]
mov eax, ecx
mov ecx, dword [esp + 0x20]
add edx, 4
dec ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], ecx
jne 0x53044c
push 0
call fcn.0053b020
mov edx, dword [esp + 0x1d8]
mov eax, dword [esp + 0x1d4]
push edx
push eax
call fcn.00535a10
mov eax, dword [0xb084b8]
add esp, 0xc
test eax, eax
jne 0x53056d
mov ecx, dword [str.Null_Pointer]
push ecx
push 0x158
push str.._sys_mem_memman.h
call fcn.00401090
mov eax, dword [0xb084b8]
add esp, 0xc
test eax, eax
jne 0x53056d
mov al, byte [0xb07d85]
test al, al
jne 0x53056d
call fcn.00401250
call fcn.00534a50
mov byte [0xb07d85], 1
mov ecx, dword [0xb084b8]
call fcn.00534220
mov eax, dword [0xab5b5c]
xor edi, edi
mov edx, eax
shl edx, 0x10
xor edx, eax
add edx, 0x5c0fe635
xor eax, eax
lea esi, [eax*8]
mov ebx, edx
mov ecx, esi
mov dword [esp + 0x30], edx
shr ebx, cl
mov ecx, dword [eax*4 + 0x5aa250]
xor edx, edx
and ebx, 0xff
mov dl, byte [ebx + ecx]
mov ecx, esi
mov ebx, edx
mov edx, dword [esp + 0x30]
shl ebx, cl
or edi, ebx
inc eax
cmp eax, 4
jb 0x53058e
xor ebx, ebx
xor edx, edx
xor esi, esi
xor eax, eax
mov cl, byte [edx + eax + 0x5aa6e8]
mov ebp, 1
shl ebp, cl
test edi, ebp
je 0x5305e8
mov ebp, 1
mov ecx, eax
shl ebp, cl
or esi, ebp
inc eax
cmp eax, 8
jb 0x5305cb
mov ecx, edx
add edx, 8
shl esi, cl
or ebx, esi
cmp edx, 0x20
jb 0x5305c7
add ebx, 0x2e4ba461
push str._n_Start_of_main___n
mov eax, ebx
shl eax, 0x10
xor eax, ebx
sub eax, 0x1d35ca01
mov dword [0xab5b58], eax
call fcn.00535ef0
mov edi, dword [esp + 0x1d4]
push edi
push str.argc___d_n
call fcn.00535ef0
mov ebx, dword [esp + 0x1e0]
add esp, 0xc
xor esi, esi
test edi, edi
jle 0x530656
mov edx, dword [ebx + esi*4]
push edx
push esi
push str._2d:__s_n
call fcn.00535ef0
add esp, 0xc
inc esi
cmp esi, edi
jl 0x53063f
push 0x59a284
call fcn.00535ef0
mov al, byte [0xb085f4]
add esp, 4
test al, al
je 0x530671
call fcn.0053b020
push str.Everything
call fcn.00534fa0
push str.Initialization
call fcn.00534fa0
add esp, 8
cmp edi, 2
jne 0x5306a7
mov esi, dword [ebx + 4]
mov edi, str.demo
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x5306a7
mov byte [0xb07d84], 1
push reloc.WS2_32.dll_closesocket
call dword [sym.imp.KERNEL32.dll_SetThreadExecutionState]
mov ecx, dword [0x5aa758]
mov eax, dword [ecx]
mov edx, dword [eax]
add edx, 0x7d0
mov dword [eax], edx
mov edx, dword [0x5aa758]
mov eax, dword [edx]
mov eax, dword [eax]
cmp eax, 0x12fcb819
jb 0x5306dc
cmp eax, 0x142de519
jbe 0x5306f4
mov ecx, dword [0x59f1e8]
push str.fail_3_n
mov edx, dword [ecx]
mov byte [edx], 1
call fcn.00535ef0
add esp, 4
mov eax, dword [0x5aa758]
push str.Begin_Application
mov eax, dword [eax]
add dword [eax], 0xfffff830
call fcn.00405b60
push 0x6680bf3
call fcn.00402bb0
mov al, byte [0xaab48c]
add esp, 8
test al, al
jne 0x5313f2
mov dword [esp + 0xb0], 0x589704
mov dword [esp + 0xb8], 0x58bb24
mov dword [esp + 0xa8], 0x5898ec
mov eax, dword [0xb084b8]
test eax, eax
jne 0x53078b
mov ecx, dword [str.Null_Pointer]
push ecx
push 0x158
push str.._sys_mem_memman.h
call fcn.00401090
mov eax, dword [0xb084b8]
add esp, 0xc
test eax, eax
jne 0x53078b
mov al, byte [0xb07d85]
test al, al
jne 0x53078b
call fcn.00401250
call fcn.00534a50
mov byte [0xb07d85], 1
mov edx, dword [0xb084b8]
mov ecx, dword [edx + 0xd4]
mov eax, dword [ecx]
call dword [eax]
mov eax, dword [0xb084b8]
test eax, eax
jne 0x5307e0
mov ecx, dword [str.Null_Pointer]
push ecx
push 0x158
push str.._sys_mem_memman.h
call fcn.00401090
mov eax, dword [0xb084b8]
add esp, 0xc
test eax, eax
jne 0x5307e0
mov al, byte [0xb07d85]
test al, al
jne 0x5307e0
call fcn.00401250
call fcn.00534a50
mov byte [0xb07d85], 1
mov ecx, dword [0xb084b8]
push 0x10
call fcn.00533ca0
push str.Hash_Item_Pool_Manager
call fcn.00534fa0
push 0x2710
push 0
call fcn.005353c0
call fcn.005352f0
push 1
call fcn.00537650
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], 0x58bb20
mov dword [esp + 0x1d8], 0
call fcn.00543ba0
push str.File_System
call fcn.00534fa0
call fcn.0053b020
call fcn.005352f0
push str.System_Singletons
call fcn.00534fa0
push 1
call fcn.00427120
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], 0x58bb1c
push 1
mov byte [esp + 0x1e8], 1
call fcn.00428fc0
mov ebp, eax
mov dword [esp + 0xcc], ebp
push 1
mov byte [esp + 0x1ec], 2
call fcn.004295c0
mov esi, eax
mov dword [esp + 0xe0], esi
push 1
mov byte [esp + 0x1f0], 3
call fcn.005424d0
mov edi, eax
mov dword [esp + 0xdc], edi
push 1
mov byte [esp + 0x1f4], 4
call fcn.00543e80
add esp, 0x2c
lea ecx, [esp + 0x64]
push eax
call fcn.00532a50
mov dword [esp + 0x60], 0x58bb18
push 1
mov byte [esp + 0x1cc], 5
call fcn.00428830
add esp, 4
lea ecx, [esp + 0x3c]
push eax
call fcn.00532a50
mov dword [esp + 0x38], 0x58b098
push 1
mov byte [esp + 0x1cc], 6
call fcn.0045eeb0
add esp, 4
lea ecx, [esp + 0x54]
push eax
call fcn.00532a50
mov dword [esp + 0x50], 0x5898f0
mov byte [esp + 0x1c8], 7
call fcn.005352f0
push 0x5b648c
push str.images_wheel_0
push 6
push 6
push 0x17c
push 0x1e
call fcn.0053b020
push 0
push 0
push str.imagesloadscrn.png
call fcn.00446540
push str.SkateScript::Init__
call fcn.00534fa0
call fcn.00512170
call fcn.005121a0
call fcn.005352f0
push str.Game_Singletons
call fcn.00534fa0
call fcn.004aaf90
push 1
call fcn.00406dc0
add esp, 0x30
lea ecx, [esp + 0x4c]
push eax
call fcn.00532a50
mov dword [esp + 0x48], 0x58bb14
push 1
mov byte [esp + 0x1cc], 8
call fcn.00436790
add esp, 4
lea ecx, [esp + 0x94]
push eax
call fcn.00532a50
mov dword [esp + 0x90], 0x58970c
push 1
mov byte [esp + 0x1cc], 9
call fcn.004330a0
add esp, 4
lea ecx, [esp + 0x7c]
push eax
call fcn.00532a50
mov dword [esp + 0x78], 0x58bb10
push 1
mov byte [esp + 0x1cc], 0xa
call fcn.00504c60
add esp, 4
lea ecx, [esp + 0x2c]
push eax
call fcn.00532a50
mov dword [esp + 0x28], 0x58bb0c
push 1
mov byte [esp + 0x1cc], 0xb
call fcn.004f7a70
add esp, 4
lea ecx, [esp + 0x18]
push eax
call fcn.00532a50
mov dword [esp + 0x14], 0x58bb08
push 1
mov byte [esp + 0x1cc], 0xc
call fcn.00506330
add esp, 4
lea ecx, [esp + 0x9c]
push eax
call fcn.00532a50
mov dword [esp + 0x98], 0x58bb04
push 1
mov byte [esp + 0x1cc], 0xd
call fcn.00502f30
add esp, 4
lea ecx, [esp + 0x24]
push eax
call fcn.00532a50
mov dword [esp + 0x20], 0x58b65c
push 1
mov byte [esp + 0x1cc], 0xe
call fcn.00482560
add esp, 4
lea ecx, [esp + 0x44]
push eax
call fcn.00532a50
mov dword [esp + 0x40], 0x58bb00
push 1
mov byte [esp + 0x1cc], 0xf
call fcn.00470a50
add esp, 4
lea ecx, [esp + 0xa4]
push eax
call fcn.00532a50
mov dword [esp + 0xa0], 0x58bafc
push 1
mov byte [esp + 0x1cc], 0x10
call fcn.00527060
add esp, 4
lea ecx, [esp + 0x34]
push eax
call fcn.00532a50
mov dword [esp + 0x30], 0x58afec
push 1
mov byte [esp + 0x1cc], 0x11
call fcn.00473c60
add esp, 4
lea ecx, [esp + 0x5c]
push eax
call fcn.00532a50
mov dword [esp + 0x58], 0x58baf8
push 1
mov byte [esp + 0x1cc], 0x12
call fcn.00538ff0
add esp, 4
lea ecx, [esp + 0x8c]
push eax
call fcn.00532a50
mov dword [esp + 0x88], 0x58baf4
push 1
mov byte [esp + 0x1cc], 0x13
call fcn.0049f1f0
add esp, 4
lea ecx, [esp + 0x6c]
push eax
call fcn.00532a50
mov dword [esp + 0x68], 0x58baf0
mov byte [esp + 0x1c8], 0x14
call fcn.005352f0
push str.Resgistering_and_starting_modules
call fcn.00534fa0
mov eax, dword [esi]
add esp, 4
test eax, eax
jne 0x530b93
mov edx, dword [str.Null_Pointer]
push edx
push 0x6c
push str..gel_modman.h
call fcn.00401090
add esp, 0xc
mov ebx, dword [esi]
test ebx, ebx
jne 0x530bb1
mov eax, dword [str.Null_Pointer]
push eax
push 0xef
push str..gel_mainloop.h
call fcn.00401090
add esp, 0xc
lea ecx, [ebp + 0x7c]
push ebx
call fcn.004066d0
mov eax, dword [edi + 0x18]
test eax, eax
jne 0x530bda
mov ecx, dword [str.Null_Pointer]
push ecx
push 0x112
push str.._sys_sioman.h
call fcn.00401090
add esp, 0xc
mov edi, dword [edi + 0x18]
test edi, edi
jne 0x530bfa
mov edx, dword [str.Null_Pointer]
push edx
push 0xef
push str..gel_mainloop.h
call fcn.00401090
add esp, 0xc
push edi
lea ecx, [ebp + 0x7c]
call fcn.004066d0
mov eax, dword [esp + 0x3c]
mov edi, eax
cmp dword [eax], 0
jne 0x530c26
mov eax, dword [str.Null_Pointer]
push eax
push 0x174
push str..gel_inpman.h
call fcn.00401090
add esp, 0xc
mov edi, dword [edi]
test edi, edi
jne 0x530c45
mov ecx, dword [str.Null_Pointer]
push ecx
push 0xc4
push str..gel_mainloop.h
call fcn.00401090
add esp, 0xc
lea ebx, [ebp + 4]
push edi
mov ecx, ebx
call fcn.004066d0
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x530c71
mov edx, dword [str.Null_Pointer]
push edx
push 0x228
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov ecx, esi
push eax
call fcn.00429a00
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x530c9e
mov ecx, dword [str.Null_Pointer]
push ecx
push 0x228
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
mov edx, dword [esp + 0x34]
mov ecx, esi
push edx
call fcn.00429a00
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x530cca
mov eax, dword [str.Null_Pointer]
push eax
push 0x228
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
mov ecx, dword [esp + 0x24]
push ecx
mov ecx, esi
call fcn.00429a00
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x530cf7
mov edx, dword [str.Null_Pointer]
push edx
push 0x228
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
mov eax, dword [esp + 0x18]
mov ecx, esi
push eax
call fcn.00429a00
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x530d24
mov ecx, dword [str.Null_Pointer]
push ecx
push 0x228
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
mov edx, dword [esp + 0x24]
mov ecx, esi
push edx
call fcn.00429ac0
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x530d50
mov eax, dword [str.Null_Pointer]
push eax
push 0x228
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
mov ecx, dword [esp + 0x2c]
push ecx
mov ecx, esi
call fcn.00429ac0
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x530d7d
mov edx, dword [str.Null_Pointer]
push edx
push 0x228
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
mov eax, dword [esp + 0x18]
mov ecx, esi
push eax
call fcn.00429ac0
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x530daa
mov ecx, dword [str.Null_Pointer]
push ecx
push 0x228
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
mov edx, dword [esp + 0x34]
mov ecx, esi
push edx
call fcn.00429ac0
call fcn.005352f0
push str.sStartEngine
call fcn.00534fa0
call fcn.004616c0
call fcn.005352f0
push str.Starting_main_loop
call fcn.00405b60
add esp, 8
call fcn.005352f0
mov al, byte [0xa72bd0]
test al, al
je 0x530e05
push str.MainLoop
call fcn.00534fa0
add esp, 4
mov ecx, ebp
call fcn.00429180
call fcn.005352f0
jmp 0x530e0c
mov byte [0xaab48c], 1
push str.Ending_main_loop
call fcn.00405b60
push 0
push 0
call fcn.0050c060
add esp, 0xc
mov ecx, esi
call fcn.00429ae0
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x530e49
mov eax, dword [str.Null_Pointer]
push eax
push 0x228
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
mov ecx, dword [esp + 0x18]
push ecx
mov ecx, esi
call fcn.00429a80
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x530e76
mov edx, dword [str.Null_Pointer]
push edx
push 0x228
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov ecx, esi
push eax
call fcn.00429a80
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x530ea3
mov ecx, dword [str.Null_Pointer]
push ecx
push 0x228
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
mov edx, dword [esp + 0x24]
mov ecx, esi
push edx
call fcn.00429a80
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x530ecf
mov eax, dword [str.Null_Pointer]
push eax
push 0x228
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
mov ecx, dword [esp + 0x34]
push ecx
mov ecx, esi
call fcn.00429a80
lea ecx, [ebp + 0x40]
call fcn.00406730
mov ecx, ebx
call fcn.00406730
lea ecx, [ebp + 0x7c]
call fcn.00406730
push str.End_Application
call fcn.00405b60
add esp, 4
mov dword [esp + 0x68], 0x58baf0
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x1c8], 0x15
test eax, eax
jne 0x530f30
mov edx, dword [str.Null_Pointer]
push edx
push 0x237
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
call fcn.0049f260
mov dword [esp + 0x88], 0x58baf4
mov eax, dword [esp + 0x8c]
mov byte [esp + 0x1c8], 0x16
test eax, eax
jne 0x530f6b
mov eax, dword [str.Null_Pointer]
push eax
push 0x237
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
call fcn.00539060
mov dword [esp + 0x58], 0x58baf8
mov eax, dword [esp + 0x5c]
mov byte [esp + 0x1c8], 0x17
test eax, eax
jne 0x530fa1
mov ecx, dword [str.Null_Pointer]
push ecx
push 0x237
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
call fcn.00473cd0
mov dword [esp + 0x30], 0x58afec
mov eax, dword [esp + 0x34]
mov byte [esp + 0x1c8], 0x18
test eax, eax
jne 0x530fd7
mov edx, dword [str.Null_Pointer]
push edx
push 0x237
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
call fcn.005270d0
mov dword [esp + 0xa0], 0x58bafc
mov eax, dword [esp + 0xa4]
mov byte [esp + 0x1c8], 0x19
test eax, eax
jne 0x531012
mov eax, dword [str.Null_Pointer]
push eax
push 0x237
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
call fcn.00470ac0
mov dword [esp + 0x40], 0x58bb00
mov eax, dword [esp + 0x44]
mov byte [esp + 0x1c8], 0x1a
test eax, eax
jne 0x531048
mov ecx, dword [str.Null_Pointer]
push ecx
push 0x237
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
call fcn.004825d0
mov dword [esp + 0x20], 0x58b65c
mov eax, dword [esp + 0x24]
mov byte [esp + 0x1c8], 0x1b
test eax, eax
jne 0x53107e
mov edx, dword [str.Null_Pointer]
push edx
push 0x237
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
call fcn.00502fa0
mov dword [esp + 0x98], 0x58bb04
mov eax, dword [esp + 0x9c]
mov byte [esp + 0x1c8], 0x1c
test eax, eax
jne 0x5310b9
mov eax, dword [str.Null_Pointer]
push eax
push 0x237
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
call fcn.005063b0
mov dword [esp + 0x14], 0x58bb08
mov eax, dword [esp + 0x18]
mov byte [esp + 0x1c8], 0x1d
test eax, eax
jne 0x5310ef
mov ecx, dword [str.Null_Pointer]
push ecx
push 0x237
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
call fcn.004f7ae0
mov dword [esp + 0x28], 0x58bb0c
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x1c8], 0x1e
test eax, eax
jne 0x531125
mov edx, dword [str.Null_Pointer]
push edx
push 0x237
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
call fcn.00504cd0
mov dword [esp + 0x78], 0x58bb10
mov eax, dword [esp + 0x7c]
mov byte [esp + 0x1c8], 0x1f
test eax, eax
jne 0x53115a
mov eax, dword [str.Null_Pointer]
push eax
push 0x237
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
call fcn.00433110
mov dword [esp + 0x90], 0x58970c
mov eax, dword [esp + 0x94]
mov byte [esp + 0x1c8], 0x20
test eax, eax
jne 0x531196
mov ecx, dword [str.Null_Pointer]
push ecx
push 0x237
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
call fcn.00436820
mov dword [esp + 0x48], 0x58bb14
mov eax, dword [esp + 0x4c]
mov byte [esp + 0x1c8], 0x21
test eax, eax
jne 0x5311cc
mov edx, dword [str.Null_Pointer]
push edx
push 0x237
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
call fcn.00406e30
mov dword [esp + 0x50], 0x5898f0
mov eax, dword [esp + 0x54]
mov byte [esp + 0x1c8], 0x22
test eax, eax
jne 0x531201
mov eax, dword [str.Null_Pointer]
push eax
push 0x237
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
call fcn.0045ef20
mov dword [esp + 0x38], 0x58b098
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x1c8], 0x23
test eax, eax
jne 0x531237
mov ecx, dword [str.Null_Pointer]
push ecx
push 0x237
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
call fcn.004288a0
mov dword [esp + 0x60], 0x58bb18
mov eax, dword [esp + 0x64]
mov byte [esp + 0x1c8], 0x24
test eax, eax
jne 0x53126d
mov edx, dword [str.Null_Pointer]
push edx
push 0x237
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
call fcn.00543f10
mov byte [esp + 0x1c8], 0x25
call fcn.00542540
mov byte [esp + 0x1c8], 0x26
call fcn.00429630
test ebp, ebp
mov byte [esp + 0x1c8], 0x27
jne 0x5312b0
mov eax, dword [str.Null_Pointer]
push eax
push 0x237
push str.._sys_mem_memptr.h
call fcn.00401090
add esp, 0xc
call fcn.00429030
mov dword [esp + 0x70], 0x58bb1c
lea ecx, [esp + 0x74]
mov byte [esp + 0x1c8], 0x28
call fcn.0052ba10
call fcn.004271a0
mov dword [esp + 0x80], 0x58bb20
lea ecx, [esp + 0x84]
mov dword [esp + 0x1c8], 0x29
call fcn.0052ba10
call fcn.005376c0
mov dword [esp + 0x1c8], 0xffffffff
call fcn.004ab050
call fcn.00461810
call fcn.00543c90
mov ecx, dword [0xab4b08]
call fcn.0046f7e0
mov ecx, dword [0xab4b04]
call fcn.0046f7e0
call fcn.00465b10
call fcn.00507320
call fcn.00463250
call fcn.00438ca0
mov eax, dword [0xb084b8]
test eax, eax
jne 0x531383
mov ecx, dword [str.Null_Pointer]
push ecx
push 0x158
push str.._sys_mem_memman.h
call fcn.00401090
mov eax, dword [0xb084b8]
add esp, 0xc
test eax, eax
jne 0x531383
mov al, byte [0xb07d85]
test al, al
jne 0x531383
call fcn.00401250
call fcn.00534a50
mov byte [0xb07d85], 1
mov ecx, dword [0xb084b8]
push 0x10
call fcn.00533ca0
mov eax, dword [0xb084b8]
test eax, eax
jne 0x5313d5
mov edx, dword [str.Null_Pointer]
push edx
push 0x158
push str.._sys_mem_memman.h
call fcn.00401090
mov eax, dword [0xb084b8]
add esp, 0xc
test eax, eax
jne 0x5313d5
mov al, byte [0xb07d85]
test al, al
jne 0x5313d5
call fcn.00401250
call fcn.00534a50
mov byte [0xb07d85], 1
mov eax, dword [0xb084b8]
mov ecx, dword [eax + 0xd4]
mov edx, dword [ecx]
call dword [edx + 4]
mov al, byte [0xaab48c]
test al, al
je 0x530746
mov al, byte [0xa72bd0]
pop edi
pop esi
pop ebp
test al, al
pop ebx
jne 0x531416
push 0x1000
push str.Graphic_error
push str.Tony_Hawks_Pro_Skater_4_was_unable_to_initialize_graphics_engine.
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov al, byte [esp + 0xf]
test al, al
je 0x531424
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [esp + 0x1b0]
xor eax, eax
mov dword fs:[0], ecx
add esp, 0x1bc
ret