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

Disassembly:
sub esp, 0xcc
push ebx
push ebp
push esi
push edi
xor eax, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
mov byte [esp + 0x17], 0
mov dword [esp + 0xd4], eax
xor ebp, ebp
lea ecx, [ecx]
mov bl, byte [eax + 0x86bb20]
xor ecx, ecx
test bl, bl
setne cl
add ebp, ecx
inc eax
cmp eax, 0x11
jl 0x443a40
xor edi, edi
cmp ebp, 5
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], edi
jle 0x443b5f
push 0x2a0
call fcn.005354b8
add esp, 4
test eax, eax
je 0x443acb
push 1
push edi
push 0xbf800000
push 0x41800000
push 0x43b40000
push 0xc1200000
push 0x43d60000
push 0x445c0000
push str.ScrollBarDOWN.nif
push str.ScrollBarUP.nif
push str.ScrollBarThumb.nif
push str.ScrollBarTile.tga
push str.StatusScroller
mov ebx, eax
call fcn.005049f0
test eax, eax
je 0x443acb
mov ecx, dword [eax + 4]
mov edi, eax
inc ecx
mov dword [esp + 0x38], edi
mov dword [eax + 4], ecx
mov edx, dword [0x8ccbe8]
mov esi, dword [edx + 0x10]
push edi
mov ecx, esi
call fcn.005056f0
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
mov esi, 1
push esi
push edi
call dword [eax + 0x70]
mov ecx, edi
call fcn.00535990
push esi
push 0
mov ecx, edi
call fcn.00535550
mov cl, byte [edi + 0x29c]
test cl, cl
mov ecx, dword [edi + 0x298]
lea eax, [ebp - 5]
je 0x443b21
test eax, eax
mov dword [ecx + 0x294], eax
mov dword [ecx + 0x290], esi
jne 0x443b41
jmp 0x443b3b
test eax, eax
mov dword [ecx + 0x290], eax
mov dword [ecx + 0x294], 0
jne 0x443b3b
mov dword [ecx + 0x290], esi
mov dword [ecx + 0x294], esi
mov al, byte [edi + 0x29c]
test al, al
mov esi, dword [edi + 0x298]
push 0
je 0x443b5a
call fcn.0050dd80
jmp 0x443b5f
call fcn.0050dd00
mov dword [esp + 0x18], 0
mov al, byte [0x8ccc27]
test al, al
je 0x443b75
mov byte [esp + 0x17], 1
mov ecx, dword [0x8ccbe8]
xor ebp, ebp
push ebp
push ecx
call fcn.004b2b90
cmp edi, ebp
mov word [0x86e330], bp
je 0x443c47
mov eax, dword [0x85c0fc]
mov esi, dword [esp + 0x18]
xor bl, bl
cmp eax, ebp
jle 0x443bb0
mov edx, dword [esp + 0x3c]
add edx, 0xfffffffb
cmp esi, edx
jge 0x443bd9
inc esi
jmp 0x443bb7
jge 0x443bd9
cmp esi, ebp
je 0x443bd9
dec esi
push 0xffffffffffffffff
push 0xbf800000
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x36
push 0x8ca278
mov dword [esp + 0x34], esi
mov bl, 1
call fcn.00488920
add esp, 0x1c
test bl, bl
mov dword [0x85c0fc], ebp
jne 0x443c2a
mov al, byte [edi + 0x29c]
test al, al
mov eax, dword [edi + 0x298]
je 0x443c07
fld dword [eax + 0x2a4]
fdiv dword [eax + 0x2ac]
fimul dword [eax + 0x294]
jmp 0x443c19
fld dword [eax + 0x2a0]
fdiv dword [eax + 0x2a8]
fimul dword [eax + 0x290]
fadd dword [0x70de8c]
call fcn.005f275c
mov esi, eax
mov dword [esp + 0x18], esi
mov al, byte [edi + 0x29c]
test al, al
push esi
mov esi, dword [edi + 0x298]
je 0x443c42
call fcn.0050dd80
jmp 0x443c47
call fcn.0050dd00
mov ecx, dword [0x728638]
mov edx, dword [0x72863c]
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [0x728640]
mov dword [eax + 4], edx
push str.The_Illustrious_Captain__PCNAME
mov esi, 0x8ebf58
mov dword [eax + 8], ecx
call fcn.004f7660
mov edx, dword [0x7281ec]
mov eax, dword [0x7281dc]
push ebp
push 0xffffffffffffffff
push 1
push 0xffffffffffffffff
push 0x64
add edx, 0xffffffe2
push edx
push eax
mov eax, dword [0x8cb568]
push 0x86bb48
mov dword [0x85c11c], 0x64
call fcn.004b0b40
movsx ecx, word [0x86baa8]
push ecx
mov ecx, dword [0x7273b4]
add ecx, 0xfffff9c0
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push str.You_started_your_career_in__ERAS_as__ANATIONALITY_captain.
call fcn.004f7660
mov ecx, dword [0x8cc92c]
mov edx, dword [0x85c158]
add esp, 0x3c
push ecx
push edx
push str.You_are_currently__ADIFFICULTY_captain_with__SPECIALSKILL.
call fcn.004f7680
add esp, 0xc
call fcn.004048a0
push eax
mov eax, dword [0x85c140]
add eax, 0x12
push eax
push str.You_are_now__NUM_years_old_and_in__HEALTH_health.
call fcn.004f7680
mov ax, word [0x86bb1a]
add esp, 0xc
cmp ax, 1
jle 0x443d2e
movsx ecx, ax
push ecx
push str.Youve_been_at_sea_for__NUM_months.
call fcn.004f7680
add esp, 8
call fcn.00404810
mov edx, dword [0x86bab0]
push eax
push edx
push str.Your_crew_of__NUM_is__HAPPY.
mov esi, 0x8ebf58
call fcn.004f7680
add esp, 0xc
push 0
push 0x64
call fcn.00487950
mov eax, dword [0x7281ec]
mov ecx, dword [0x7281dc]
push 0
push 0xffffffffffffffff
push 1
push 0xffffffffffffffff
push 0x43
push eax
push ecx
push 0x86bb48
xor eax, eax
call fcn.004b0b40
mov ebx, dword [0x7281f0]
push str.Fleet_stores
call fcn.004f7660
mov esi, dword [0x7281dc]
add esp, 0x2c
push 0
push 0xffffffffffffffff
push 1
push 0xffffffffffffffff
add ebx, 0x12
push 0x50
lea edx, [ebx - 0x14]
push edx
push esi
push 0x86bb48
xor eax, eax
mov dword [0x85c11c], 0x50
call fcn.004b0b40
add ebx, 0x18
add esi, 0x40
lea eax, [ebx + 3]
add esp, 0x20
xor edi, edi
lea ebp, [ebx - 4]
mov dword [esp + 0x30], esi
mov dword [esp + 0x1c], eax
add ebx, 0xfffffff3
mov ecx, dword [edi*4 + 0x86bab4]
push ecx
push edi
push str._ITEM:__NUM
mov esi, 0x8ebf58
call fcn.004f7660
mov edx, dword [esp + 0x3c]
add esp, 0xc
push 0
push 0xffffffffffffffff
push 1
push 0xffffffffffffffff
push 0x50
push ebx
push edx
push 0x86bb48
xor eax, eax
mov dword [0x85c11c], 0x50
call fcn.004b0b40
add esp, 0x20
push 0
push 0x42400000
push ebp
lea eax, [edi + edi*2]
shl eax, 6
push 0x59
add eax, 0x8cfc98
push eax
call fcn.004bc130
cmp edi, 1
jne 0x443eaf
mov ecx, dword [0x86bb34]
mov eax, dword [0x86bab0]
and ecx, 4
or ecx, 8
shr ecx, 2
inc eax
cdq
idiv ecx
mov ecx, eax
test ecx, ecx
je 0x443e6d
mov eax, dword [0x86bab8]
lea edx, [eax + eax*4]
mov eax, dword [0x8cc9ec]
lea eax, [eax + edx*2]
cdq
idiv ecx
jmp 0x443e72
mov eax, 0xc
push eax
push str.__NUM_months_
mov esi, 0x8ebf58
call fcn.004f7660
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x38]
push 0
push 0xffffffffffffffff
push 1
push 0xffffffffffffffff
push 0x32
push ecx
push edx
push 0x86bb48
xor eax, eax
mov dword [0x85c11c], 0x32
call fcn.004b0b40
add esp, 0x28
mov ecx, dword [esp + 0x1c]
add ecx, 0x20
add ebx, 0x20
add ebp, 0x20
test edi, edi
mov dword [esp + 0x1c], ecx
jne 0x443ed3
mov eax, ecx
add ebx, 4
add ebp, 4
add eax, 4
mov dword [esp + 0x1c], eax
inc edi
cmp edi, 6
jle 0x443dd6
mov ebx, dword [0x7281f0]
mov edi, dword [0x7281e0]
xor ebp, ebp
push ebp
push 0x28
add ebx, 0x12
add edi, 0xa
call fcn.00487950
push str.Special_items
mov esi, 0x8ebf58
call fcn.004f7660
add esp, 0xc
push ebp
push 0xffffffffffffffff
push 1
push 0xffffffffffffffff
push 0x50
lea eax, [ebx - 0x14]
push eax
lea ecx, [edi + 2]
push ecx
push 0x86bb48
xor eax, eax
mov dword [0x85c11c], 0x50
call fcn.004b0b40
add ebx, 0x18
add edi, 0x14
lea edx, [ebx - 0xc]
lea eax, [ebx - 8]
mov dword [esp + 0x3c], edi
add esp, 0x20
mov dword [esp + 0x24], ebx
xor edi, edi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], eax
add ebx, 0xfffffff3
mov eax, dword [esp + 0x2c]
cmp eax, 5
jge 0x4443e5
cmp eax, dword [esp + 0x3c]
jge 0x4443e5
cmp byte [edi + 0x86bb20], 1
jne 0x4440fd
mov ecx, dword [esp + 0x30]
mov edx, ecx
inc ecx
mov dword [esp + 0x30], ecx
cmp edx, dword [esp + 0x18]
jl 0x4440fd
push edi
push str._PROP1
mov esi, 0x8ebf58
call fcn.004f7660
mov ebp, dword [esp + 0x24]
push 0
push 0xffffffffffffffff
push 1
push 0xffffffffffffffff
push 0x50
push ebx
add ebp, 0x28
push ebp
push 0x86bb48
xor eax, eax
mov dword [0x85c11c], 0x50
call fcn.004b0b40
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
mov eax, 0x11
add edx, eax
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x48]
add esi, eax
add edx, eax
push edi
mov dword [esp + 0x54], esi
push str._PROP3
mov esi, 0x8ebf58
add ebx, eax
mov dword [esp + 0x50], edx
call fcn.004f7660
push 0
push 0x15e
push 0x40000001
push 0xffffffffffffffff
push 0x32
push ebx
push ebp
push 0x86bb48
xor eax, eax
mov dword [0x85c11c], 0x32
call fcn.004b0b40
lea eax, [esp + 0x9c]
add esp, 0x50
push eax
mov eax, edi
call fcn.0042e8d0
mov ecx, dword [esp + edi*4 + 0x54]
mov esi, eax
mov eax, dword [esi]
add esp, 4
cmp ecx, eax
je 0x44406a
test ecx, ecx
je 0x44405d
dec dword [ecx + 4]
jne 0x44405d
mov edx, dword [ecx]
push 1
call dword [edx]
mov esi, dword [esi]
test esi, esi
mov dword [esp + edi*4 + 0x50], esi
je 0x44406a
inc dword [esi + 4]
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x444089
mov esi, dword [eax + 4]
mov ecx, eax
add eax, 4
dec esi
mov edx, esi
test edx, edx
mov dword [eax], esi
jne 0x444089
mov eax, dword [ecx]
push 1
call dword [eax]
mov esi, dword [esp + edi*4 + 0x50]
test esi, esi
je 0x4440cf
fild dword [esi + 0x38]
push 0
push 0x41880000
fmul dword [0x7158dc]
fiadd dword [esp + 0x28]
call fcn.005f275c
fild dword [esi + 0x34]
mov ecx, dword [esp + 0x24]
add ecx, 0xf
fmul dword [0x7158dc]
mov dword [esp + 0x3c], ecx
push eax
fiadd dword [esp + 0x40]
call fcn.005f275c
push eax
push esi
call fcn.004bc130
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
mov eax, 0x1d
add ebp, eax
add edx, eax
add ecx, eax
add ebx, eax
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], eax
cmp byte [edi + 0x86bb20], 2
jl 0x4443e5
mov ecx, dword [esp + 0x30]
mov edx, ecx
inc ecx
mov dword [esp + 0x30], ecx
cmp edx, dword [esp + 0x18]
jl 0x4443e5
cmp eax, 5
jge 0x4443e5
push edi
push str._PROP2._n
mov esi, 0x8ebf58
call fcn.004f7660
mov ebp, 0x8cccd0
mov eax, 0x86bb48
add esp, 8
mov dword [esp + 0x34], ebp
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x444150
sub eax, edx
mov esi, eax
js 0x4441c1
mov eax, 0x86bb48
cmp eax, 0x8cccd0
je 0x4441c1
test esi, esi
je 0x4441a7
jle 0x44418e
cmp esi, dword [0x8cccc8]
jle 0x44418b
lea eax, [esi + 0x20]
and eax, 0xffffffe0
dec eax
lea ecx, [esp + 0x34]
call fcn.004f49c0
mov ebp, dword [esp + 0x34]
mov dword [ebp - 4], esi
push esi
push 0x86bb48
push ebp
call dword [sym.imp.MSVCR71.dll_memmove]
mov ecx, dword [ebp - 4]
add esp, 0xc
mov byte [ecx + ebp], 0
jmp 0x4441c1
mov eax, dword [0x8ccccc]
test eax, eax
je 0x4441c1
mov byte [0x8cccd0], 0
mov dword [0x8ccccc], 0
push 0x7015b8
lea edx, [esp + 0x38]
push edx
call fcn.004f3280
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
push 0
push 0xffffffffffffffff
push 1
push 0xffffffffffffffff
push 0x50
push ebx
add ebp, 0x28
push ebp
push eax
xor eax, eax
mov dword [0x85c11c], 0x50
call fcn.004b0b40
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
mov eax, 0x11
add edx, eax
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x40]
add esi, eax
add edx, eax
push edi
mov dword [esp + 0x4c], esi
push str._PROP3
mov esi, 0x8ebf58
add ebx, eax
mov dword [esp + 0x48], edx
call fcn.004f7660
push 0
push 0x15e
push 0x40000001
push 0xffffffffffffffff
push 0x32
push ebx
push ebp
push 0x86bb48
xor eax, eax
mov dword [0x85c11c], 0x32
call fcn.004b0b40
lea ecx, [esp + 0x90]
add esp, 0x48
push ecx
mov eax, edi
call fcn.0042e8d0
mov ecx, dword [esp + edi*4 + 0x54]
mov esi, eax
mov eax, dword [esi]
add esp, 4
cmp ecx, eax
je 0x444293
test ecx, ecx
je 0x444286
dec dword [ecx + 4]
jne 0x444286
mov edx, dword [ecx]
push 1
call dword [edx]
mov esi, dword [esi]
test esi, esi
mov dword [esp + edi*4 + 0x50], esi
je 0x444293
inc dword [esi + 4]
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4442b2
mov esi, dword [eax + 4]
mov ecx, eax
add eax, 4
dec esi
mov edx, esi
test edx, edx
mov dword [eax], esi
jne 0x4442b2
mov eax, dword [ecx]
push 1
call dword [eax]
mov esi, dword [esp + edi*4 + 0x50]
test esi, esi
je 0x4442f8
fild dword [esi + 0x38]
push 0
push 0x41400000
fmul dword [0x7158d8]
fiadd dword [esp + 0x30]
call fcn.005f275c
fild dword [esi + 0x34]
mov ecx, dword [esp + 0x24]
add ecx, 0xfffffff4
fmul dword [0x7158d8]
mov dword [esp + 0x4c], ecx
push eax
fiadd dword [esp + 0x50]
call fcn.005f275c
push eax
push esi
call fcn.004bc130
lea edx, [esp + 0x40]
lea eax, [edi + 0x11]
push edx
call fcn.0042e8d0
mov ecx, dword [esp + edi*4 + 0x98]
mov esi, eax
mov eax, dword [esi]
add esp, 4
cmp ecx, eax
je 0x444336
test ecx, ecx
je 0x444326
dec dword [ecx + 4]
jne 0x444326
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [esi]
test eax, eax
mov dword [esp + edi*4 + 0x94], eax
je 0x444336
inc dword [eax + 4]
mov eax, dword [esp + 0x40]
test eax, eax
je 0x444355
mov esi, dword [eax + 4]
mov ecx, eax
add eax, 4
dec esi
mov edx, esi
test edx, edx
mov dword [eax], esi
jne 0x444355
mov edx, dword [ecx]
push 1
call dword [edx]
mov esi, dword [esp + edi*4 + 0x94]
test esi, esi
je 0x44439e
fild dword [esi + 0x38]
push 0
push 0x41a00000
fmul dword [0x715730]
fiadd dword [esp + 0x28]
call fcn.005f275c
fild dword [esi + 0x34]
push eax
mov eax, dword [esp + 0x28]
fmul dword [0x715730]
add eax, 0xf
mov dword [esp + 0x50], eax
fiadd dword [esp + 0x50]
call fcn.005f275c
push eax
push esi
call fcn.004bc130
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
mov eax, 0x1d
add edx, eax
add ebp, eax
add esi, eax
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x2c]
add ebx, eax
mov eax, dword [esp + 0x34]
inc edx
add eax, 0xfffffff8
mov dword [esp + 0x28], ebp
mov dword [esp + 0x20], esi
mov dword [esp + 0x2c], edx
je 0x4443e5
cmp eax, 0x8cccc8
je 0x4443e5
push eax
call sub.MSVCR71.dll_void___cdecl_operator_delete___void__
add esp, 4
inc edi
cmp edi, 0x11
jl 0x443f5e
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x44443c
push str.none
mov esi, 0x8ebf58
call fcn.004f7660
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
add esp, 4
push 0
push 0xffffffffffffffff
push 1
push 0xffffffffffffffff
push 0x50
add ecx, 0xfffffff3
push ecx
add edx, 0x20
push edx
push 0x86bb48
xor eax, eax
mov dword [0x85c11c], 0x50
call fcn.004b0b40
add esp, 0x20
mov edi, dword [0x8ccbe8]
push 0
call fcn.004b2e50
cmp eax, 1
je 0x444458
cmp eax, 0x1b
je 0x444458
cmp eax, 0x20
jne 0x44445d
mov byte [esp + 0x17], 1
cmp eax, 0x126
mov edi, dword [esp + 0x38]
jne 0x44448d
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4444c7
dec eax
mov cl, byte [edi + 0x29c]
test cl, cl
mov esi, dword [edi + 0x298]
mov dword [esp + 0x18], eax
push eax
je 0x4444a6
call fcn.0050dd80
jmp 0x4444ab
cmp eax, 0x128
jne 0x4444c7
mov eax, dword [esp + 0x3c]
lea ecx, [eax - 5]
mov eax, dword [esp + 0x18]
cmp eax, ecx
jge 0x4444c7
inc eax
jmp 0x444471
call fcn.0050dd00
push 0xffffffffffffffff
push 0xbf800000
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x36
push 0x8ca278
call fcn.00488920
add esp, 0x1c
mov al, byte [esp + 0x17]
test al, al
je 0x443b67
test edi, edi
je 0x444520
mov edx, dword [0x8ccbe8]
mov ecx, dword [edx + 0x10]
push edi
call fcn.005057b0
mov ecx, dword [edi + 0x24]
mov eax, dword [ecx]
push edi
lea edx, [esp + 0x44]
push edx
call dword [eax + 0x74]
mov eax, dword [esp + 0x40]
test eax, eax
je 0x444513
mov esi, dword [eax + 4]
mov ecx, eax
add eax, 4
dec esi
mov edx, esi
test edx, edx
mov dword [eax], esi
jne 0x444513
mov eax, dword [ecx]
push 1
call dword [eax]
dec dword [edi + 4]
jne 0x444520
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx]
lea esi, [esp + 0xd8]
mov edi, 0x22
lea esp, [esp]
mov ecx, dword [esi - 4]
sub esi, 4
test ecx, ecx
je 0x444545
dec dword [ecx + 4]
jne 0x444545
mov eax, dword [ecx]
push 1
call dword [eax]
dec edi
jne 0x444530
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xcc
ret