Function at 0x450070
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov al, byte [0x8ccc27]
sub esp, 0x178
push ebx
push ebp
xor ebx, ebx
cmp al, bl
push esi
push edi
jne 0x450c19
mov esi, dword [0x8cccd8]
cmp esi, ebx
jne 0x4500a1
push 0x7f02
push ebx
call dword [sym.imp.USER32.dll_LoadCursorA]
mov esi, eax
call dword [sym.imp.USER32.dll_GetCursor]
mov dword [esp + 0x54], eax
mov eax, esi
push eax
call dword [sym.imp.USER32.dll_SetCursor]
cmp byte [0x86bb30], bl
je 0x45010d
push str.You_are_marooned_on_a_deserted_island.
mov esi, 0x8ebf58
call fcn.004f7660
mov al, byte [0x86bb30]
add esp, 4
cmp al, 1
jne 0x4500e6
push 0x10
push str.With_the_help_of_your_handy__PROP1__you_quickly_signal_a_passing_vessel_and_are_rescued__n
call fcn.004f7680
add esp, 8
cmp byte [0x86bb30], 2
jne 0x450103
push 0x10
push str.With_the_help_of_your_handy__PROP2__you_quickly_signal_a_passing_vessel_and_are_rescued__n
mov esi, 0x8ebf58
call fcn.004f7680
add esp, 8
mov ecx, 0x24
call fcn.00487df0
push 0xc0
call fcn.005354b8
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x4502c0
mov eax, dword [0x8ebff0]
mov edi, dword [0x729444]
push ebx
push ebx
push ebx
push ebx
push 0xffffffffffffffff
push ebx
push ebx
mov dword [esi + 4], ebx
push ebx
mov dword [esi], 0x6ff14c
mov dword [esi + 0x1c], ebx
push ebx
mov dword [esi + 0x64], ebx
mov dword [esi + 0xbc], ebx
push eax
inc edi
mov ebx, 1
mov eax, str.marrooned.nif
mov ecx, esi
mov dword [0x729444], edi
call fcn.004be370
mov eax, dword [esi + 4]
inc eax
mov edi, esi
mov dword [esp + 0x30], edi
mov dword [esi + 4], eax
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
push 1
push 0xffffffffffffffff
push ebx
push ebx
push ebx
push ebx
push str.maroon_pc.kfm
push ecx
mov ecx, dword [0x8ebffc]
mov eax, esp
mov dword [eax], ecx
mov eax, ecx
cmp eax, ebx
je 0x45019b
inc dword [eax + 4]
call fcn.004afb00
mov ebp, eax
add esp, 0x30
cmp ebp, ebx
mov dword [esp + 0x2c], ebp
je 0x4501b0
inc dword [ebp + 4]
push 0xc0
call fcn.005354b8
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x4502cb
mov eax, dword [0x8ebffc]
mov ecx, dword [0x729444]
push ebx
push ebx
push ebx
push ebx
push 0xffffffffffffffff
push ebx
push ebx
mov dword [esi + 4], ebx
push ebx
mov dword [esi], 0x6ff14c
mov dword [esi + 0x1c], ebx
inc ecx
push ebx
mov dword [esi + 0x64], ebx
mov dword [0x729444], ecx
mov dword [esi + 0xbc], ebx
push eax
mov ebx, 1
mov eax, str.maroon_cam.kfm
mov ecx, esi
call fcn.004be370
mov eax, dword [esi + 4]
inc eax
mov dword [esp + 0x24], esi
mov dword [esi + 4], eax
xor ebx, ebx
call fcn.004b02b0
cmp eax, ebx
mov dword [esp + 0x44], eax
je 0x450227
inc dword [eax + 4]
mov ecx, dword [edi + 0xbc]
cmp ecx, ebx
je 0x450238
push 1
call fcn.004c0f40
mov ecx, dword [edi + 0x20]
mov edx, 0x8000
or ecx, edx
mov dword [edi + 0x20], ecx
mov ecx, dword [ebp + 0xbc]
cmp ecx, ebx
je 0x450256
push 1
call fcn.004c0f40
mov eax, dword [ebp + 0x20]
fld qword [0x8ca4b0]
fmul dword [0x715698]
or eax, edx
mov dword [ebp + 0x20], eax
call fcn.005f275c
mov edx, dword [0x8ccbd4]
push 0x320
mov dword [esp + 0x44], eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x54], edx
call fcn.004ae1f0
mov eax, dword [0x7283bc]
mov ecx, dword [0x728a84]
mov dword [ecx*4 + 0x7288f4], eax
mov edx, dword [0x728a84]
add esp, 4
inc edx
and eax, 0xfffffff5
cmp esi, ebx
mov dword [0x728a84], edx
mov dword [0x7283bc], eax
jne 0x4502d6
call fcn.004ae970
jmp 0x4502e5
xor edi, edi
mov dword [esp + 0x30], edi
jmp 0x450176
xor esi, esi
mov dword [esp + 0x24], esi
jmp 0x450217
push str.Camera_All
mov eax, esi
call fcn.004aea30
add esp, 4
mov eax, 1
mov ecx, esi
mov dword [esp + 0x1c], 0
call fcn.004bc7a0
cmp eax, ebx
je 0x450302
fld dword [eax + 0xc]
jmp 0x450310
fld dword [esp + 0x1c]
jmp 0x450310
fmul dword [0x715698]
call fcn.005f275c
push 0x47c35000
mov dword [esp + 0x4c], eax
mov eax, dword [0x8ebfd8]
push 0x3dcccccd
call fcn.00412840
mov edx, dword [0x8ebfd8]
push ecx
mov eax, esp
mov dword [eax], edx
mov eax, edx
cmp eax, ebx
je 0x450347
inc dword [eax + 4]
mov ebx, dword [0x72ed74]
lea eax, [esp + 0x40]
push eax
call fcn.00453770
mov al, byte [0x86bb48]
test al, al
mov dword [esp + 0x34], 0
mov dword [esp + 0x1c], 0x8cccd0
je 0x45039a
fld qword [0x8ca4b0]
fmul dword [0x7157e4]
call fcn.005f275c
mov ecx, 0xfa0
sub ecx, eax
mov ebx, 0x86bb48
lea eax, [esp + 0x1c]
mov dword [esp + 0x34], ecx
call fcn.00412f10
push 1
push 0
mov eax, edi
call fcn.004bb170
mov ecx, eax
call fcn.00535550
push str.shadow_01
lea ebx, [esp + 0x60]
mov esi, edi
call fcn.004c16d0
fld qword [0x8ca4b0]
mov eax, dword [esp + 0x5c]
fmul dword [0x7157e4]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
add edi, 0x78
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
add ebp, 0x78
mov dword [ebp], eax
mov dword [ebp + 4], ecx
mov dword [ebp + 8], edx
call fcn.005f275c
mov ecx, 0x1388
sub ecx, eax
mov eax, dword [esp + 0x18c]
xor esi, esi
cmp eax, 0xffffffff
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x18], esi
je 0x4505be
mov ebp, eax
imul ebp, ebp, 0x45c
movsx eax, word [ebp + 0x8162f8]
cdq
mov ecx, 9
idiv ecx
push esi
lea ecx, [edx + edx*2]
shl ecx, 6
add ecx, 0x8cda18
call fcn.004bbbd0
test eax, eax
je 0x45044b
mov ecx, dword [eax + 4]
mov esi, eax
inc ecx
mov dword [esp + 0x18], esi
mov dword [eax + 4], ecx
movsx eax, word [ebp + 0x816318]
mov ecx, esi
call fcn.004bd130
movsx eax, word [ebp + 0x8162f8]
cdq
mov ecx, 9
idiv ecx
mov ecx, dword [esi + 0xbc]
test edx, edx
setne dl
test ecx, ecx
mov byte [esp + 0x20], dl
je 0x450485
mov eax, dword [esp + 0x20]
push eax
call fcn.004bd3d0
mov esi, dword [esp + 0x18]
mov byte [esi + 0x4c], dl
movsx eax, word [ebp + 0x81631a]
mov ecx, esi
call fcn.004bd190
mov eax, dword [esp + 0x18c]
cmp eax, 8
setl cl
push ecx
call fcn.0045a080
movsx edx, word [ebp + 0x8162fc]
mov edi, dword [edx*4 + 0x727694]
push eax
call fcn.004bceb0
test byte [ebp + 0x816324], 1
je 0x4504f0
mov ecx, dword [esi + 0xbc]
test ecx, ecx
je 0x4504db
push 1
call fcn.004bce10
mov eax, dword [esi + 0x3c]
test al, 1
jne 0x4504f0
or eax, 1
push eax
mov ecx, esi
mov dword [esi + 0x3c], eax
call fcn.004bcc90
mov eax, dword [ebp + 0x816350]
test ah, 0x40
mov dword [esp + 0x14], 0x8cccd0
je case.default.0x450510
movsx eax, word [ebp + 0x816330]
dec eax
cmp eax, 8
ja case.default.0x450510
jmp dword [eax*4 + 0x450c24]
mov ebx, str.henrymorgan
jmp 0x450554
mov ebx, str.blackbeard
jmp 0x450554
mov ebx, str.williamkidd
jmp 0x450554
mov ebx, str.jeanlafitte
jmp 0x450554
mov ebx, str.stedebonnet
jmp 0x450554
mov ebx, str.lollonnais
jmp 0x450554
mov ebx, str.rocbrasiliano
jmp 0x450554
mov ebx, str.bartroberts
jmp 0x450554
mov ebx, str.jackrackham
lea eax, [esp + 0x14]
call fcn.00412f10
mov eax, dword [ebp + 0x816350]
test ah, 0x20
je 0x450576
mov ebx, str.ubervillain
lea eax, [esp + 0x14]
call fcn.00412f10
mov esi, dword [esp + 0x14]
mov eax, dword [esi - 4]
test eax, eax
je 0x45058d
mov ecx, dword [esp + 0x18]
push 0xffffffffffffffff
push esi
call fcn.004bd020
mov eax, dword [ebp + 0x81630c]
mov dword [esp + 0x38], eax
lea eax, [esi - 8]
test eax, eax
mov dword [esp + 0x20], 0xc5342000
mov dword [esp + 0x14], 0x45a48800
je 0x4505be
cmp eax, 0x8cccc8
je 0x4505be
push eax
call sub.MSVCR71.dll_void___cdecl_operator_delete___void__
add esp, 4
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x18c]
lea ecx, [ecx]
mov edx, dword [0x8eed78]
mov ecx, 0x8eed78
call dword [edx + 0x18]
test al, al
jne 0x4505fb
push 0
push str.The_audio_manager_has_not_been_properly_initialized_yet
mov eax, 1
call fcn.004887a0
add esp, 8
jmp 0x45069c
mov al, byte [0x8eaeff]
test al, al
jne 0x45069c
or eax, 0xffffffff
xor ecx, ecx
sub esp, 0x64
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xec], eax
mov esi, 0x8cccd0
lea eax, [esp + 0xcc]
mov ebx, esp
mov dword [esp + 0x12c], esi
mov dword [esp + 0xcc], 0x13
mov dword [esp + 0xd4], 0x3e
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xf4], 0x3f800000
mov dword [esp + 0x104], ecx
call fcn.00498530
mov edi, 0x8e87b4
call fcn.004a1410
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x18c]
mov dword [esp + 0xc8], esi
fld qword [0x8ca4b0]
fmul dword [0x7157e4]
call fcn.005f275c
mov edx, dword [esp + 0x40]
mov ecx, edx
neg ecx
sub ecx, eax
push 0
add edx, ecx
add edi, ecx
push 0
push 0
lea eax, [esp + 0xe0]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x34], edi
call fcn.004dc670
mov ecx, dword [esp + 0x3c]
add esp, 0xc
push 0
push 0xffffffffffffffff
push 0x64
push eax
push 0
push 0
push 0
call fcn.004bc350
mov esi, dword [esp + 0x48]
cmp edi, esi
push 0
push 0
push 0
jge 0x450752
lea eax, [esp + 0x170]
call fcn.004dc670
add esp, 0xc
push 0
push 0xffffffffffffffff
push 0x64
mov ecx, eax
push ecx
push 0
push 0
push 0
mov ecx, ebp
call fcn.004bc350
push edi
push 1
mov ecx, ebp
call fcn.004bc4e0
mov eax, ebp
call fcn.004bc620
push 0
push 0
push 0
lea eax, [esp + 0x14c]
mov byte [ebp + 0x24], 0
call fcn.004dc670
add esp, 0xc
push edi
push 1
mov edx, eax
jmp 0x4507a8
lea eax, [esp + 0x104]
call fcn.004dc670
add esp, 0xc
push 0
push 0xffffffffffffffff
push 0x64
push eax
push 0
push 0
push 0
mov ecx, ebp
call fcn.004bc350
mov ecx, edi
sub ecx, esi
push ecx
push 2
mov ecx, ebp
call fcn.004bc4e0
mov eax, ebp
call fcn.004bc620
push 0
push 0
push 0
lea eax, [esp + 0x128]
mov byte [ebp + 0x24], 0
call fcn.004dc670
add esp, 0xc
push edi
push 2
mov edx, eax
mov ecx, dword [esp + 0x34]
push 0x64
push edx
push 0
push 0
push 0
call fcn.004bc350
cmp ebx, 0xffffffff
je 0x450964
mov eax, dword [esp + 0x18]
test eax, eax
je 0x450964
fld dword [esp + 0x14]
fcomp dword [0x715954]
fnstsw ax
test ah, 5
jp 0x450964
fld qword [0x8ca498]
mov ebp, dword [esp + 0x18c]
fld dword [0x71555c]
mov esi, ebp
fmul st(1)
imul esi, esi, 0x45c
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
fmul dword [0x715798]
mov dword [esi + 0x81630c], 0xee38e391
fsubr dword [esp + 0x20]
fstp dword [esp + 0x20]
fld qword [0x8ca4b0]
fmul dword [0x715950]
call fcn.005f275c
mov ecx, eax
imul ecx, ecx, 0xe38e38
mov eax, 0x38e38e3
call fcn.004dcac0
mov ecx, 0x40000000
mov edi, eax
call fcn.004dcac0
movsx esi, word [esi + 0x8162f8]
mov ecx, esi
imul ecx, ecx, 0x44
mov ebx, eax
lea eax, [edi*4]
cdq
idiv dword [ecx + 0x725b08]
xor ecx, ecx
call fcn.004dcac0
fld dword [esp + 0x14]
mov edx, dword [0x8ca494]
mov ecx, eax
push edx
mov eax, 0x38e38e39
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov esi, eax
push 0xffffffffffffffff
imul esi, esi, 7
push ebx
push ecx
push 0x6e38e391
add esi, 0x4b
push 0
call fcn.005f275c
push eax
fld dword [esp + 0x3c]
call fcn.005f275c
mov ecx, dword [esp + 0x34]
push eax
push ecx
mov edx, esi
call fcn.004bc2e0
mov esi, eax
push 0x3e8
push 0
mov ecx, esi
call fcn.004bc4e0
mov edx, dword [0x8ca494]
shr edx, 1
push edx
push 9
mov ecx, esi
call fcn.004bc4e0
mov eax, 0xaaaaaaab
mul dword [0x8ca494]
shr edx, 1
push edx
push 0xb
mov ecx, esi
call fcn.004bc4e0
push 0x40000000
mov ecx, esi
call fcn.004bd400
fld dword [esp + 0x14]
fcomp dword [0x71594c]
fnstsw ax
test ah, 1
jne 0x45094c
fld dword [0x715954]
fsub dword [esp + 0x14]
fmul dword [0x7156e0]
fmul dword [0x71555c]
call fcn.005f275c
test eax, eax
jge 0x450938
xor eax, eax
jmp 0x450942
cmp eax, 0x64
jle 0x450942
mov eax, 0x64
push 1
push eax
mov ecx, esi
call fcn.004c28d0
mov eax, esi
mov ecx, ebp
call fcn.0045a720
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x18c]
mov esi, dword [esp + 0x44]
call fcn.004b0360
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4509a3
fld qword [0x8ca4b0]
fmul dword [0x715698]
call fcn.005f275c
cmp dword [esp + 0x34], eax
jg 0x4509a3
mov eax, dword [esp + 0x1c]
push eax
mov dword [0x85c11c], 0x64
call fcn.004b03f0
add esp, 4
fld qword [0x8ca4b0]
fmul dword [0x715698]
call fcn.005f275c
cmp dword [esp + 0x4c], eax
jg 0x4509d8
mov ecx, dword [0x85c26c]
mov eax, dword [0x85c268]
add ecx, 0xffffffd0
push 0xffffffffffffffff
push ecx
add eax, 0xffffffb2
xor cl, cl
call fcn.0042feb0
add esp, 8
push 0
push 0
push 0
call fcn.004d1a40
add esp, 0xc
push 5
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
call fcn.0042e1a0
add esp, 4
cmp eax, 0x1b
je 0x450a1d
cmp eax, 0x20
je 0x450a1d
cmp eax, 0xd
je 0x450a1d
mov eax, dword [0x86e35c]
test eax, eax
jne 0x450a1d
mov al, byte [0x8ccc27]
test al, al
je 0x4505d0
cmp ebx, 0xffffffff
je 0x450a32
mov edx, dword [esp + 0x38]
imul ebx, ebx, 0x45c
mov dword [ebx + 0x81630c], edx
push 0
push 0
push 0xffffffffffffffff
push 0x31
call fcn.0043a8d0
push 0x5dc
call fcn.0046b6f0
mov eax, dword [0x85c164]
mov ebx, dword [sym.imp.MSVCR71.dll_rand]
or eax, 0x400
add esp, 0x14
mov dword [0x85c164], eax
xor edi, edi
call ebx
cdq
mov ecx, 6
idiv ecx
mov eax, edx
add eax, ecx
movsx ecx, byte [0x86bb30]
inc ecx
cdq
idiv ecx
cmp edi, eax
jge 0x450ad2
add dword [0x85c150], 0x1770
call fcn.004603e0
mov edx, dword [0x7273b4]
mov eax, dword [0x85c140]
mov ecx, dword [0x85c150]
add eax, edx
push eax
mov eax, 0x57619f1
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
mov ecx, 0xc
idiv ecx
mov esi, 0x8ebf58
push edx
push str._MONTH__NUM_n
call fcn.004f7660
add esp, 0xc
inc edi
jmp 0x450a63
mov esi, dword [0x85c164]
push 0xbf800000
push 0xffffffffffffffff
and esi, 0xfffffbff
mov dword [0x85c164], esi
push 0xffffffffffffffff
push 0x39
or esi, 0xffffffff
xor eax, eax
or ecx, 0xffffffff
call fcn.00488840
mov edx, dword [0x816308]
mov edi, dword [0x816304]
push 0
xor al, al
mov dword [esp + 0x4c], edx
call section..text
mov esi, dword [esp + 0x50]
add esp, 0x10
test esi, esi
mov eax, esp
mov dword [eax], esi
je 0x450b27
inc dword [esi + 4]
mov ebx, dword [0x72ed74]
lea eax, [esp + 0x40]
push eax
call fcn.00453770
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x450b4a
dec dword [ecx + 4]
jne 0x450b4a
mov edx, dword [ecx]
push 1
call dword [edx]
call fcn.004ae970
mov eax, dword [0x728a84]
mov ecx, dword [esp + 0x50]
dec eax
mov dword [0x728a84], eax
mov eax, dword [eax*4 + 0x7288f4]
push ecx
mov dword [0x7283bc], eax
call fcn.004ae1f0
mov edx, dword [esp + 0x3c]
add esp, 4
push 0x3f800000
push 0x3e
mov dword [0x816304], edi
mov dword [0x816308], edx
call fcn.00488db0
mov ecx, dword [esp + 0x20]
add esp, 8
test ecx, ecx
je 0x450ba5
dec dword [ecx + 4]
jne 0x450ba5
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff8
je 0x450bbe
cmp eax, 0x8cccc8
je 0x450bbe
push eax
call sub.MSVCR71.dll_void___cdecl_operator_delete___void__
add esp, 4
test esi, esi
je 0x450bcf
dec dword [esi + 4]
jne 0x450bcf
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx]
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x450be2
dec dword [ecx + 4]
jne 0x450be2
mov eax, dword [ecx]
push 1
call dword [eax]
dec dword [ebp + 4]
jne 0x450bf0
mov edx, dword [ebp]
push 1
mov ecx, ebp
call dword [edx]
mov ecx, dword [esp + 0x2c]
dec dword [ecx + 4]
jne 0x450bff
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [esp + 0x30]
dec dword [ecx + 4]
jne 0x450c0e
mov edx, dword [ecx]
push 1
call dword [edx]
mov eax, dword [esp + 0x54]
push eax
call dword [sym.imp.USER32.dll_SetCursor]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x178
ret