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

Disassembly:
sub esp, 0xe0
push ebx
push ebp
xor ebp, ebp
push esi
or eax, 0xffffffff
push edi
mov ebx, ebp
push 0xc0
mov byte [esp + 0x1b], 0
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x68], ebp
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebp
call fcn.005354b8
mov edi, eax
xor esi, esi
add esp, 4
cmp edi, esi
je 0x43e547
mov eax, dword [0x8ec008]
mov edx, dword [0x729444]
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push esi
push esi
push esi
mov dword [edi + 4], esi
mov dword [edi], 0x6ff14c
push esi
mov dword [edi + 0x1c], esi
inc edx
push eax
mov dword [edi + 0x64], esi
mov eax, str.tartane.dds
mov ecx, edi
mov dword [0x729444], edx
mov dword [edi + 0xbc], esi
call fcn.004be370
jmp 0x43e549
xor edi, edi
cmp ebp, edi
je 0x43e56a
cmp ebp, esi
je 0x43e55f
dec dword [ebp + 4]
jne 0x43e55f
mov eax, dword [ebp]
push 1
mov ecx, ebp
call dword [eax]
cmp edi, esi
mov dword [esp + 0x44], edi
je 0x43e56a
inc dword [edi + 4]
push 0xc0
call fcn.005354b8
mov edi, eax
add esp, 4
cmp edi, esi
je 0x43e5c5
mov eax, dword [0x8ec008]
mov edx, dword [0x729444]
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push esi
push esi
push esi
mov dword [edi + 4], esi
mov dword [edi], 0x6ff14c
push esi
mov dword [edi + 0x1c], esi
inc edx
push eax
mov dword [edi + 0x64], esi
xor ebx, ebx
mov eax, str.sloop.dds
mov ecx, edi
mov dword [0x729444], edx
mov dword [edi + 0xbc], esi
call fcn.004be370
mov ebx, dword [esp + 0x48]
xor esi, esi
jmp 0x43e5c7
xor edi, edi
cmp ebx, edi
je 0x43e5e7
cmp ebx, esi
je 0x43e5dc
dec dword [ebx + 4]
jne 0x43e5dc
mov edx, dword [ebx]
push 1
mov ecx, ebx
call dword [edx]
cmp edi, esi
mov dword [esp + 0x48], edi
je 0x43e5e7
inc dword [edi + 4]
push 0xc0
call fcn.005354b8
mov edi, eax
add esp, 4
cmp edi, esi
je 0x43e63e
mov eax, dword [0x8ec008]
mov edx, dword [0x729444]
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push esi
push esi
push esi
mov dword [edi + 4], esi
mov dword [edi], 0x6ff14c
push esi
mov dword [edi + 0x1c], esi
inc edx
push eax
mov dword [edi + 0x64], esi
xor ebx, ebx
mov eax, str.brigantine.dds
mov ecx, edi
mov dword [0x729444], edx
mov dword [edi + 0xbc], esi
call fcn.004be370
xor esi, esi
jmp 0x43e640
xor edi, edi
mov ecx, dword [esp + 0x4c]
cmp ecx, edi
je 0x43e662
cmp ecx, esi
je 0x43e657
dec dword [ecx + 4]
jne 0x43e657
mov eax, dword [ecx]
push 1
call dword [eax]
cmp edi, esi
mov dword [esp + 0x4c], edi
je 0x43e662
inc dword [edi + 4]
push 0xc0
call fcn.005354b8
mov edi, eax
add esp, 4
cmp edi, esi
je 0x43e6b9
mov eax, dword [0x8ec008]
mov edx, dword [0x729444]
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push esi
push esi
push esi
mov dword [edi + 4], esi
mov dword [edi], 0x6ff14c
push esi
mov dword [edi + 0x1c], esi
inc edx
push eax
mov dword [edi + 0x64], esi
xor ebx, ebx
mov eax, str.barque.dds
mov ecx, edi
mov dword [0x729444], edx
mov dword [edi + 0xbc], esi
call fcn.004be370
xor esi, esi
jmp 0x43e6bb
xor edi, edi
mov ecx, dword [esp + 0x50]
cmp ecx, edi
je 0x43e6dd
cmp ecx, esi
je 0x43e6d2
dec dword [ecx + 4]
jne 0x43e6d2
mov edx, dword [ecx]
push 1
call dword [edx]
cmp edi, esi
mov dword [esp + 0x50], edi
je 0x43e6dd
inc dword [edi + 4]
push 0xc0
call fcn.005354b8
mov edi, eax
add esp, 4
cmp edi, esi
je 0x43e734
mov eax, dword [0x8ec008]
mov edx, dword [0x729444]
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push esi
push esi
push esi
mov dword [edi + 4], esi
mov dword [edi], 0x6ff14c
push esi
mov dword [edi + 0x1c], esi
inc edx
push eax
mov dword [edi + 0x64], esi
xor ebx, ebx
mov eax, str.fluyt.dds
mov ecx, edi
mov dword [0x729444], edx
mov dword [edi + 0xbc], esi
call fcn.004be370
xor esi, esi
jmp 0x43e736
xor edi, edi
mov ecx, dword [esp + 0x54]
cmp ecx, edi
je 0x43e758
cmp ecx, esi
je 0x43e74d
dec dword [ecx + 4]
jne 0x43e74d
mov eax, dword [ecx]
push 1
call dword [eax]
cmp edi, esi
mov dword [esp + 0x54], edi
je 0x43e758
inc dword [edi + 4]
push 0xc0
call fcn.005354b8
mov edi, eax
add esp, 4
cmp edi, esi
je 0x43e7af
mov eax, dword [0x8ec008]
mov edx, dword [0x729444]
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push esi
push esi
push esi
mov dword [edi + 4], esi
mov dword [edi], 0x6ff14c
push esi
mov dword [edi + 0x1c], esi
inc edx
push eax
mov dword [edi + 0x64], esi
xor ebx, ebx
mov eax, str.merchantman.dds
mov ecx, edi
mov dword [0x729444], edx
mov dword [edi + 0xbc], esi
call fcn.004be370
xor esi, esi
jmp 0x43e7b1
xor edi, edi
mov ecx, dword [esp + 0x58]
cmp ecx, edi
je 0x43e7d3
cmp ecx, esi
je 0x43e7c8
dec dword [ecx + 4]
jne 0x43e7c8
mov edx, dword [ecx]
push 1
call dword [edx]
cmp edi, esi
mov dword [esp + 0x58], edi
je 0x43e7d3
inc dword [edi + 4]
push 0xc0
call fcn.005354b8
mov edi, eax
add esp, 4
cmp edi, esi
je 0x43e82a
mov eax, dword [0x8ec008]
mov edx, dword [0x729444]
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push esi
push esi
push esi
mov dword [edi + 4], esi
mov dword [edi], 0x6ff14c
push esi
mov dword [edi + 0x1c], esi
inc edx
push eax
mov dword [edi + 0x64], esi
xor ebx, ebx
mov eax, str.frigate.dds
mov ecx, edi
mov dword [0x729444], edx
mov dword [edi + 0xbc], esi
call fcn.004be370
xor esi, esi
jmp 0x43e82c
xor edi, edi
mov ecx, dword [esp + 0x5c]
cmp ecx, edi
je 0x43e84e
cmp ecx, esi
je 0x43e843
dec dword [ecx + 4]
jne 0x43e843
mov eax, dword [ecx]
push 1
call dword [eax]
cmp edi, esi
mov dword [esp + 0x5c], edi
je 0x43e84e
inc dword [edi + 4]
push 0xc0
call fcn.005354b8
mov edi, eax
add esp, 4
cmp edi, esi
je 0x43e8a5
mov eax, dword [0x8ec008]
mov edx, dword [0x729444]
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push esi
push esi
push esi
mov dword [edi + 4], esi
mov dword [edi], 0x6ff14c
push esi
mov dword [edi + 0x1c], esi
inc edx
push eax
mov dword [edi + 0x64], esi
xor ebx, ebx
mov eax, str.fastgalleon.dds
mov ecx, edi
mov dword [0x729444], edx
mov dword [edi + 0xbc], esi
call fcn.004be370
xor esi, esi
jmp 0x43e8a7
xor edi, edi
mov ecx, dword [esp + 0x60]
cmp ecx, edi
je 0x43e8c9
cmp ecx, esi
je 0x43e8be
dec dword [ecx + 4]
jne 0x43e8be
mov edx, dword [ecx]
push 1
call dword [edx]
cmp edi, esi
mov dword [esp + 0x60], edi
je 0x43e8c9
inc dword [edi + 4]
push 0xc0
call fcn.005354b8
mov edi, eax
add esp, 4
cmp edi, esi
je 0x43e920
mov eax, dword [0x8ec008]
mov edx, dword [0x729444]
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push esi
push esi
push esi
mov dword [edi + 4], esi
mov dword [edi], 0x6ff14c
push esi
mov dword [edi + 0x1c], esi
inc edx
push eax
mov dword [edi + 0x64], esi
xor ebx, ebx
mov eax, str.treasuregalleon.dds
mov ecx, edi
mov dword [0x729444], edx
mov dword [edi + 0xbc], esi
call fcn.004be370
xor esi, esi
jmp 0x43e922
xor edi, edi
cmp ebp, edi
je 0x43e943
cmp ebp, esi
je 0x43e938
dec dword [ebp + 4]
jne 0x43e938
mov eax, dword [ebp]
push 1
mov ecx, ebp
call dword [eax]
cmp edi, esi
mov dword [esp + 0x64], edi
je 0x43e943
inc dword [edi + 4]
xor ebp, ebp
push 0xc0
mov dword [esp + 0x88], ebp
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], ebp
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x80], ebp
mov dword [esp + 0x84], ebp
call fcn.005354b8
mov edi, eax
add esp, 4
cmp edi, esi
je 0x43e9c5
mov eax, dword [0x8ec008]
mov edx, dword [0x729444]
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push esi
push esi
push esi
mov dword [edi + 4], esi
mov dword [edi], 0x6ff14c
push esi
mov dword [edi + 0x1c], esi
inc edx
push eax
mov dword [edi + 0x64], esi
xor ebx, ebx
mov eax, str.spec_carpenter.dds
mov ecx, edi
mov dword [0x729444], edx
mov dword [edi + 0xbc], esi
call fcn.004be370
xor esi, esi
jmp 0x43e9c7
xor edi, edi
cmp ebp, edi
je 0x43e9e8
cmp ebp, esi
je 0x43e9dd
dec dword [ebp + 4]
jne 0x43e9dd
mov edx, dword [ebp]
push 1
mov ecx, ebp
call dword [edx]
cmp edi, esi
mov dword [esp + 0x68], edi
je 0x43e9e8
inc dword [edi + 4]
push 0xc0
call fcn.005354b8
mov edi, eax
add esp, 4
cmp edi, esi
je 0x43ea3f
mov eax, dword [0x8ec008]
mov edx, dword [0x729444]
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push esi
push esi
push esi
mov dword [edi + 4], esi
mov dword [edi], 0x6ff14c
push esi
mov dword [edi + 0x1c], esi
inc edx
push eax
mov dword [edi + 0x64], esi
xor ebx, ebx
mov eax, str.spec_sailmaker.dds
mov ecx, edi
mov dword [0x729444], edx
mov dword [edi + 0xbc], esi
call fcn.004be370
xor esi, esi
jmp 0x43ea41
xor edi, edi
mov ecx, dword [esp + 0x6c]
cmp ecx, edi
je 0x43ea63
cmp ecx, esi
je 0x43ea58
dec dword [ecx + 4]
jne 0x43ea58
mov eax, dword [ecx]
push 1
call dword [eax]
cmp edi, esi
mov dword [esp + 0x6c], edi
je 0x43ea63
inc dword [edi + 4]
push 0xc0
call fcn.005354b8
mov edi, eax
add esp, 4
cmp edi, esi
je 0x43eaba
mov eax, dword [0x8ec008]
mov edx, dword [0x729444]
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push esi
push esi
push esi
mov dword [edi + 4], esi
mov dword [edi], 0x6ff14c
push esi
mov dword [edi + 0x1c], esi
inc edx
push eax
mov dword [edi + 0x64], esi
xor ebx, ebx
mov eax, str.spec_cooper.dds
mov ecx, edi
mov dword [0x729444], edx
mov dword [edi + 0xbc], esi
call fcn.004be370
xor esi, esi
jmp 0x43eabc
xor edi, edi
mov ecx, dword [esp + 0x70]
cmp ecx, edi
je 0x43eade
cmp ecx, esi
je 0x43ead3
dec dword [ecx + 4]
jne 0x43ead3
mov edx, dword [ecx]
push 1
call dword [edx]
cmp edi, esi
mov dword [esp + 0x70], edi
je 0x43eade
inc dword [edi + 4]
push 0xc0
call fcn.005354b8
mov edi, eax
add esp, 4
cmp edi, esi
je 0x43eb35
mov eax, dword [0x8ec008]
mov edx, dword [0x729444]
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push esi
push esi
push esi
mov dword [edi + 4], esi
mov dword [edi], 0x6ff14c
push esi
mov dword [edi + 0x1c], esi
inc edx
push eax
mov dword [edi + 0x64], esi
xor ebx, ebx
mov eax, str.spec_gunner.dds
mov ecx, edi
mov dword [0x729444], edx
mov dword [edi + 0xbc], esi
call fcn.004be370
xor esi, esi
jmp 0x43eb37
xor edi, edi
mov ecx, dword [esp + 0x74]
cmp ecx, edi
je 0x43eb59
cmp ecx, esi
je 0x43eb4e
dec dword [ecx + 4]
jne 0x43eb4e
mov eax, dword [ecx]
push 1
call dword [eax]
cmp edi, esi
mov dword [esp + 0x74], edi
je 0x43eb59
inc dword [edi + 4]
push 0xc0
call fcn.005354b8
mov edi, eax
add esp, 4
cmp edi, esi
je 0x43ebb0
mov eax, dword [0x8ec008]
mov edx, dword [0x729444]
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push esi
push esi
push esi
mov dword [edi + 4], esi
mov dword [edi], 0x6ff14c
push esi
mov dword [edi + 0x1c], esi
inc edx
push eax
mov dword [edi + 0x64], esi
xor ebx, ebx
mov eax, str.spec_surgeon.dds
mov ecx, edi
mov dword [0x729444], edx
mov dword [edi + 0xbc], esi
call fcn.004be370
xor esi, esi
jmp 0x43ebb2
xor edi, edi
mov ecx, dword [esp + 0x78]
cmp ecx, edi
je 0x43ebd4
cmp ecx, esi
je 0x43ebc9
dec dword [ecx + 4]
jne 0x43ebc9
mov edx, dword [ecx]
push 1
call dword [edx]
cmp edi, esi
mov dword [esp + 0x78], edi
je 0x43ebd4
inc dword [edi + 4]
push 0xc0
call fcn.005354b8
mov edi, eax
add esp, 4
cmp edi, esi
je 0x43ec2b
mov eax, dword [0x8ec008]
mov edx, dword [0x729444]
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push esi
push esi
push esi
mov dword [edi + 4], esi
mov dword [edi], 0x6ff14c
push esi
mov dword [edi + 0x1c], esi
inc edx
push eax
mov dword [edi + 0x64], esi
xor ebx, ebx
mov eax, str.spec_navigator.dds
mov ecx, edi
mov dword [0x729444], edx
mov dword [edi + 0xbc], esi
call fcn.004be370
xor esi, esi
jmp 0x43ec2d
xor edi, edi
mov ecx, dword [esp + 0x7c]
cmp ecx, edi
je 0x43ec4f
cmp ecx, esi
je 0x43ec44
dec dword [ecx + 4]
jne 0x43ec44
mov eax, dword [ecx]
push 1
call dword [eax]
cmp edi, esi
mov dword [esp + 0x7c], edi
je 0x43ec4f
inc dword [edi + 4]
push 0xc0
call fcn.005354b8
mov edi, eax
add esp, 4
cmp edi, esi
je 0x43eca6
mov eax, dword [0x8ec008]
mov edx, dword [0x729444]
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push esi
push esi
push esi
mov dword [edi + 4], esi
mov dword [edi], 0x6ff14c
push esi
mov dword [edi + 0x1c], esi
inc edx
push eax
mov dword [edi + 0x64], esi
xor ebx, ebx
mov eax, str.spec_quartermaster.dds
mov ecx, edi
mov dword [0x729444], edx
mov dword [edi + 0xbc], esi
call fcn.004be370
xor esi, esi
jmp 0x43eca8
xor edi, edi
mov ecx, dword [esp + 0x80]
cmp ecx, edi
je 0x43ecd0
cmp ecx, esi
je 0x43ecc2
dec dword [ecx + 4]
jne 0x43ecc2
mov edx, dword [ecx]
push 1
call dword [edx]
cmp edi, esi
mov dword [esp + 0x80], edi
je 0x43ecd0
inc dword [edi + 4]
push 0xc0
call fcn.005354b8
mov edi, eax
add esp, 4
cmp edi, esi
je 0x43ed27
mov eax, dword [0x8ec008]
mov edx, dword [0x729444]
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push esi
push esi
push esi
mov dword [edi + 4], esi
mov dword [edi], 0x6ff14c
push esi
mov dword [edi + 0x1c], esi
inc edx
push eax
mov dword [edi + 0x64], esi
xor ebx, ebx
mov eax, str.spec_cook.dds
mov ecx, edi
mov dword [0x729444], edx
mov dword [edi + 0xbc], esi
call fcn.004be370
xor esi, esi
jmp 0x43ed29
xor edi, edi
cmp ebp, edi
je 0x43ed4d
cmp ebp, esi
je 0x43ed3f
dec dword [ebp + 4]
jne 0x43ed3f
mov eax, dword [ebp]
push 1
mov ecx, ebp
call dword [eax]
cmp edi, esi
mov dword [esp + 0x84], edi
je 0x43ed4d
inc dword [edi + 4]
push 0xc0
mov dword [esp + 0x3c], esi
call fcn.005354b8
mov edi, eax
add esp, 4
cmp edi, esi
je 0x43edb1
mov eax, dword [0x8ec008]
mov ebx, dword [0x729444]
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push esi
push esi
push esi
mov dword [edi + 4], esi
mov dword [edi], 0x6ff14c
inc ebx
push esi
mov dword [edi + 0x1c], esi
mov dword [0x729444], ebx
push eax
mov dword [edi + 0x64], esi
xor ebx, ebx
mov eax, str.pageDivider.dds
mov ecx, edi
mov dword [edi + 0xbc], esi
call fcn.004be370
mov eax, dword [edi + 4]
inc eax
mov dword [esp + 0x38], edi
mov dword [edi + 4], eax
xor esi, esi
xor ebx, ebx
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], ebx
mov eax, 0x8162f8
cmp word [eax], 0xffff
je 0x43edc7
inc ebx
add eax, 0x45c
cmp eax, 0x8185d8
jl 0x43edc0
mov ecx, dword [0x85c26c]
mov eax, ecx
cdq
and edx, 0x1f
add eax, edx
mov edi, eax
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov edx, eax
sar edi, 5
sub edx, edi
mov dword [esp + 0x34], edx
lea edx, [eax + edi]
lea eax, [eax + edi*2]
add eax, edi
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], edx
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, ecx
sub eax, edx
mov dword [esp + 0x8c], eax
mov ebp, dword [0x7281f0]
mov eax, ecx
cdq
and edx, 0xf
add eax, edx
mov edi, eax
mov eax, 0x99999999
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
sar edi, 4
sub eax, edi
add ebp, 0xffffffe0
add eax, ecx
cmp ebx, esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x28], eax
jle 0x43ef60
mov ecx, dword [esp + 0x20]
lea ebx, [esp + 0x94]
mov edi, 0x10
mov dword [esp + 0x1c], ecx
cmp edi, 0x10
je 0x43ef25
mov edx, dword [esp + 0x34]
push 0xfffffffffffffff6
push ebp
push edx
mov edx, dword [0x8ccbe8]
push str.button_makeFlagship.kfm
push esi
lea ecx, [edi - 1]
call fcn.004b1ee0
mov dword [esp + 0x10], eax
mov dword [ebx - 4], eax
mov al, byte [esp + 0xf4]
test al, al
jne 0x43eed1
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x23c]
push 0x3f800000
push esi
push esi
push 0x3f800000
push 9
call fcn.00507780
mov ecx, dword [esp + 0x10]
mov byte [ecx + 0x290], 0
mov edx, dword [esp + 0x24]
push 0xfffffffffffffff6
push ebp
push edx
mov edx, dword [0x8ccbe8]
push str.button_abandon.kfm
push esi
mov ecx, edi
call fcn.004b1ee0
mov dword [esp + 0x10], eax
mov dword [ebx], eax
mov al, byte [esp + 0xf4]
test al, al
jne 0x43ef25
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x23c]
push 0x3f800000
push esi
push esi
push 0x3f800000
push 9
call fcn.00507780
mov ecx, dword [esp + 0x10]
mov byte [ecx + 0x290], 0
mov edx, dword [esp + 0x30]
push 0xfffffffffffffff6
push ebp
push edx
mov edx, dword [0x8ccbe8]
push str.button_changeName.kfm
push esi
lea ecx, [edi + 1]
call fcn.004b1ee0
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x1c]
add ebp, 0x28
add edi, 3
add ebx, 0xc
dec eax
mov dword [esp + 0x1c], eax
jne 0x43ee72
lea esp, [esp]
mov al, byte [0x8ccc27]
test al, al
je 0x43ef6e
mov byte [esp + 0x17], 1
mov eax, dword [0x8ccbe8]
xor ebp, ebp
push ebp
push eax
call fcn.004b2b90
push str.Ships
mov esi, 0x8ebf58
mov word [0x86e330], bp
call fcn.004f7660
mov ecx, dword [0x7281ec]
mov eax, dword [0x8cb568]
add esp, 4
push ebp
push 0xffffffffffffffff
push 4
push 0xffffffffffffffff
push 0x64
add ecx, 0xffffffe2
push ecx
push 0xaa
push 0x86bb48
mov dword [0x85c11c], 0x64
call fcn.004b0b40
push str.Flagship
call fcn.004f7660
mov edx, dword [0x7281ec]
mov eax, dword [esp + 0x58]
add esp, 0x24
push ebp
push 0xffffffffffffffff
push 4
push 0xffc00000
mov edi, 0x32
push edi
add edx, 0xfffffff3
push edx
push eax
push 0x86bb48
xor eax, eax
mov dword [0x85c11c], edi
call fcn.004b0b40
push str.Abandon
call fcn.004f7660
mov eax, dword [0x8ebf5c]
add esp, 0x24
cmp eax, 6
jl 0x43f03c
cmp eax, 0xb
jg 0x43f03c
mov ecx, dword [0x7281ec]
mov edx, dword [esp + 0x24]
push ebp
push 0xffffffffffffffff
push 4
push 0xffc00000
push edi
add ecx, 0xfffffff3
push ecx
push edx
jmp 0x43f055
mov eax, dword [0x7281ec]
mov ecx, dword [esp + 0x24]
push ebp
push 0xffffffffffffffff
push 4
push 0xffc00000
push edi
add eax, 3
push eax
push ecx
xor eax, eax
push 0x86bb48
mov dword [0x85c11c], edi
call fcn.004b0b40
add esp, 0x20
push str.Rename
mov esi, 0x8ebf58
call fcn.004f7660
mov edx, dword [0x7281ec]
mov eax, dword [esp + 0x34]
add esp, 4
push ebp
push 0xffffffffffffffff
push 4
push 0xffc00000
push edi
add edx, 0xfffffff3
push edx
push eax
push 0x86bb48
xor eax, eax
mov dword [0x85c11c], edi
call fcn.004b0b40
mov esi, dword [esp + 0x58]
add esp, 0x20
cmp esi, ebp
je 0x43f100
fild dword [esi + 0x38]
mov ecx, dword [esp + 0x2c]
add ecx, 0x20
mov dword [esp + 0x10], ecx
fmul dword [0x715574]
push ebp
push 0x42480000
fiadd dword [esp + 0x18]
call fcn.005f275c
fild dword [esi + 0x34]
mov edx, dword [esp + 0x30]
add edx, 0xffffffc0
fmul dword [0x715574]
mov dword [esp + 0x18], edx
push eax
fiadd dword [esp + 0x1c]
call fcn.005f275c
push eax
push esi
call fcn.004bc130
jmp 0x43f100
mov eax, ebp
imul eax, eax, 0x45c
cmp word [eax + 0x8162f8], 0xffff
mov dword [esp + 0x1c], eax
je 0x43f582
mov ecx, dword [esp + 0x2c]
lea eax, [ebp + ebp*4]
lea edi, [ecx + eax*8]
mov eax, dword [esp + 0x18]
or ebx, 0xffffffff
cmp eax, ebp
jne 0x43f164
mov eax, dword [0x85c26c]
push 0xa0
push 0xc0204080
cdq
push 0x28
sub eax, edx
sar eax, 1
push eax
lea edx, [edi - 0xc]
push edx
push 0x2c
push 0
push 0
push 0
push 0
push 0
call fcn.004af500
add esp, 0x2c
mov ebx, 0xffffcc00
mov eax, dword [esp + 0x1c]
movsx eax, word [eax + 0x8162f8]
cdq
mov ecx, 9
idiv ecx
mov esi, dword [esp + edx*4 + 0x44]
test esi, esi
je 0x43f1bb
fild dword [esi + 0x38]
lea edx, [edi - 0x14]
mov dword [esp + 0x10], edx
push 0
fmul dword [0x715824]
push 0x42200000
fiadd dword [esp + 0x18]
call fcn.005f275c
fild dword [esi + 0x34]
push eax
fmul dword [0x715824]
fadd dword [0x7158fc]
call fcn.005f275c
push eax
push esi
call fcn.004bc130
test ebp, ebp
jne 0x43f202
push str.Your_flagship...
mov esi, 0x8ebf58
call fcn.004f7660
add esp, 4
test ebx, ebx
mov eax, ebx
mov dword [0x85c11c], 0x32
jne 0x43f1e4
or eax, 0xffffffff
push 0
push 0xffffffffffffffff
push 1
push eax
push 0x32
lea eax, [edi - 0x17]
push eax
push 0x6c
push 0x86bb48
xor eax, eax
call fcn.004b0b40
add esp, 0x20
mov ecx, dword [esp + 0x1c]
movsx edx, word [ecx + 0x8162f8]
push edx
push str._SHIPTYPE:
mov esi, 0x8ebf58
call fcn.004f7660
add esp, 8
test ebx, ebx
mov eax, ebx
mov dword [0x85c11c], 0x50
jne 0x43f233
or eax, 0xffffffff
push 0
push 0xffffffffffffffff
push 1
push eax
push 0x50
lea eax, [edi - 0xd]
push eax
push 0x6c
push 0x86bb48
xor eax, eax
call fcn.004b0b40
mov eax, dword [0x8ccc18]
lea eax, [eax + eax*4]
shl eax, 4
cdq
and edx, 0x3ff
add esp, 0x20
add eax, edx
sar eax, 0xa
push 0
mov dword [esp + 0x14], eax
mov eax, dword [0x8cbdd8]
push 0x86bb48
push eax
mov dword [0x85c11c], 0x50
mov dword [0x8cbde0], eax
call fcn.0050ac80
fild dword [0x72837c]
fmul st(1)
fidiv dword [0x8ccc18]
fimul dword [esp + 0x10]
fmul dword [0x715584]
call fcn.005f275c
fstp st(0)
lea ecx, [ebp + ebp*2]
lea edx, [ecx*4 + 0x8dd618]
mov ecx, dword [edx]
mov dword [esp + 0x10], eax
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [eax + 4], ecx
push 0x701d2c
mov esi, 0x8ebf58
mov dword [eax + 8], edx
call fcn.004f7660
add esp, 0x10
test ebx, ebx
mov eax, ebx
mov dword [0x85c11c], 0x32
jne 0x43f2f5
or eax, 0xffffffff
mov ecx, dword [esp + 0x10]
push 0
push 0xffffffffffffffff
push 1
push eax
push 0x32
lea eax, [edi - 9]
push eax
add ecx, 0x6c
push ecx
push 0x86bb48
xor eax, eax
call fcn.004b0b40
mov ecx, dword [esp + 0x3c]
mov ax, word [ecx + 0x816318]
add esp, 0x20
add edi, 0xf
test ax, ax
jne 0x43f379
cmp word [ecx + 0x81631a], ax
jne 0x43f379
movsx edx, word [ecx + 0x8162f8]
xor eax, eax
imul edx, edx, 0x44
mov al, byte [ecx + 0x816324]
mov esi, 0x8ebf58
and eax, 4
or eax, 8
shr eax, 2
imul eax, dword [edx + 0x725b14]
cdq
sub eax, edx
sar eax, 1
push eax
movsx eax, word [ecx + 0x81631e]
push eax
push str.__NUM_crew___NUM_max_
call fcn.004f7660
add esp, 0xc
jmp 0x43f3ef
movsx ecx, word [ecx + 0x81631a]
test ecx, ecx
jge 0x43f388
xor ecx, ecx
jmp 0x43f392
cmp ecx, 0x64
jle 0x43f392
mov ecx, 0x64
movsx eax, ax
test eax, eax
jge 0x43f39d
xor eax, eax
jmp 0x43f3a7
cmp eax, 0x64
jle 0x43f3a7
mov eax, 0x64
push ecx
mov ecx, dword [esp + 0x20]
movsx edx, word [ecx + 0x8162f8]
push eax
imul edx, edx, 0x44
xor eax, eax
mov al, byte [ecx + 0x816324]
mov esi, 0x8ebf58
and eax, 4
or eax, 8
shr eax, 2
imul eax, dword [edx + 0x725b14]
cdq
sub eax, edx
sar eax, 1
push eax
movsx eax, word [ecx + 0x81631e]
push eax
push str.__NUM_crew___NUM_max__Damage_Sails:_NUM__Hull:_NUM__
call fcn.004f7660
add esp, 0x14
test ebx, ebx
mov dword [0x85c11c], 0x32
jne 0x43f400
or ebx, 0xffffffff
push 0
push 0xffffffffffffffff
push 1
push ebx
push 0x32
lea ecx, [edi - 0xd]
push ecx
push 0x6c
push 0x86bb48
xor eax, eax
call fcn.004b0b40
add edi, 2
add esp, 0x20
test ebp, ebp
mov dword [esp + 0x88], edi
je 0x43f4b7
mov al, byte [esp + 0xf4]
test al, al
je 0x43f4b7
mov cx, word [0x86e330]
mov esi, dword [esp + 0x34]
movsx eax, cx
shl eax, 1
add esi, 0x14
mov word [eax + 0x86dcf0], si
lea edx, [edi - 0x19]
lea esi, [edx + 0x1e]
mov word [eax + 0x86db60], si
mov esi, dword [esp + 0x24]
mov word [eax + 0x86de80], dx
mov word [eax + 0x86e1a0], bp
mov word [eax + 0x86e010], 0x62
inc cx
movsx eax, cx
shl eax, 1
add esi, 0xfffffff6
mov word [eax + 0x86e010], si
mov word [eax + 0x86de80], dx
add esi, 0x1e
add edx, 0x1e
lea ebx, [ebp + 8]
mov word [eax + 0x86e1a0], bx
mov word [eax + 0x86dcf0], si
mov word [eax + 0x86db60], dx
inc cx
jmp 0x43f4be
mov cx, word [0x86e330]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x1c]
movsx eax, cx
shl eax, 1
add edi, 0xffffffe7
add edx, 0xfffffff6
mov word [eax + 0x86de80], di
add edi, 0x1e
lea esi, [ebp + 0x10]
mov word [eax + 0x86e010], dx
add edx, 0x1e
inc cx
mov word [eax + 0x86e1a0], si
mov word [eax + 0x86db60], di
mov word [eax + 0x86dcf0], dx
mov word [0x86e330], cx
xor edi, edi
mov dword [esp + 0x10], 0x6c
mov esi, 0x8d94d8
jmp 0x43f520
movsx eax, word [ebx + 0x816324]
mov edx, 1
mov ecx, edi
shl edx, cl
test eax, edx
je 0x43f573
test esi, esi
je 0x43f56e
fild dword [esi + 0x38]
push 0
push 0x420c0000
fmul dword [0x7158e8]
fiadd dword [esp + 0x90]
call fcn.005f275c
fild dword [esi + 0x34]
push eax
fmul dword [0x7158e8]
fiadd dword [esp + 0x1c]
call fcn.005f275c
push eax
push esi
call fcn.004bc130
add dword [esp + 0x10], 0xa
add esi, 0xc0
inc edi
cmp esi, 0x8d9ad8
jl 0x43f520
inc ebp
cmp ebp, 8
jl 0x43f100
mov eax, dword [0x8de30c]
cmp dword [esp + 0x40], eax
mov esi, dword [0x8de310]
jne 0x43f5a7
cmp dword [esp + 0x3c], esi
je 0x43f69f
cmp eax, 0x2c
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], esi
jl 0x43f69f
mov ecx, dword [esp + 0x30]
add ecx, 0x14
cmp eax, ecx
jge 0x43f69f
mov eax, dword [esp + 0x2c]
lea edx, [eax - 0xc]
cmp esi, edx
jl 0x43f69f
mov ecx, dword [esp + 0x20]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*8 - 0xc]
cmp esi, edx
jge 0x43f69f
mov edi, dword [esp + 0x18]
mov ecx, esi
sub ecx, eax
add ecx, 0xc
mov eax, 0x66666667
imul ecx
sar edx, 4
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
cmp ebx, edi
je 0x43f6a3
lea edi, [edi + edi*2 + 0xf]
test edi, edi
jl 0x43f675
cmp edi, 0x2b
jge 0x43f675
mov eax, dword [0x8ccbe8]
mov ebp, dword [eax + edi*4 + 0x18]
test ebp, ebp
je 0x43f675
mov edi, dword [ebp + 0x23c]
call fcn.00507060
mov esi, dword [ebp + 0x23c]
mov edi, dword [esi + 0x18]
add esi, 0x14
test edi, edi
je 0x43f652
mov edx, dword [esi]
mov eax, edi
mov edi, dword [edi]
push eax
mov ecx, esi
call dword [edx + 8]
test edi, edi
jne 0x43f642
xor eax, eax
push 0x3f800000
push eax
push eax
push 0x3f800000
mov dword [esi + 0xc], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
push eax
mov eax, dword [ebp + 0x23c]
call fcn.00507780
push 0xffffffffffffffff
push 0xbf800000
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x36
mov edi, ebx
push 0x8ca278
mov dword [esp + 0x34], edi
call fcn.00488920
mov esi, dword [0x8de310]
add esp, 0x1c
jmp 0x43f6a3
mov edi, dword [esp + 0x18]
xor ebp, ebp
cmp edi, 0xffffffff
je 0x43f767
lea edi, [edi + edi*2 + 0xf]
cmp edi, ebp
jl 0x43f767
cmp edi, 0x2b
jge 0x43f767
mov eax, dword [0x8ccbe8]
mov ebx, dword [eax + edi*4 + 0x18]
cmp ebx, ebp
je 0x43f767
mov edx, esi
mov esi, dword [0x8de30c]
call fcn.0042c6c0
cmp eax, 8
mov edi, dword [ebx + 0x23c]
jge 0x43f721
call fcn.00507060
mov esi, dword [ebx + 0x23c]
mov edi, dword [esi + 0x18]
add esi, 0x14
cmp edi, ebp
je 0x43f711
mov edx, dword [esi]
mov eax, edi
mov edi, dword [edi]
push eax
mov ecx, esi
call dword [edx + 8]
cmp edi, ebp
jne 0x43f701
push 0x3f800000
push ebp
push ebp
push 0x3f800000
push 7
jmp 0x43f753
call fcn.00507060
mov esi, dword [ebx + 0x23c]
mov edi, dword [esi + 0x18]
add esi, 0x14
cmp edi, ebp
je 0x43f746
mov edx, dword [esi]
mov eax, edi
mov edi, dword [edi]
push eax
mov ecx, esi
call dword [edx + 8]
cmp edi, ebp
jne 0x43f736
push 0x3f800000
push ebp
push ebp
push 0x3f800000
push ebp
mov dword [esi + 8], ebp
mov dword [esi + 4], ebp
mov dword [esi + 0xc], ebp
mov eax, dword [ebx + 0x23c]
call fcn.00507780
push str.Specialists
mov esi, 0x8ebf58
call fcn.004f7660
mov eax, dword [0x7281ec]
mov ecx, dword [esp + 0x90]
add esp, 4
push 0
push 0xffffffffffffffff
push 4
push 0xffffffffffffffff
push 0x64
add eax, 0xffffffe2
push eax
mov eax, dword [0x8cb568]
push ecx
push 0x86bb48
mov dword [0x85c11c], 0x64
call fcn.004b0b40
mov ebx, dword [esp + 0x4c]
add esp, 0x20
xor edi, edi
add ebx, 0xfffffff1
lea esp, [esp]
mov eax, dword [0x86bb34]
mov edx, 1
mov ecx, edi
shl edx, cl
test edx, eax
je 0x43f88b
push edi
push str._SPEC
mov esi, 0x8ebf58
call fcn.004f7660
mov ebp, dword [esp + 0x30]
push 0
push 0xffffffffffffffff
push 1
push 0xffffffffffffff80
push 0x50
lea eax, [ebx + 2]
push eax
add ebp, 0xffffffec
push ebp
push 0x86bb48
xor eax, eax
mov dword [0x85c11c], 0x50
call fcn.004b0b40
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + edi*4 + 0x90]
add esp, 0x28
push 0x4b
push ebx
add ecx, 0xffffffc4
push ecx
call fcn.00412900
push edi
push edi
push str.A__SPEC_can__SPECED.
mov esi, 0x8ebf58
call fcn.004f7660
mov ecx, dword [0x85c26c]
sub ecx, dword [esp + 0x34]
shl ecx, 0xa
mov eax, 0x66666667
imul ecx
add esp, 0xc
sar edx, 8
mov eax, edx
push 0
shr eax, 0x1f
add eax, edx
push eax
push 0x40000001
push 0xffffffffffffffff
push 0x32
lea edx, [ebx + 0x12]
push edx
push ebp
push 0x86bb48
xor eax, eax
mov dword [0x85c11c], 0x32
call fcn.004b0b40
add esp, 0x20
add ebx, 0x28
inc edi
cmp edi, 8
jl 0x43f7c0
mov edi, dword [0x8ccbe8]
push 1
call fcn.004b2e50
cmp eax, 1
je 0x43f8b1
cmp eax, 0x1b
je 0x43f8b1
cmp eax, 0x20
jne 0x43f8b6
mov byte [esp + 0x17], 1
cmp eax, 0x72
jg 0x43f998
je 0x43f982
cmp eax, 0xd
je 0x43f95d
cmp eax, 0x2e
jne 0x43f8f3
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x43fc08
mov cl, byte [esp + 0xf4]
test cl, cl
je 0x43fc08
add eax, 0x208
cmp eax, 0x200
jl 0x43fc08
cmp eax, 0x218
jge 0x43fc08
lea ebp, [eax - 0x200]
and ebp, reloc.OLEAUT32.dll_VariantInit
jns 0x43f91c
dec ebp
or ebp, 0xfffffff8
inc ebp
mov ecx, ebp
imul ecx, ecx, 0x45c
cmp word [ecx + 0x8162f8], 0xffff
lea esi, [ecx + 0x8162f8]
mov dword [esp + 0x10], ebp
je 0x43fc08
cmp eax, 0x208
jge 0x43fa03
mov eax, 2
call fcn.0042e700
mov eax, ebp
call fcn.00404e50
jmp 0x43fbfc
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x43fc08
mov cl, byte [esp + 0xf4]
test cl, cl
je 0x43fc08
add eax, 0x200
jmp 0x43f8f3
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x43fc08
add eax, 0x210
jmp 0x43f8f3
mov ecx, eax
sub ecx, 0x126
je 0x43f9cf
sub ecx, 2
jne 0x43f8f3
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
dec eax
cmp ecx, eax
jge 0x43fc08
mov eax, 5
call fcn.0042e700
inc dword [esp + 0x18]
jmp 0x43fc08
mov eax, dword [esp + 0x18]
test eax, eax
je 0x43fc08
push 0xffffffffffffffff
push 0xbf800000
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, eax
dec ecx
push 0x36
push 0x8ca278
mov dword [esp + 0x34], ecx
call fcn.00488920
add esp, 0x1c
jmp 0x43fc08
cmp eax, 0x210
jge 0x43fba4
mov eax, 2
call fcn.0042e700
mov eax, dword [0x7283bc]
mov edx, dword [0x728a84]
movsx edi, word [esi]
mov dword [edx*4 + 0x7288f4], eax
mov edx, dword [0x728a84]
and eax, 0xfff7ffff
mov dword [0x7283bc], eax
mov eax, edi
imul eax, eax, 0x44
mov esi, dword [eax + 0x725b1c]
inc edx
push 1
mov word [0x86e330], 0
mov dword [0x728a84], edx
call fcn.00404910
add esp, 4
cmp esi, eax
jle 0x43fab8
push 1
call fcn.00404910
sub esi, eax
add esp, 4
push esi
push str.You_will_discard__NUM_tons_of_cargo_if_you_abandon_this_ship._n_Ooops__never_mind._n_No_problem._n
mov esi, 0x8ebf58
call fcn.004f7660
push 0
push 0x28
call fcn.00487950
mov ecx, dword [0x85c268]
push 0
mov eax, 0x55555556
imul ecx
push 0
push 0xffffffffffffffff
push 0
push 0
push 0xffffffffffffffff
mov ecx, edx
shr ecx, 0x1f
push 0
add ecx, edx
push str.snapall
or ecx, 1
push ecx
jmp 0x43fafc
push edi
push str.Are_you_sure_you_want_to_abandon_this__SHIPTYPE__n_Ooops__never_mind._n_Yes__abandon_it._n
mov esi, 0x8ebf58
call fcn.004f7660
push 0
push 0x20
call fcn.00487950
mov ecx, dword [0x85c268]
push 0
mov eax, 0x55555556
imul ecx
push 0
push 0xffffffffffffffff
push 0
push 0
push 0xffffffffffffffff
mov eax, edx
shr eax, 0x1f
push 0
add eax, edx
push str.snapall
or eax, 1
push eax
mov eax, dword [0x85c26c]
cdq
sub eax, edx
sar eax, 1
push eax
call fcn.00430160
add esp, 0x38
cmp eax, 1
je 0x43fb1b
or ebp, 0xffffffff
mov dword [esp + 0x10], ebp
mov eax, dword [0x728a84]
dec eax
cmp ebp, 0xffffffff
mov dword [0x728a84], eax
mov ecx, dword [eax*4 + 0x7288f4]
mov dword [0x7283bc], ecx
je 0x43fbfc
mov ebx, dword [esp + 0x20]
mov esi, dword [0x8ccbe8]
dec ebx
lea edi, [ebx + ebx*2 + 0xf]
mov dword [esp + 0x20], ebx
call fcn.004b2030
mov esi, dword [0x8ccbe8]
lea ebp, [ebx + ebx*2]
shl ebp, 2
lea edi, [ebx + ebx*2 + 0x10]
mov dword [esp + ebp + 0x90], 0
call fcn.004b2030
mov esi, dword [0x8ccbe8]
lea edi, [ebx + ebx*2 + 0x11]
mov dword [esp + ebp + 0x94], 0
call fcn.004b2030
mov eax, dword [esp + 0x10]
mov dword [esp + ebp + 0x98], 0
call fcn.00404ca0
jmp 0x43fbfc
mov esi, dword [0x8ccc40]
test esi, esi
je 0x43fbdf
mov ecx, dword [0x8ec08c]
mov edx, dword [ecx]
call dword [edx + 0x58]
mov ecx, dword [0x8ec08c]
mov eax, dword [ecx]
call dword [eax + 0x5c]
mov eax, dword [esi]
test eax, eax
je 0x43fbdf
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
push ecx
push edx
push eax
mov ebx, 0x4000
call fcn.00505ce0
mov esi, dword [0x8ccc40]
mov eax, ebp
mov dword [0x8ccc40], 0
call fcn.00471080
mov dword [0x8ccc40], esi
push 1
xor eax, eax
call fcn.0045bb50
add esp, 4
push 1
call fcn.004d1ea0
mov al, byte [esp + 0x1b]
add esp, 4
test al, al
je 0x43ef60
mov ebx, 0x10
jmp 0x43fc30
mov esi, dword [0x8ccbe8]
lea edi, [ebx - 1]
call fcn.004b2030
mov esi, dword [0x8ccbe8]
mov edi, ebx
call fcn.004b2030
mov esi, dword [0x8ccbe8]
lea edi, [ebx + 1]
call fcn.004b2030
add ebx, 3
cmp ebx, 0x28
jl 0x43fc30
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x43fc74
dec dword [ecx + 4]
jne 0x43fc74
mov eax, dword [ecx]
push 1
call dword [eax]
lea esi, [esp + 0x88]
mov edi, 8
mov ecx, dword [esi - 4]
sub esi, 4
test ecx, ecx
je 0x43fc95
dec dword [ecx + 4]
jne 0x43fc95
mov edx, dword [ecx]
push 1
call dword [edx]
dec edi
jne 0x43fc80
lea esi, [esp + 0x68]
mov edi, 9
mov ecx, dword [esi - 4]
sub esi, 4
test ecx, ecx
je 0x43fcb6
dec dword [ecx + 4]
jne 0x43fcb6
mov eax, dword [ecx]
push 1
call dword [eax]
dec edi
jne 0x43fca1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret