Function at 0x446120
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xf8
push ebx
push ebp
push esi
push edi
xor edi, edi
push 0xc0
mov dword [esp + 0xb8], edi
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa8], edi
mov dword [esp + 0xac], edi
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], edi
call fcn.005354b8
mov esi, eax
xor ebx, ebx
add esp, 4
or ebp, 0xffffffff
cmp esi, ebx
je 0x44644d
mov eax, dword [0x8ec008]
mov ecx, dword [0x729444]
push ebx
push ebx
push ebx
push ebx
push ebp
push ebx
push ebx
push ebx
mov dword [esi + 4], ebx
inc ecx
mov dword [esi], 0x6ff14c
push ebx
mov dword [esi + 0x1c], ebx
mov dword [0x729444], ecx
push eax
mov dword [esi + 0x64], ebx
mov eax, str.xMark.dds
mov ecx, esi
mov dword [esi + 0xbc], ebx
call fcn.004be370
mov eax, dword [esi + 4]
inc eax
mov dword [esp + 0x78], esi
mov dword [esi + 4], eax
push 0xc0
call fcn.005354b8
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x446456
mov eax, dword [0x8ec008]
mov ecx, dword [0x729444]
push ebx
push ebx
push ebx
push ebx
push ebp
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
xor ebx, ebx
mov eax, str.mapTownIcon.nif
mov ecx, esi
call fcn.004be370
mov eax, dword [esi + 4]
inc eax
mov dword [esp + 0x94], esi
mov dword [esi + 4], eax
push 0xc0
call fcn.005354b8
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x446462
mov eax, dword [0x8ec008]
mov ecx, dword [0x729444]
push ebx
push ebx
push ebx
push ebx
push ebp
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
xor ebx, ebx
mov eax, str.mapHeartIcon01.nif
mov ecx, esi
call fcn.004be370
mov eax, dword [esi + 4]
inc eax
mov dword [esp + 0x9c], esi
mov dword [esi + 4], eax
push 0xc0
call fcn.005354b8
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x44646e
mov eax, dword [0x8ec008]
mov ecx, dword [0x729444]
push ebx
push ebx
push ebx
push ebx
push ebp
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
xor ebx, ebx
mov eax, str.mapEdgeMaskLarge.dds
mov ecx, esi
call fcn.004be370
mov eax, dword [esi + 4]
inc eax
mov dword [esp + 0x60], esi
mov dword [esi + 4], eax
push 0xc0
call fcn.005354b8
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x446477
mov eax, dword [0x8ec008]
mov ecx, dword [0x729444]
push ebx
push ebx
push ebx
push ebx
push ebp
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
xor ebx, ebx
mov eax, str.mapEdgeMask.dds
mov ecx, esi
call fcn.004be370
mov eax, dword [esi + 4]
inc eax
mov dword [esp + 0x7c], esi
mov dword [esi + 4], eax
push 0xc0
call fcn.005354b8
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x446480
mov eax, dword [0x8ec008]
mov ecx, dword [0x729444]
push ebx
push ebx
push ebx
push ebx
push ebp
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
xor ebx, ebx
mov eax, str.mapPanel.dds
mov ecx, esi
call fcn.004be370
mov eax, dword [esi + 4]
inc eax
mov dword [esp + 0x5c], esi
mov dword [esi + 4], eax
mov ecx, dword [esp + 0x114]
xor eax, eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x124]
push 0xc0
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], ebp
mov byte [esp + 0x46], bl
mov dword [esp + 0x34], eax
mov dword [esp + 0x84], ebp
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x90], ebp
call fcn.005354b8
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x446489
mov eax, dword [0x8ec008]
mov ecx, dword [0x729444]
push ebx
push ebx
push ebx
push ebx
push ebp
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
xor ebx, ebx
mov eax, str.townIcon_0.dds
mov ecx, esi
call fcn.004be370
jmp 0x44648b
mov dword [esp + 0x78], ebx
jmp 0x4461ba
mov dword [esp + 0x94], ebx
jmp 0x44621e
mov dword [esp + 0x9c], ebx
jmp 0x446282
mov dword [esp + 0x60], ebx
jmp 0x4462e3
mov dword [esp + 0x7c], ebx
jmp 0x446344
mov dword [esp + 0x5c], ebx
jmp 0x4463a5
xor esi, esi
cmp edi, esi
je 0x4464ae
cmp edi, ebx
je 0x4464a0
dec dword [edi + 4]
jne 0x4464a0
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx]
cmp esi, ebx
mov dword [esp + 0xb4], esi
je 0x4464ae
inc dword [esi + 4]
push 0xc0
call fcn.005354b8
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x446502
mov eax, dword [0x8ec008]
mov ecx, dword [0x729444]
push ebx
push ebx
push ebx
push ebx
push ebp
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
xor ebx, ebx
mov eax, str.townIcon_1.dds
mov ecx, esi
call fcn.004be370
jmp 0x446504
xor esi, esi
cmp edi, esi
je 0x446527
cmp edi, ebx
je 0x446519
dec dword [edi + 4]
jne 0x446519
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax]
cmp esi, ebx
mov dword [esp + 0xa0], esi
je 0x446527
inc dword [esi + 4]
push 0xc0
call fcn.005354b8
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x44657b
mov eax, dword [0x8ec008]
mov edx, dword [0x729444]
push ebx
push ebx
push ebx
push ebx
push ebp
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
inc edx
mov dword [esi + 0xbc], ebx
push eax
xor ebx, ebx
mov eax, str.townIcon_2.dds
mov ecx, esi
mov dword [0x729444], edx
call fcn.004be370
jmp 0x44657d
xor esi, esi
mov ecx, dword [esp + 0xa4]
cmp ecx, esi
je 0x4465a5
cmp ecx, ebx
je 0x446597
dec dword [ecx + 4]
jne 0x446597
mov edx, dword [ecx]
push 1
call dword [edx]
cmp esi, ebx
mov dword [esp + 0xa4], esi
je 0x4465a5
inc dword [esi + 4]
push 0xc0
call fcn.005354b8
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x4465f9
mov eax, dword [0x8ec008]
mov edx, dword [0x729444]
push ebx
push ebx
push ebx
push ebx
push ebp
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
inc edx
mov dword [esi + 0xbc], ebx
push eax
xor ebx, ebx
mov eax, str.townIcon_3.dds
mov ecx, esi
mov dword [0x729444], edx
call fcn.004be370
jmp 0x4465fb
xor esi, esi
mov ecx, dword [esp + 0xa8]
cmp ecx, esi
je 0x446623
cmp ecx, ebx
je 0x446615
dec dword [ecx + 4]
jne 0x446615
mov eax, dword [ecx]
push 1
call dword [eax]
cmp esi, ebx
mov dword [esp + 0xa8], esi
je 0x446623
inc dword [esi + 4]
push 0xc0
call fcn.005354b8
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x446677
mov eax, dword [0x8ec008]
mov edx, dword [0x729444]
push ebx
push ebx
push ebx
push ebx
push ebp
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
inc edx
mov dword [esi + 0xbc], ebx
push eax
xor ebx, ebx
mov eax, str.townIcon_4.dds
mov ecx, esi
mov dword [0x729444], edx
call fcn.004be370
jmp 0x446679
xor esi, esi
mov ecx, dword [esp + 0xac]
cmp ecx, esi
je 0x4466a1
cmp ecx, ebx
je 0x446693
dec dword [ecx + 4]
jne 0x446693
mov edx, dword [ecx]
push 1
call dword [edx]
cmp esi, ebx
mov dword [esp + 0xac], esi
je 0x4466a1
inc dword [esi + 4]
push 0xc0
call fcn.005354b8
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x4466f5
mov eax, dword [0x8ec008]
mov edx, dword [0x729444]
push ebx
push ebx
push ebx
push ebx
push ebp
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
inc edx
mov dword [esi + 0xbc], ebx
push eax
xor ebx, ebx
mov eax, str.townIcon_5.dds
mov ecx, esi
mov dword [0x729444], edx
call fcn.004be370
jmp 0x4466f7
xor esi, esi
mov ecx, dword [esp + 0xb0]
cmp ecx, esi
je 0x44671f
cmp ecx, ebx
je 0x446711
dec dword [ecx + 4]
jne 0x446711
mov eax, dword [ecx]
push 1
call dword [eax]
cmp esi, ebx
mov dword [esp + 0xb0], esi
je 0x44671f
inc dword [esi + 4]
mov ecx, dword [0x8ccbe8]
cmp byte [ecx + 0xc], bl
jne 0x44673d
lea ebx, [ebx]
call fcn.004b27e0
inc ebx
cmp ebx, 3
jl 0x446730
xor ebx, ebx
mov esi, dword [esp + 0x114]
cmp esi, 1
je 0x446754
inc esi
and esi, 0xfffffffe
mov dword [esp + 0x114], esi
mov eax, dword [esp + 0x110]
imul eax, eax, 0x3e8
lea edx, [esp + 0x44]
push edx
push ebx
push ebx
push eax
mov eax, dword [esp + 0x11c]
imul eax, eax, 0x3e8
lea ecx, [esp + 0x44]
mov ebx, esi
call fcn.004449f0
mov eax, dword [esp + 0x44]
mov ecx, esi
mov esi, dword [esp + 0x54]
add esp, 0x10
sub ecx, 2
je 0x446825
sub ecx, 2
je 0x4467ee
sub ecx, 2
jne 0x44686d
mov ecx, dword [0x85c26c]
shl eax, 0xa
cdq
lea ecx, [ecx + ecx*2]
shl ecx, 1
idiv ecx
sub eax, 0x57
mov dword [esp + 0x1c], eax
mov eax, dword [0x85c268]
lea ecx, [eax + eax*2 - 0x78]
mov eax, esi
imul eax, eax, 0x286
shl ecx, 1
cdq
idiv ecx
mov ecx, dword [esp + 0x124]
sub eax, 0x32
cmp ecx, ebp
mov dword [esp + 0x18], eax
je 0x44686d
sub eax, 0x14
jmp 0x446869
mov edx, dword [0x85c26c]
shl eax, 0xa
lea ecx, [edx*4]
cdq
idiv ecx
mov edx, dword [0x85c268]
lea ecx, [edx*4 - 0xa0]
sub eax, 0x7f
mov dword [esp + 0x1c], eax
mov eax, esi
imul eax, eax, 0x286
cdq
idiv ecx
sub eax, 0x46
jmp 0x446869
mov edx, dword [0x85c26c]
shl eax, 0xa
lea ecx, [edx + edx]
cdq
idiv ecx
mov edx, dword [0x85c268]
lea ecx, [edx + edx - 0x50]
sub eax, 0x105
mov dword [esp + 0x1c], eax
mov eax, esi
imul eax, eax, 0x286
cdq
idiv ecx
mov ecx, dword [esp + 0x124]
sub eax, 0x96
cmp ecx, ebp
mov dword [esp + 0x18], eax
je 0x44686d
sub eax, 0x3c
mov dword [esp + 0x18], eax
mov edx, dword [0x8ca494]
mov dword [0x874bc8], 0
mov dword [0x727548], edx
mov dword [0x8ccc38], 1
call fcn.00446040
mov al, byte [esp + 0x120]
test al, al
je 0x446e73
mov esi, dword [0x8ccbe8]
mov al, byte [esi + 0xc]
test al, al
jne 0x4468d9
push 4
mov edi, esi
call fcn.005354b8
add esp, 4
test eax, eax
je 0x4468c7
mov esi, eax
call fcn.00503be0
jmp 0x4468c9
xor eax, eax
mov ecx, dword [edi + 0x10]
mov esi, dword [0x8ccbe8]
mov dword [0x8ccc40], eax
mov dword [eax], ecx
mov ecx, dword [0x85c268]
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 0x30]
push 0xfffffffffffffff6
push ecx
mov ecx, dword [0x85c26c]
shl ecx, 2
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax - 0x14]
push ecx
push str.button_zoomIn.kfm
push str.zoomIn
mov ecx, 0xf
mov edx, esi
call fcn.004b1ee0
mov ecx, dword [0x85c268]
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 0x30]
push 0xfffffffffffffff6
push ecx
mov ecx, dword [0x85c26c]
shl ecx, 2
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 0x66]
mov edx, dword [0x8ccbe8]
push ecx
push str.button_zoomOut.kfm
push str.zoomOut
mov ecx, 0x10
call fcn.004b1ee0
mov ecx, dword [0x85c268]
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 4]
push 0xfffffffffffffff6
push ecx
mov ecx, dword [0x85c26c]
shl ecx, 2
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 0x2a]
mov edx, dword [0x8ccbe8]
push ecx
push str.button_upArrow.kfm
push str.mapUp
mov ecx, 0x11
call fcn.004b1ee0
mov ecx, dword [0x85c268]
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 0x4a]
push 0xfffffffffffffff6
push ecx
mov ecx, dword [0x85c26c]
shl ecx, 2
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 0x2a]
mov edx, dword [0x8ccbe8]
push ecx
push str.button_downArrow.kfm
push str.mapDown
mov ecx, 0x12
call fcn.004b1ee0
mov ecx, dword [0x85c268]
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 0x27]
push 0xfffffffffffffff6
push ecx
mov ecx, dword [0x85c26c]
shl ecx, 2
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 4]
mov edx, dword [0x8ccbe8]
push ecx
push str.button_leftArrow.kfm
push str.mapLeft
mov ecx, 0x13
call fcn.004b1ee0
mov ecx, dword [0x85c268]
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 0x27]
push 0xfffffffffffffff6
push ecx
mov ecx, dword [0x85c26c]
shl ecx, 2
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 0x4c]
mov edx, dword [0x8ccbe8]
push ecx
push str.button_rightArrow.kfm
push str.mapRight
mov ecx, 0x14
call fcn.004b1ee0
xor ebp, ebp
lea ecx, [ecx]
cmp ebp, 3
mov eax, 0x8cccd0
mov dword [esp + 0x2c], eax
mov dword [esp + 0x3c], eax
ja case.default.0x446ad6
jmp dword [ebp*4 + 0x449214]
mov ebx, str.mapLogFilter
lea eax, [esp + 0x2c]
call fcn.00412f10
mov ebx, str.button_events.kfm
lea eax, [esp + 0x3c]
call fcn.00412f10
mov ecx, dword [0x85c26c]
shl ecx, 2
mov eax, 0x66666667
imul ecx
mov ecx, dword [0x85c268]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x20], eax
add ecx, ecx
mov eax, 0x55555556
fild dword [esp + 0x20]
imul ecx
fadd dword [0x71591c]
mov ecx, edx
fmul dword [0x715648]
shr ecx, 0x1f
add ecx, edx
fmul dword [0x715918]
mov dword [esp + 0x20], ecx
fstp dword [esp + 0x24]
fild dword [esp + 0x20]
fadd dword [0x715914]
jmp 0x446cbf
mov ebx, str.mapFrtFilter
lea eax, [esp + 0x2c]
call fcn.00412f10
mov ebx, str.button_fortification.kfm
lea eax, [esp + 0x3c]
call fcn.00412f10
mov ecx, dword [0x85c26c]
shl ecx, 2
mov eax, 0x66666667
imul ecx
mov ecx, dword [0x85c268]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x20], eax
add ecx, ecx
mov eax, 0x55555556
fild dword [esp + 0x20]
imul ecx
fadd dword [0x71582c]
mov ecx, edx
fmul dword [0x715648]
shr ecx, 0x1f
add ecx, edx
fmul dword [0x715918]
mov dword [esp + 0x20], ecx
fstp dword [esp + 0x24]
fild dword [esp + 0x20]
jmp 0x446cb9
mov ebx, str.mapRmnFilter
lea eax, [esp + 0x2c]
call fcn.00412f10
mov ebx, str.button_romance.kfm
lea eax, [esp + 0x3c]
call fcn.00412f10
mov ecx, dword [0x85c26c]
shl ecx, 2
mov eax, 0x66666667
imul ecx
mov ecx, dword [0x85c268]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x20], eax
add ecx, ecx
mov eax, 0x55555556
fild dword [esp + 0x20]
imul ecx
fadd dword [0x715910]
mov ecx, edx
fmul dword [0x715648]
shr ecx, 0x1f
add ecx, edx
fmul dword [0x715918]
mov dword [esp + 0x20], ecx
fstp dword [esp + 0x24]
fild dword [esp + 0x20]
fadd dword [0x71591c]
jmp 0x446cbf
mov ebx, str.mapEcnFilter
lea eax, [esp + 0x2c]
call fcn.00412f10
mov ebx, str.button_wealth.kfm
lea eax, [esp + 0x3c]
call fcn.00412f10
mov ecx, dword [0x85c26c]
shl ecx, 2
mov eax, 0x66666667
imul ecx
mov ecx, dword [0x85c268]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x20], eax
add ecx, ecx
mov eax, 0x55555556
fild dword [esp + 0x20]
imul ecx
fadd dword [0x7158c8]
mov ecx, edx
fmul dword [0x715648]
shr ecx, 0x1f
add ecx, edx
fmul dword [0x715918]
mov dword [esp + 0x20], ecx
fstp dword [esp + 0x24]
fild dword [esp + 0x20]
fadd dword [0x7158c8]
fmul dword [0x715648]
fmul dword [0x715918]
fstp dword [esp + 0x4c]
push 0x29c
call fcn.005354b8
mov esi, eax
add esp, 4
test esi, esi
je 0x446d45
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
push 0
push 0x3f800000
push 0xc1200000
push edx
mov edx, dword [esp + 0x3c]
push eax
push ecx
push edx
mov eax, esi
call fcn.005085e0
mov eax, dword [esi + 0x290]
test eax, eax
mov dword [esi], 0x713538
je 0x446d47
push 0x3f800000
push 0
push 0
mov dword [esi + 0x290], 0
mov eax, dword [esi + 0x294]
push 0x3f800000
push eax
mov eax, dword [esi + 0x23c]
call fcn.00507780
jmp 0x446d47
xor esi, esi
mov ecx, dword [esp + ebp*4 + 0x64]
cmp ecx, esi
je 0x446d69
test ecx, ecx
je 0x446d5e
dec dword [ecx + 4]
jne 0x446d5e
mov edx, dword [ecx]
push 1
call dword [edx]
test esi, esi
mov dword [esp + ebp*4 + 0x64], esi
je 0x446d69
inc dword [esi + 4]
mov esi, dword [esp + ebp*4 + 0x64]
mov ecx, dword [0x8ccbe8]
mov dword [esi + 0x294], 0
mov ebx, 1
mov dword [esi + 0x298], ebx
lea eax, [ebp + 0x15]
mov dword [esi + 0xec], eax
mov edi, dword [ecx + 0x10]
push esi
mov ecx, edi
call fcn.005056f0
mov ecx, dword [edi + 4]
mov edx, dword [ecx]
push ebx
push esi
call dword [edx + 0x70]
mov ecx, esi
call fcn.00535990
push ebx
push 0
mov ecx, esi
call fcn.00535550
cmp dword [esi + 0x290], ebx
je 0x446de5
push 0x3f800000
push 0
push 0
mov dword [esi + 0x290], ebx
mov eax, dword [esi + 0x298]
push 0x3f800000
push eax
mov eax, dword [esi + 0x23c]
call fcn.00507780
mov edi, dword [esi + 0x23c]
call fcn.00507060
mov edi, dword [esi + 0x23c]
mov ebx, dword [edi + 0x18]
add edi, 0x14
test ebx, ebx
je 0x446e10
mov edx, dword [edi]
mov eax, ebx
mov ebx, dword [ebx]
push eax
mov ecx, edi
call dword [edx + 8]
test ebx, ebx
jne 0x446e00
xor eax, eax
push 0x3f800000
push eax
push eax
mov dword [edi + 0xc], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov eax, dword [esi + 0x23c]
push 0x3f800000
mov ebx, 1
call fcn.00507700
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff8
je 0x446e50
cmp eax, 0x8cccc8
je 0x446e50
push eax
call sub.MSVCR71.dll_void___cdecl_operator_delete___void__
add esp, 4
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff8
je 0x446e69
cmp eax, 0x8cccc8
je 0x446e69
push eax
call sub.MSVCR71.dll_void___cdecl_operator_delete___void__
add esp, 4
inc ebp
cmp ebp, 4
jl 0x446ac0
mov dword [0x8ccc38], 1
lea ecx, [ecx]
mov al, byte [0x8ccc27]
test al, al
jne 0x448f35
mov eax, dword [0x85c268]
mov ecx, dword [0x85c26c]
mov edx, dword [esp + 0x18]
push 0xffffffffffffffff
add eax, 0xffffffd8
push eax
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x120]
xor edi, edi
push edi
push edi
push edx
push eax
push ecx
call fcn.00445830
mov al, byte [esp + 0x140]
add esp, 0x20
test al, al
mov word [0x86e330], di
je 0x4470e2
mov ecx, dword [0x85c268]
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x85c26c]
shl edx, 2
mov eax, 0x66666667
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax - 0x20]
mov word [0x86e010], dx
add edx, 0x18
mov word [0x86dcf0], dx
lea esi, [ecx + 0x1c]
lea edx, [esi + 0x2b]
mov word [0x86de80], si
mov word [0x86de82], si
add esi, 0x2b
mov word [0x86db62], si
mov word [0x86db60], dx
lea edx, [eax + 0x5c]
mov word [0x86e012], dx
add edx, 0x18
mov word [0x86dcf2], dx
lea esi, [eax - 1]
mov word [0x86e014], si
add esi, 0x11
mov word [0x86dcf4], si
lea edx, [ecx + 0x1e]
lea esi, [edx + 0x14]
mov word [0x86db64], si
lea esi, [eax + 0x45]
mov word [0x86e016], si
add esi, 0x11
mov word [0x86dcf6], si
lea esi, [ecx - 5]
mov word [0x86de88], si
add esi, 0x14
mov word [0x86db68], si
mov word [0x86de84], dx
mov word [0x86de86], dx
add edx, 0x14
lea esi, [ecx + 0x43]
mov word [0x86de8a], si
add esi, 0x14
mov word [0x86db66], dx
lea edx, [eax + 0x22]
mov word [0x86db6a], si
lea ebx, [edx + 0x14]
mov word [0x86e018], dx
mov word [0x86e01a], dx
add edx, 0x14
lea esi, [eax + 8]
mov word [0x86e01c], si
add esi, 0x13
mov word [0x86dcfa], dx
lea edx, [ecx + 0xa]
mov word [0x86dcfc], si
lea esi, [edx + 0x10]
mov word [0x86db6c], si
lea esi, [eax + 0xc]
add ecx, 0x3a
mov word [0x86e01e], si
mov word [0x86e1a0], di
mov word [0x86e1a2], 1
mov word [0x86e1a4], 4
mov word [0x86e1a6], 5
mov word [0x86e1a8], 2
mov word [0x86dcf8], bx
mov word [0x86e1aa], 3
mov word [0x86e1ac], 6
mov word [0x86de8c], dx
mov word [0x86e1ae], 8
mov word [0x86de8e], cx
add esi, 0x13
mov word [0x86dcfe], si
lea esi, [ecx + 0x10]
mov word [0x86db6e], si
lea esi, [eax + 0x3c]
add eax, 0x38
mov word [0x86e020], si
mov word [0x86de90], dx
add esi, 0x13
add edx, 0x10
mov word [0x86e022], ax
add eax, 0x13
mov word [0x86de92], cx
add ecx, 0x10
mov word [0x86e1b0], 7
mov word [0x86dd00], si
mov word [0x86db70], dx
mov word [0x86e1b2], 9
mov word [0x86dd02], ax
mov word [0x86db72], cx
mov word [0x86e330], 0xa
mov dword [esp + 0x3c], edi
jmp 0x4470f0
xor ebp, ebp
mov eax, 0x85d170
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], 0x8ddd08
mov dword [esp + 0x58], 0x85df78
mov dword [esp + 0x2c], 0x862b76
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx - 6]
test edx, edx
mov byte [esp + 0x43], 0
js 0x447b54
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x114]
lea edx, [esp + 0x28]
push edx
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax]
push edx
push ecx
lea ecx, [esp + 0x48]
call fcn.004449f0
add esp, 0x10
test eax, eax
je 0x447b54
mov eax, dword [0x727540]
cmp eax, 0xffffffff
je 0x447175
cmp ebp, eax
je 0x447175
cmp ebp, dword [0x727544]
jne 0x447b54
mov edx, dword [esp + 0x80]
add edx, 0xfffffff5
cmp edx, ebp
jne 0x447188
mov byte [esp + 0x43], 1
cmp dword [esp + 0x74], 0x85d430
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x28]
jge 0x447931
mov al, byte [esp + 0x120]
test al, al
je 0x4472b5
mov esi, ebx
call fcn.004446d0
test al, al
jne 0x4472b5
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x447697
mov eax, dword [esp + 0x114]
sub eax, 2
je 0x447271
sub eax, 2
je 0x44722d
sub eax, 2
jne 0x4472c1
movsx eax, word [0x86e330]
shl eax, 1
lea ecx, [ebx - 0xa]
lea edx, [edi - 0xa]
mov word [eax + 0x86e010], dx
mov word [eax + 0x86de80], cx
add edx, 0x14
add ecx, 0x14
inc word [0x86e330]
lea esi, [ebp + 0xb]
mov word [eax + 0x86e1a0], si
mov word [eax + 0x86dcf0], dx
mov word [eax + 0x86db60], cx
jmp 0x4472c1
movsx eax, word [0x86e330]
shl eax, 1
lea ecx, [ebx - 8]
lea edx, [edi - 8]
mov word [eax + 0x86e010], dx
mov word [eax + 0x86de80], cx
add edx, 0x10
add ecx, 0x10
inc word [0x86e330]
lea esi, [ebp + 0xb]
mov word [eax + 0x86e1a0], si
mov word [eax + 0x86dcf0], dx
mov word [eax + 0x86db60], cx
jmp 0x4472c1
movsx eax, word [0x86e330]
shl eax, 1
lea ecx, [ebx - 6]
lea edx, [edi - 6]
mov word [eax + 0x86e010], dx
mov word [eax + 0x86de80], cx
add edx, 0xc
add ecx, 0xc
inc word [0x86e330]
lea esi, [ebp + 0xb]
mov word [eax + 0x86e1a0], si
mov word [eax + 0x86dcf0], dx
mov word [eax + 0x86db60], cx
jmp 0x4472c1
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x447697
mov eax, dword [esp + 0x114]
dec eax
cdq
sub eax, edx
sar eax, 1
imul eax, eax, 0x2c
add eax, ebp
shl eax, 2
mov ecx, dword [eax + 0x874300]
mov edx, dword [eax + 0x874510]
mov dword [esp + 0x50], ecx
mov ecx, dword [eax + 0x874720]
mov eax, dword [eax + 0x874930]
mov dword [esp + 0x20], eax
mov dword [esp + 0x98], edx
mov eax, 0x55555556
fild dword [esp + 0x20]
imul ecx
fld qword [0x715850]
fmul st(1)
mov esi, edx
shr esi, 0x1f
add esi, edx
mov dword [esp + 0x90], esi
call fcn.005f275c
mov ecx, 0x40000000
sub ecx, eax
mov eax, esi
call fcn.004dcac0
fmul qword [0x715680]
mov dword [esp + 0x20], eax
call fcn.005f275c
mov ecx, eax
mov eax, esi
mov dword [esp + 0x24], ecx
call fcn.004dcac0
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x54], eax
mov eax, dword [ecx - 6]
xor esi, esi
test eax, 0x101
jne 0x44736e
test byte [0x85c164], 0x20
je 0x447650
mov eax, dword [esp + 0x30]
cmp eax, 0xffffffff
je 0x44737f
cmp eax, ebp
jne 0x447654
mov edx, dword [esp + 0x2c]
movzx eax, byte [edx - 1]
shl eax, 1
cdq
idiv dword [0x863b74]
inc eax
cmp eax, 1
jge 0x44739d
mov eax, 1
jmp 0x4473a7
cmp eax, 4
jle 0x4473a7
mov eax, 4
mov ecx, dword [esp + 0x114]
sub ecx, 2
je 0x447453
sub ecx, 2
je 0x44740d
sub ecx, 2
jne 0x44749f
mov ebp, dword [esp + eax*4 + 0xa0]
test ebp, ebp
je 0x44749f
fild dword [ebp + 0x38]
lea eax, [ebx - 0x1c]
mov dword [esp + 0x14], eax
push 0
fmul dword [0x7158cc]
push 0x425c0000
fiadd dword [esp + 0x1c]
call fcn.005f275c
fild dword [ebp + 0x34]
lea ecx, [edi - 0x12]
mov dword [esp + 0x1c], ecx
fmul dword [0x7158cc]
fiadd dword [esp + 0x1c]
jmp 0x447492
mov ebp, dword [esp + eax*4 + 0xa0]
test ebp, ebp
je 0x44749f
fild dword [ebp + 0x38]
lea edx, [ebx - 0x18]
mov dword [esp + 0x14], edx
push 0
fmul dword [0x71590c]
push 0x42400000
fiadd dword [esp + 0x1c]
call fcn.005f275c
fild dword [ebp + 0x34]
push eax
lea eax, [edi - 0xe]
fmul dword [0x71590c]
mov dword [esp + 0x20], eax
fiadd dword [esp + 0x20]
jmp 0x447493
mov ebp, dword [esp + eax*4 + 0xa0]
test ebp, ebp
je 0x44749f
fild dword [ebp + 0x38]
lea ecx, [ebx - 0x14]
mov dword [esp + 0x14], ecx
push 0
fmul dword [0x715908]
push 0x42240000
fiadd dword [esp + 0x1c]
call fcn.005f275c
fild dword [ebp + 0x34]
lea edx, [edi - 0xc]
mov dword [esp + 0x1c], edx
fmul dword [0x715908]
fiadd dword [esp + 0x1c]
push eax
call fcn.005f275c
push eax
push ebp
call fcn.004bc130
cmp dword [esp + 0x30], 0xffffffff
jne 0x447659
mov eax, dword [esp + 0x70]
test eax, eax
je 0x447525
cmp dword [eax + 0x290], 1
jne 0x447525
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 6]
mov eax, 0x51eb851f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
jns 0x4474d9
xor eax, eax
jmp 0x4474e3
cmp eax, 3
jle 0x4474e3
mov eax, 3
fild dword [esp + 0x24]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x50]
sub esp, 8
fmul qword [0x715750]
lea eax, [eax + eax*2]
fstp dword [esp + 4]
add ecx, ebx
fild dword [esp + 0x98]
add edx, edi
shl eax, 6
add eax, 0x8d0418
fstp dword [esp]
push ecx
push edx
push eax
call fcn.004bc130
mov esi, 1
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x4475c3
mov edx, dword [esp + 0x2c]
mov al, byte [edx]
cmp al, 5
jl 0x4475c3
cmp dword [ecx + 0x290], 1
jne 0x4475c3
movsx ecx, al
add ecx, 5
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
lea eax, [edx + eax - 1]
test eax, eax
jge 0x447569
xor eax, eax
jmp 0x447573
cmp eax, 3
jle 0x447573
mov eax, 3
mov edx, dword [esp + 0x98]
fild dword [esp + 0x24]
mov ecx, esi
imul ecx, dword [esp + 0x54]
fmul qword [0x715750]
add ecx, edx
sub esp, 8
mov edx, esi
imul edx, dword [esp + 0x28]
fstp dword [esp + 4]
fild dword [esp + 0x98]
fstp dword [esp]
add ecx, ebx
push ecx
mov ecx, dword [esp + 0x5c]
lea eax, [eax + eax*2]
add edx, ecx
add edx, edi
shl eax, 6
push edx
add eax, 0x8d0718
push eax
call fcn.004bc130
inc esi
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x447667
mov ecx, dword [esp + 0x58]
mov ax, word [ecx]
test ax, ax
je 0x447667
mov edx, dword [esp + 0x6c]
cmp dword [edx + 0x290], 1
jne 0x447667
movsx eax, ax
dec eax
jns 0x4475f6
xor eax, eax
jmp 0x447600
cmp eax, 3
jle 0x447600
mov eax, 3
fild dword [esp + 0x24]
mov ebp, dword [esp + 0x98]
mov edx, dword [esp + 0x50]
mov ecx, esi
imul esi, dword [esp + 0x20]
fmul qword [0x715750]
imul ecx, dword [esp + 0x54]
sub esp, 8
add esi, edx
add ecx, ebp
fstp dword [esp + 4]
add ecx, ebx
fild dword [esp + 0x98]
lea edx, [eax + eax*2]
add esi, edi
shl edx, 6
fstp dword [esp]
push ecx
push esi
add edx, 0x8d0a18
push edx
call fcn.004bc130
jmp 0x447667
mov eax, dword [esp + 0x30]
cmp eax, 0xffffffff
je 0x447667
mov eax, dword [esp + 0x48]
cmp dword [esp + 0x30], eax
jne 0x44792d
mov al, byte [esp + 0x43]
neg al
push 0
push ecx
mov ecx, dword [esp + 0xbc]
sbb eax, eax
and eax, 0x14
add eax, 0x28
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fstp dword [esp]
push ebx
push edi
push ecx
call fcn.004bc130
jmp 0x44792d
cmp dword [esp + 0x3c], 1
jne 0x447931
mov eax, dword [esp + 0x30]
cmp eax, 0xffffffff
je 0x4476b3
cmp eax, ebp
jne 0x447931
mov eax, dword [esp + 0x114]
mov ecx, dword [esp + 0x48]
dec eax
mov ebx, dword [esp + 0x38]
cdq
mov edi, dword [esp + 0x28]
sub eax, edx
sar eax, 1
mov ebp, dword [0x873a9c]
imul eax, eax, 0x2c
mov edx, dword [0x873aa0]
add eax, ecx
shl eax, 2
mov ecx, dword [eax + 0x873aac]
add ecx, ebx
mov ebx, dword [eax + 0x873cbc]
add ebx, edi
mov edi, dword [0x873a98]
or edi, 0xffffff00
shl edi, 8
or edi, ebp
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + 0x873ecc]
shl edi, 8
or edi, edx
mov edx, dword [eax + 0x8740dc]
mov dword [esp + 0x50], ecx
shl ecx, 4
mov dword [esp + 0x54], edx
mov eax, 0x51eb851f
imul ecx
mov al, byte [esp + 0x43]
sar edx, 5
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
test al, al
je 0x44773f
mov edi, 0xffff0000
mov eax, dword [0x873aa4]
dec eax
je 0x447761
dec eax
je 0x447755
mov eax, dword [0x8cbdd8]
mov dword [esp + 0x24], eax
jmp 0x44776b
mov ecx, dword [0x8cb56c]
mov dword [esp + 0x24], ecx
jmp 0x44776b
mov edx, dword [0x8cb570]
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x4c]
mov edx, dword [eax]
sub esp, 0xc
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
push str._CITYNAME
mov esi, 0x8ebf58
mov dword [ecx + 8], eax
call fcn.004f7660
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x40]
add esp, 0x10
cmp eax, ecx
jne 0x4477dd
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
push 0
push 0xffffffffffffffff
push 4
push edi
mov edi, dword [esp + 0x38]
push 0x4b
lea edx, [edi - 0x48]
push edx
push esi
push 0x86bb48
call fcn.004b0b40
add esp, 0x20
push 0x33b40000
push 0x42700000
add edi, 0xffffffe8
push edi
push esi
jmp 0x44790b
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x14]
neg eax
push eax
mov eax, dword [esp + 0x28]
push 0xffffffffffffffff
push 1
push edi
mov edi, dword [esp + 0x60]
push edi
push ebx
push esi
push 0x86bb48
call fcn.004b0b40
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x44]
add esp, 0x20
test eax, eax
mov eax, dword [0x8ccc18]
mov dword [0x85c11c], edi
jne 0x447822
mov ecx, dword [0x8cbdd8]
imul eax, edi
cdq
and edx, 0x3ff
push 0
add eax, edx
push 0x86bb48
sar eax, 0xa
push ecx
mov dword [esp + 0x2c], eax
mov dword [0x8cbde0], ecx
call fcn.0050ac80
fild dword [0x72837c]
fmul st(1)
fidiv dword [0x8ccc18]
fimul dword [esp + 0x20]
fmul dword [0x715584]
call fcn.005f275c
fstp st(0)
mov dword [esp + 0x14], eax
mov eax, dword [0x8742f8]
test eax, eax
jne 0x447925
fild dword [esp + 0x54]
fld qword [0x715680]
fmul st(1)
call fcn.005f275c
fmul qword [0x715850]
mov edi, ebp
neg edi
mov dword [esp + 0x20], eax
shl edi, 1
call fcn.005f275c
fild dword [esp + 0x20]
mov ecx, 0x40000000
sub ecx, eax
fmul qword [0x715750]
lea eax, [ebp + ebp*2]
cdq
sub eax, edx
mov edx, dword [esp + 0x14]
sub esp, 8
sar eax, 1
fstp dword [esp + 4]
lea ebp, [eax + edx]
fild dword [esp + 0x58]
mov eax, edi
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x1c], ebp
fstp dword [esp]
call fcn.004dcac0
sub ebx, eax
mov eax, ebp
mov ebp, dword [esp + 0x28]
mov ecx, ebp
call fcn.004dcac0
add ebx, eax
push ebx
mov eax, edi
mov ecx, ebp
call fcn.004dcac0
mov ecx, dword [esp + 0x60]
mov edi, eax
mov eax, dword [esp + 0x20]
call fcn.004dcac0
add edi, esi
add eax, edi
push eax
mov eax, dword [esp + 0x3c]
movsx eax, byte [eax - 2]
lea ecx, [eax + eax*2]
shl ecx, 6
add ecx, 0x8d9ad8
push ecx
call fcn.004bc130
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x38]
mov ebp, dword [esp + 0x48]
cmp dword [esp + 0x74], 0x85d450
jle 0x447b54
cmp dword [esp + 0x114], 4
jl 0x447b54
mov edx, dword [esp + 0x2c]
mov eax, dword [edx - 6]
test ah, 1
jne 0x44796f
mov al, byte [0x86bb25]
test al, al
jne 0x44796f
test byte [0x85c164], 0x20
je 0x447b54
cmp dword [esp + 0x30], 0xffffffff
jne 0x447b54
mov eax, dword [0x873aa4]
dec eax
je 0x44799c
dec eax
je 0x447990
mov eax, dword [0x8cbdd8]
mov dword [esp + 0x24], eax
jmp 0x4479a6
mov ecx, dword [0x8cb56c]
mov dword [esp + 0x24], ecx
jmp 0x4479a6
mov edx, dword [0x8cb570]
mov dword [esp + 0x24], edx
mov ebp, dword [0x873a98]
mov edx, dword [0x873a9c]
mov eax, dword [0x873aa0]
or ebp, 0xffffff00
shl ebp, 8
or ebp, edx
shl ebp, 8
or ebp, eax
mov eax, dword [esp + 0x114]
cdq
sub eax, edx
sar eax, 1
lea eax, [eax*8 + 0xa]
mov dword [0x85c11c], eax
mov eax, dword [esp + 0x3c]
sub esp, 0xc
test eax, eax
mov esi, 0x8ebf58
jne 0x447af2
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx]
mov edx, esp
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [edx + 4], eax
push str._CITYNAME
mov dword [edx + 8], ecx
call fcn.004f7660
mov eax, dword [0x85c11c]
imul eax, dword [0x8ccc18]
mov ecx, dword [esp + 0x34]
cdq
and edx, 0x3ff
add eax, edx
sar eax, 0xa
add esp, 0x10
test ecx, ecx
mov dword [esp + 0x20], eax
jne 0x447a40
mov ecx, dword [0x8cbdd8]
push 0
push 0x86bb48
push ecx
mov dword [0x8cbde0], ecx
call fcn.0050ac80
mov esi, dword [esp + 0x114]
xor edx, edx
cmp esi, 4
setne dl
push 0x33b40000
push ecx
xor eax, eax
mov ecx, ebx
dec edx
and edx, 0xfffffff6
add edx, 0x2d
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
cmp esi, 4
setne al
fstp dword [esp]
fild dword [0x72837c]
fmul st(1)
lea eax, [eax + eax + 8]
fidiv dword [0x8ccc18]
sub ecx, eax
push ecx
fimul dword [esp + 0x2c]
fmul dword [0x715790]
call fcn.005f275c
fstp st(0)
cdq
sub eax, edx
xor edx, edx
sar eax, 1
cmp esi, 4
setne dl
lea edx, [edx + edx + 3]
sub edx, eax
mov eax, dword [esp + 0x38]
movsx eax, byte [eax - 2]
lea ecx, [eax + eax*2]
add edx, edi
shl ecx, 6
push edx
add ecx, 0x8d9ad8
push ecx
call fcn.004bc130
mov edx, dword [esp + 0xb4]
push 0
push 0x420c0000
push ebx
push edi
push edx
call fcn.004bc130
jmp 0x447b50
mov eax, dword [esp + 0x58]
mov edx, dword [eax]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
push str._CITYNAME
mov dword [ecx + 8], eax
call fcn.004f7660
mov ecx, dword [0x85c11c]
push 0
push 0xffffffffffffffff
push 4
push ebp
mov ebp, dword [esp + 0x134]
xor edx, edx
cmp ebp, 4
sete dl
push ecx
add edi, 0xfffffffb
lea edx, [edx*4 + 4]
lea eax, [edx + ebx - 0x18]
push eax
mov eax, dword [esp + 0x4c]
push edi
push 0x86bb48
call fcn.004b0b40
add esp, 0x30
mov ebp, dword [esp + 0x48]
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x4c]
add eax, 0x10
inc ebp
add edi, 0x94
add esi, 0x20
add edx, 0xc
cmp eax, 0x85d970
mov dword [esp + 0x48], ebp
mov dword [esp + 0x74], eax
mov dword [esp + 0x58], edi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x4c], edx
jl 0x447117
cmp dword [esp + 0x114], 4
jle 0x448161
mov ecx, dword [0x727540]
or eax, 0xffffffff
cmp ecx, eax
jne 0x448164
mov cl, byte [esp + 0x120]
test cl, cl
je 0x448164
mov edx, dword [esp + 0x64]
mov esi, dword [edx + 0x290]
mov ecx, 1
cmp esi, ecx
jne 0x448164
cmp dword [esp + 0x3c], ecx
jne 0x448164
cmp dword [esp + 0x30], eax
jne 0x448249
xor eax, eax
mov ecx, 0x12
lea edi, [esp + 0xb8]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, 0xffffffec
mov dword [esp + 0x50], 0x640000
mov dword [esp + 0x58], 0x64
mov ebp, 0x6400
lea esp, [esp]
mov eax, dword [0x85c100]
lea eax, [eax + edi + 0x3e8]
cdq
mov ecx, 0x3e8
idiv ecx
imul edx, edx, 0x1c
mov ecx, dword [edx + 0x864d24]
test ecx, ecx
je 0x447d93
mov al, byte [edx + 0x864d10]
cmp al, 0x23
je 0x447d93
test al, 0x20
je 0x447d93
mov edx, dword [edx + 0x864d28]
lea eax, [esp + 0x28]
push eax
mov eax, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x24]
push eax
mov eax, 0x10624dd3
imul edx
sar edx, 6
mov ebx, dword [esp + 0x120]
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [esp + 0x48]
call fcn.004449f0
add esp, 0x10
test eax, eax
je 0x447d93
mov esi, dword [esp + 0x28]
test esi, esi
jl 0x447d93
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x50]
mov ecx, ebp
or ecx, edx
or ecx, eax
or ecx, 0xff000000
push ecx
push edi
push 0x80
push 0xffffffffffffffff
push 0x6f7896
push 0
call fcn.0043cd40
mov eax, 0x2aaaaaab
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
lea esi, [eax + eax*2]
shl esi, 2
mov eax, 0x2aaaaaab
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov cl, byte [esp + eax + 0xd0]
add esp, 0x18
test cl, cl
mov dword [0x85c11c], 0x32
mov dword [esp + 0x28], esi
je 0x447d56
mov ecx, dword [0x85c268]
add ecx, 0xfffffff4
mov edi, edi
cmp esi, ecx
jge 0x447d52
add esi, 0xc
mov eax, 0x2aaaaaab
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, byte [esp + eax + 0xb8]
test dl, dl
jne 0x447d30
mov dword [esp + 0x28], esi
mov edx, dword [esp + 0x38]
push 0
push 0xffffffffffffffff
push 4
push 0xff000000
push 0x32
lea ecx, [esi + 4]
push ecx
push edx
push 0x86bb48
xor eax, eax
call fcn.004b0b40
mov eax, 0x2aaaaaab
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add esp, 0x20
add eax, edx
mov byte [esp + eax + 0xb8], 1
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x50]
sub ebp, 0x500
sub edx, 5
sub ecx, 0x50000
inc edi
test ebp, ebp
mov dword [esp + 0x58], edx
mov dword [esp + 0x50], ecx
jg 0x447c20
mov ebp, 0x863b88
cmp word [ebp - 0x10], 0
jle 0x448150
mov cx, word [ebp - 8]
test cl, 8
je 0x447f1b
mov ax, word [ebp - 0xc]
cmp ax, 0xffff
je 0x447f1b
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x114]
movsx eax, ax
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x20]
push edx
shl eax, 4
mov edx, dword [eax + 0x85d174]
mov eax, dword [eax + 0x85d170]
push ecx
push edx
lea ecx, [esp + 0x48]
call fcn.004449f0
add esp, 0x10
test eax, eax
je 0x448150
mov edi, dword [esp + 0x28]
test edi, edi
jl 0x448150
movsx eax, word [ebp - 0xa]
cdq
mov ecx, 0x1a
idiv ecx
mov eax, dword [ebp]
sub esp, 0xc
add dl, 0x41
cmp eax, 0x28
jl 0x447e5d
lea edx, [eax + eax*2 - 0x78]
mov ecx, esp
lea eax, [edx*4 + 0x8cd178]
push str.Home_port_of__EVILNAME
jmp 0x447ea8
cmp eax, 0x1e
jl 0x447e97
lea ecx, [eax + eax*2 - 0x5a]
lea eax, [ecx*4 + 0x8cd19c]
mov esi, dword [eax]
mov ecx, esp
mov dword [ecx], esi
mov esi, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], esi
mov dword [ecx + 8], eax
movsx ecx, dl
push ecx
push str.Home_port_of_Mr.__CHAR.__NPCNAME
mov esi, 0x8ebf58
call fcn.004f7660
add esp, 0x14
jmp 0x447ec5
lea edx, [eax + eax*2]
mov ecx, esp
lea eax, [edx*4 + 0x8cd100]
push str.Home_port_of__TOP10
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov esi, 0x8ebf58
mov dword [ecx + 8], eax
call fcn.004f7660
add esp, 0x10
mov eax, 0x2aaaaaab
imul edi
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov al, byte [esp + ecx + 0xb8]
test al, al
je 0x4480e6
mov ecx, dword [0x85c268]
add ecx, 0xfffffff4
lea ecx, [ecx]
cmp edi, ecx
jge 0x4480e2
add edi, 0xc
mov eax, 0x2aaaaaab
imul edi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, byte [esp + eax + 0xb8]
test dl, dl
jne 0x447ef0
jmp 0x4480e2
test cl, 0x40
je 0x448150
mov ax, word [ebp + 0x12]
cmp ax, 0xffff
je 0x448150
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x114]
movsx eax, ax
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x20]
push edx
shl eax, 4
mov edx, dword [eax + 0x85d174]
mov eax, dword [eax + 0x85d170]
push ecx
push edx
lea ecx, [esp + 0x48]
call fcn.004449f0
add esp, 0x10
test eax, eax
je 0x448150
mov edi, dword [esp + 0x28]
test edi, edi
jl 0x448150
mov ax, word [ebp + 0x10]
cmp ax, word [ebp + 0x12]
mov eax, dword [ebp]
jne 0x448012
sub esp, 0xc
cmp eax, 0x28
jl 0x447fbb
lea ecx, [eax + eax*2 - 0x78]
lea edx, [ecx*4 + 0x8cd178]
mov ecx, dword [edx]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
push str._EVILNAME_last_seen_here.
jmp 0x448088
cmp eax, 0x1e
mov esi, 0x8ebf58
jl 0x447fec
lea eax, [eax + eax*2 - 0x5a]
lea ecx, [eax*4 + 0x8cd19c]
mov eax, dword [ecx]
mov edx, esp
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
push str.Mr.__NPCNAME_last_seen_here.
jmp 0x44808d
lea edx, [eax + eax*2]
lea eax, [edx*4 + 0x8cd100]
mov edx, dword [eax]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
push str._TOP10_last_seen_here.
jmp 0x44808d
sub esp, 0xc
cmp eax, 0x28
jl 0x44803e
lea ecx, [eax + eax*2 - 0x78]
lea edx, [ecx*4 + 0x8cd178]
mov ecx, dword [edx]
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
push str._EVILNAME_traveling_here.
jmp 0x448088
cmp eax, 0x1e
jl 0x448067
lea eax, [eax + eax*2 - 0x5a]
lea ecx, [eax*4 + 0x8cd19c]
mov eax, dword [ecx]
mov edx, esp
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
push str.Mr.__NPCNAME_traveling_here.
jmp 0x448088
lea edx, [eax + eax*2]
lea eax, [edx*4 + 0x8cd100]
mov edx, dword [eax]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
push str._TOP10_traveling_here.
mov esi, 0x8ebf58
call fcn.004f7660
mov eax, 0x2aaaaaab
imul edi
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov al, byte [esp + ecx + 0xc8]
add esp, 0x10
test al, al
je 0x4480e6
mov ecx, dword [0x85c268]
add ecx, 0xfffffff4
lea esp, [esp]
cmp edi, ecx
jge 0x4480e2
add edi, 0xc
mov eax, 0x2aaaaaab
imul edi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dl, byte [esp + eax + 0xb8]
test dl, dl
jne 0x4480c0
mov dword [esp + 0x28], edi
mov esi, dword [esp + 0x38]
push 0
push 0xffffffffffffffff
push 4
push 0xff000000
mov ebx, 0x32
push ebx
lea ecx, [edi + 1]
push ecx
lea edx, [esi + 1]
push edx
xor eax, eax
push 0x86bb48
mov dword [0x85c11c], ebx
call fcn.004b0b40
push 0
push 0xffffffffffffffff
push 4
push 0xffc00000
push ebx
push edi
push esi
xor eax, eax
push 0x86bb48
mov dword [0x85c11c], ebx
call fcn.004b0b40
mov eax, 0x2aaaaaab
imul edi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add esp, 0x40
add eax, edx
mov byte [esp + eax + 0xb8], 1
add ebp, 0x24
cmp ebp, 0x864008
jl 0x447dc0
jmp 0x44816e
or eax, 0xffffffff
cmp dword [esp + 0x30], eax
jne 0x448249
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [0x816308]
push edx
push eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov ebx, dword [esp + 0x120]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
mov ecx, dword [0x816304]
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [esp + 0x48]
call fcn.004449f0
mov eax, dword [esp + 0x4c]
add esp, 0x10
test eax, eax
jne 0x4481ef
mov eax, dword [esp + 0x28]
push 0
lea edx, [ebx + ebx*4 + 0x1e]
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
mov edx, dword [esp + 0x7c]
push ecx
mov ecx, dword [esp + 0x40]
fstp dword [esp]
push eax
push ecx
push edx
call fcn.004bc130
jmp 0x448249
mov al, byte [0x85c164]
test al, al
mov esi, 0x8ebf58
jns 0x448204
push str.Your_ship_is_here.
jmp 0x448209
push str.You_are_here.
call fcn.004f7660
mov ecx, dword [esp + 0x3c]
add esp, 4
push 0
lea eax, [ebx + ebx*4]
cdq
push 0xffffffffffffffff
sub eax, edx
push 4
sar eax, 1
add eax, 0x37
push 0xff000000
push eax
mov dword [0x85c11c], eax
mov eax, dword [esp + 0x3c]
push eax
mov eax, dword [0x8cb568]
push ecx
push 0x86bb48
call fcn.004b0b40
add esp, 0x20
mov eax, dword [esp + 0x3c]
inc eax
cmp eax, 2
mov dword [esp + 0x3c], eax
jl 0x4470f0
mov al, byte [esp + 0x120]
test al, al
je 0x4483c1
cmp dword [esp + 0x30], 0xffffffff
jne 0x4483c1
mov esi, dword [esp + 0x60]
test esi, esi
je 0x4482c2
fild dword [esi + 0x38]
mov eax, 0x55555556
imul dword [0x85c268]
fmul dword [0x7158c4]
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x14], eax
push 0
fiadd dword [esp + 0x18]
push 0x427a0000
call fcn.005f275c
fild dword [esi + 0x34]
push eax
fmul dword [0x7158c4]
call fcn.005f275c
push eax
push esi
call fcn.004bc130
mov ebx, dword [esp + 0x5c]
test ebx, ebx
je 0x44833c
mov ecx, dword [0x85c268]
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
lea edx, [edx + ecx - 0x16]
mov dword [esp + 0x14], edx
push 0
fild dword [esp + 0x18]
push 0x42480000
fild dword [ebx + 0x38]
fmul dword [0x715574]
faddp st(1)
call fcn.005f275c
mov ecx, dword [0x85c26c]
push eax
shl ecx, 2
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax - 0x13]
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
fild dword [ebx + 0x34]
fmul dword [0x715574]
faddp st(1)
call fcn.005f275c
push eax
push ebx
call fcn.004bc130
mov ecx, dword [0x85c268]
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 0x29]
mov dword [esp + 0x14], ecx
push 0x3dcccccd
fild dword [esp + 0x18]
push 0x41900000
fild dword [0x8d4590]
fmul dword [0x715904]
faddp st(1)
call fcn.005f275c
mov ecx, dword [0x85c26c]
push eax
shl ecx, 2
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 0x2c]
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
fild dword [0x8d458c]
fmul dword [0x715904]
faddp st(1)
call fcn.005f275c
push eax
push 0x8d4558
call fcn.004bc130
mov ebp, dword [esp + 0x7c]
jmp 0x448416
mov ebp, dword [esp + 0x7c]
test ebp, ebp
je 0x448412
mov ecx, dword [0x85c268]
fild dword [ebp + 0x38]
add ecx, ecx
mov eax, 0x55555556
fmul dword [0x7158c4]
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x14], eax
push 0
fiadd dword [esp + 0x18]
push 0x427a0000
call fcn.005f275c
fild dword [ebp + 0x34]
push eax
fmul dword [0x7158c4]
call fcn.005f275c
push eax
push ebp
call fcn.004bc130
mov ebx, dword [esp + 0x5c]
xor ecx, ecx
mov edi, 0xfffe
lea ecx, [ecx]
mov eax, dword [esp + ecx*4 + 0x64]
test eax, eax
je 0x44843d
mov dl, byte [esp + 0x120]
test dl, dl
jne 0x448439
or byte [eax + 0x20], 1
jmp 0x44843d
and word [eax + 0x20], di
inc ecx
cmp ecx, 4
jl 0x448420
mov esi, dword [0x8ccbe8]
mov ecx, 0xf
add esi, 0x54
test ecx, ecx
jl 0x448475
cmp ecx, 0x2b
jge 0x448475
mov eax, dword [esi]
test eax, eax
je 0x448475
mov dl, byte [esp + 0x120]
test dl, dl
jne 0x448471
or byte [eax + 0x20], 1
jmp 0x448475
and word [eax + 0x20], di
inc ecx
add esi, 4
cmp ecx, 0x1a
jl 0x448451
mov edx, dword [0x8de310]
mov esi, dword [0x8de30c]
call fcn.0042c6c0
mov esi, eax
cmp dword [esp + 0x118], 2
je 0x449133
mov eax, dword [esp + 0x11c]
test eax, eax
je 0x448538
mov edi, dword [esp + 0x1c]
cmp edi, 0x64
mov ebx, dword [esp + 0x114]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], edi
mov dword [esp + 0x8c], ebp
jge 0x4484e1
mov dword [esp + 0x1c], 0x64
jmp 0x4484f8
mov eax, 0x400
cdq
idiv ebx
mov ecx, 0x400
sub ecx, eax
cmp edi, ecx
jle 0x4484f8
mov dword [esp + 0x1c], ecx
cmp ebp, 1
jge 0x448507
mov dword [esp + 0x18], 1
jmp 0x44851e
mov eax, 0x286
cdq
idiv ebx
mov ecx, 0x286
sub ecx, eax
cmp ebp, ecx
jle 0x44851e
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x84]
push ecx
call dword [esp + 0x120]
add esp, 4
test eax, eax
jne 0x448f29
cmp esi, 0xb
jl 0x448574
cmp esi, 0x80
jge 0x448574
cmp dword [esp + 0x80], 0xffffffff
jne 0x44856b
push 0xffffffffffffffff
push 0xbf800000
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0x36
push 0x8ca278
call fcn.00488920
add esp, 0x1c
mov dword [esp + 0x80], esi
jmp 0x44857f
mov dword [esp + 0x80], 0xffffffff
cmp esi, 0xffffffff
je 0x448812
cmp esi, 9
mov byte [0x86bb48], 0
mov ebx, 1
ja case.default.0x44859d
jmp dword [esi*4 + 0x449224]
push str.Zoom_In
mov esi, 0x8ebf58
call fcn.004f7660
mov ecx, dword [0x85c26c]
shl ecx, 2
mov eax, 0x66666667
imul ecx
mov ecx, dword [0x85c268]
sar edx, 1
mov edi, edx
shr edi, 0x1f
add ecx, ecx
add edi, edx
mov eax, 0x55555556
imul ecx
mov eax, edx
add esp, 4
shr eax, 0x1f
lea ecx, [edx + eax + 0x44]
mov dword [esp + 0x44], ecx
mov ebx, 2
jmp 0x4487f0
mov ecx, dword [0x85c26c]
shl ecx, 2
mov eax, 0x66666667
imul ecx
mov ecx, dword [0x85c268]
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea edi, [edx + eax + 0x52]
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
lea edx, [edx + ecx + 0x44]
push str.Zoom_Out
mov esi, 0x8ebf58
mov dword [esp + 0x38], edi
mov dword [esp + 0x48], edx
call fcn.004f7660
add esp, 4
jmp 0x448b02
mov ecx, dword [0x85c26c]
shl ecx, 2
mov eax, 0x66666667
imul ecx
mov ecx, dword [0x85c268]
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea edi, [edx + eax + 0xc]
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
lea edx, [edx + ecx + 0x2d]
push str.Left
mov esi, 0x8ebf58
mov dword [esp + 0x38], edi
mov dword [esp + 0x48], edx
call fcn.004f7660
add esp, 4
jmp 0x448b02
mov ecx, dword [0x85c26c]
shl ecx, 2
mov eax, 0x66666667
imul ecx
mov ecx, dword [0x85c268]
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea edi, [edx + eax + 0x4a]
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
lea edx, [edx + ecx + 0x2d]
push str.Right
mov esi, 0x8ebf58
mov dword [esp + 0x38], edi
mov dword [esp + 0x48], edx
call fcn.004f7660
add esp, 4
mov ebx, 2
jmp 0x4487f4
mov ecx, dword [0x85c26c]
shl ecx, 2
mov eax, 0x66666667
imul ecx
mov ecx, dword [0x85c268]
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea edi, [edx + eax + 0x2a]
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
lea edx, [edx + ecx - 0x14]
push 0x7037d8
jmp 0x448762
mov ecx, dword [0x85c26c]
shl ecx, 2
mov eax, 0x66666667
imul ecx
mov ecx, dword [0x85c268]
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea edi, [edx + eax + 0x2a]
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
lea edx, [edx + ecx + 0x54]
push str.Down
mov esi, 0x8ebf58
mov dword [esp + 0x38], edi
mov dword [esp + 0x48], edx
call fcn.004f7660
mov eax, dword [0x8ccc18]
imul eax, eax, 0x3c
cdq
and edx, 0x3ff
add esp, 4
add eax, edx
sar eax, 0xa
push 0
mov dword [esp + 0x18], eax
mov eax, dword [0x8cbdd8]
push 0x86bb48
push eax
mov ebx, 4
mov dword [0x85c11c], 0x3c
mov dword [0x8cbde0], eax
call fcn.0050ac80
fild dword [0x72837c]
fmul st(1)
fidiv dword [0x8ccc18]
fimul dword [esp + 0x14]
fmul dword [0x715584]
call fcn.005f275c
cdq
sub eax, edx
sar eax, 1
mov ecx, dword [0x85c26c]
fstp st(0)
lea edx, [eax + edi]
lea esi, [ecx - 5]
cmp edx, esi
jle 0x4487f4
sub ecx, eax
sub ecx, 0xa
mov edi, ecx
mov dword [esp + 0x34], edi
mov eax, dword [esp + 0x44]
push 0
push 0xffffffffffffffff
push ebx
push 0xffffffffffffffff
push 0x3c
push eax
push edi
push 0x86bb48
xor eax, eax
call fcn.004b0b40
add esp, 0x20
mov eax, dword [esp + 0x30]
cmp eax, 0xffffffff
je 0x448936
mov ebx, eax
push ebx
call fcn.00444790
mov edi, dword [0x85c268]
mov esi, dword [0x85c26c]
mov eax, 0x55555556
imul edi
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
mov eax, 0x2aaaaaab
imul esi
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ecx, esi
sub ecx, edx
mov eax, 0x2aaaaaab
imul edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
add esp, 4
push eax
mov eax, 0x2aaaaaab
imul esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, ebp
call fcn.00488110
push 0
push 0x46
call fcn.00487950
mov eax, dword [0x85c268]
cdq
push 0
push 0xffffffffffffffff
push 1
and edx, 7
add eax, edx
sar eax, 3
push 0xffffffffffffffff
push 0x3c
push eax
mov eax, dword [0x85c26c]
cdq
and edx, 0xf
add eax, edx
sar eax, 4
push eax
push 0x86bb48
xor eax, eax
call fcn.004b0b40
lea ecx, [ebx + ebx*2]
lea edx, [ecx*4 + 0x8ddd08]
mov ecx, dword [edx]
add esp, 0x24
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [eax + 4], ecx
push str._CITYNAME_Information
mov esi, 0x8ebf58
mov dword [eax + 8], edx
call fcn.004f7660
mov ecx, dword [0x85c268]
mov eax, 0x2aaaaaab
imul ecx
push 0
push 0xffffffffffffffff
push 1
push 0xffffffffffffffff
sar edx, 2
push 0x5f
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax + 4]
mov eax, dword [0x85c26c]
cdq
and edx, 0xf
add eax, edx
push ecx
sar eax, 4
push eax
push 0x86bb48
xor eax, eax
call fcn.004b0b40
push ebx
call fcn.00445620
add esp, 0x34
mov al, byte [esp + 0x120]
test al, al
jne 0x448b74
cmp dword [esp + 0x30], 0xffffffff
mov eax, dword [0x85c268]
push 0xa
je 0x448b5d
mov edx, dword [0x85c26c]
add eax, 0xfffffeac
add edx, 0xffffffc4
push edx
jmp 0x448b6a
mov eax, dword [esp + 0x64]
cmp dword [eax + 0x290], ebx
mov esi, 0x8ebf58
jne 0x448983
push str.Hide_nEvents
jmp 0x448988
push str.Show_nEvents
call fcn.004f7660
mov ecx, dword [0x85c26c]
shl ecx, 2
mov eax, 0x66666667
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
lea edi, [edx + ecx + 0x10]
mov ecx, dword [0x85c268]
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov eax, edx
add esp, 4
shr eax, 0x1f
lea ecx, [edx + eax - 0x12]
mov dword [esp + 0x44], ecx
mov ebx, 2
jmp 0x4487f0
mov edx, dword [esp + 0x6c]
cmp dword [edx + 0x290], ebx
mov esi, 0x8ebf58
jne 0x4489e9
push str.Hide_nRomance
jmp 0x4489ee
push str.Show_nRomance
call fcn.004f7660
mov ecx, dword [0x85c26c]
shl ecx, 2
mov eax, 0x66666667
imul ecx
mov ecx, dword [0x85c268]
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea edi, [edx + eax + 0x44]
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov ecx, edx
add esp, 4
shr ecx, 0x1f
lea edx, [edx + ecx - 0x12]
mov dword [esp + 0x34], edi
mov dword [esp + 0x44], edx
jmp 0x448b02
mov eax, dword [esp + 0x68]
cmp dword [eax + 0x290], ebx
mov esi, 0x8ebf58
jne 0x448a4e
push str.Hide_nSoldiers
jmp 0x448a53
push str.Show_nSoldiers
call fcn.004f7660
mov ecx, dword [0x85c26c]
shl ecx, 2
mov eax, 0x66666667
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
lea edi, [edx + ecx + 0x14]
mov ecx, dword [0x85c268]
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov eax, edx
add esp, 4
shr eax, 0x1f
lea ecx, [edx + eax + 0x4e]
mov dword [esp + 0x44], ecx
mov ebx, 2
jmp 0x4487f0
mov edx, dword [esp + 0x70]
cmp dword [edx + 0x290], ebx
mov esi, 0x8ebf58
jne 0x448ab4
push str.Hide_nWealth
jmp 0x448ab9
push str.Show_nWealth
call fcn.004f7660
mov ecx, dword [0x85c26c]
shl ecx, 2
mov eax, 0x66666667
imul ecx
mov ecx, dword [0x85c268]
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea edi, [edx + eax + 0x40]
add ecx, ecx
mov eax, 0x55555556
imul ecx
mov ecx, edx
add esp, 4
shr ecx, 0x1f
lea edx, [edx + ecx + 0x4e]
mov dword [esp + 0x34], edi
mov dword [esp + 0x44], edx
jmp 0x448b02
mov edi, dword [esp + 0x34]
mov eax, dword [0x8ccc18]
imul eax, eax, 0x3c
cdq
and edx, 0x3ff
add eax, edx
sar eax, 0xa
push 0
mov dword [esp + 0x18], eax
mov eax, dword [0x8cbdd8]
push 0x86bb48
push eax
mov dword [0x85c11c], 0x3c
mov dword [0x8cbde0], eax
call fcn.0050ac80
fild dword [0x72837c]
fmul st(1)
fidiv dword [0x8ccc18]
fimul dword [esp + 0x14]
fmul dword [0x715584]
call fcn.005f275c
jmp 0x4487d7
mov ecx, dword [0x85c26c]
add eax, 0xffffff9c
add ecx, 0xffffffd8
push ecx
xor cl, cl
call fcn.0042feb0
add esp, 8
mov edx, dword [0x8ccbe8]
mov dword [0x86e35c], 0
mov al, byte [edx + 0xc]
test al, al
je 0x448ba4
push 1
mov eax, edx
push eax
call fcn.004b2b90
mov edi, dword [0x8ccbe8]
push 0
call fcn.004b2e50
jmp 0x448bbc
push 0
push 0
push 0
call fcn.004d1a40
add esp, 0xc
mov esi, 0x700d04
call fcn.0042e410
mov esi, eax
cmp esi, 0x20b
mov dword [esp + 0x24], esi
jl 0x448c8a
cmp esi, 0x237
jge 0x448c8a
mov eax, 2
call fcn.0042e700
mov ecx, dword [esp + 0x114]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x8c], eax
lea ebp, [esi - 0x20b]
lea ecx, [esp + 0x44]
push ecx
mov eax, ebp
shl eax, 4
push 0
mov dword [esp + 0x90], edx
mov edx, dword [eax + 0x85d174]
mov eax, dword [eax + 0x85d170]
mov ebx, 6
push 0
push edx
lea ecx, [esp + 0x44]
mov byte [esp + 0x130], 0
mov dword [esp + 0x40], ebp
mov dword [esp + 0x124], ebx
call fcn.004449f0
mov eax, dword [esp + 0x44]
mov ecx, dword [0x85c26c]
shl eax, 0xa
cdq
lea ecx, [ecx + ecx*2]
shl ecx, 1
idiv ecx
add esp, 0x10
sub eax, 0x57
mov dword [esp + 0x1c], eax
mov eax, dword [0x85c268]
lea ecx, [eax + eax*2 - 0x78]
mov eax, dword [esp + 0x44]
imul eax, eax, 0x286
cdq
shl ecx, 1
idiv ecx
sub eax, 0x46
mov dword [esp + 0x18], eax
jmp 0x448c8e
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x114]
mov eax, 0xc
cdq
idiv ebx
cmp esi, 0x124
mov edi, eax
jg 0x448d46
je case.0x448d51.513
cmp esi, 0x20
jg 0x448d24
je case.0x448d51.522
dec esi
je 0x448dc0
sub esi, 0xc
je case.0x448d51.522
sub esi, 0xe
jne case.0x448d51.518
mov eax, 3
call fcn.004a22e0
or eax, 0xffffffff
cmp ebp, eax
je 0x448dc0
cmp dword [esp + 0x124], eax
jne 0x448dc0
mov ebx, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x114], ebx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], eax
mov byte [esp + 0x120], 1
jmp 0x448dd4
sub esi, 0x2b
je case.0x448d51.512
sub esi, 2
je case.0x448d51.513
sub esi, 0xf4
jne case.0x448d51.518
mov dword [0x85c0fc], 0xffffffff
jmp case.0x448d51.518
lea eax, [esi - 0x200]
cmp eax, 0xa
ja case.0x448d51.518
jmp dword [eax*4 + 0x44924c]
mov dword [0x85c0fc], 1
jmp case.0x448d51.518
mov eax, 2
call fcn.0042e700
mov dword [esp + 0x24], 0x125
lea edi, [edi + edi*4]
jmp case.0x448d51.518
mov eax, 2
call fcn.0042e700
mov dword [esp + 0x24], 0x127
lea edi, [edi + edi*4]
jmp case.0x448d51.518
mov eax, 2
call fcn.0042e700
mov dword [esp + 0x24], 0x126
lea edi, [edi + edi*4]
jmp case.0x448d51.518
mov eax, 2
call fcn.0042e700
mov dword [esp + 0x24], 0x128
lea edi, [edi + edi*4]
jmp case.0x448d51.518
mov byte [esp + 0x42], 1
mov al, byte [esp + 0x120]
test al, al
je 0x448e5e
mov eax, dword [0x85c0fc]
test eax, eax
jge 0x448e20
cmp ebx, 6
jge 0x448e19
mov eax, 2
call fcn.0042e700
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
add ebx, 2
cmp ebx, 6
mov dword [esp + 0x114], ebx
jne 0x448e0b
add ecx, 0x28
add eax, 0x1b
jmp 0x448e11
add ecx, 0x78
add eax, 0x50
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
mov eax, dword [0x85c0fc]
test eax, eax
jle 0x448e5e
cmp ebx, 2
jle 0x448e5e
mov eax, 2
call fcn.0042e700
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
sub ebx, 2
cmp ebx, 4
mov dword [esp + 0x114], ebx
jne 0x448e50
sub ecx, 0x28
sub eax, 0x1b
jmp 0x448e56
sub ecx, 0x78
sub eax, 0x50
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
mov al, byte [esp + 0x120]
test al, al
mov dword [0x85c0fc], 0
je 0x448ed5
mov eax, dword [0x8de30c]
cmp eax, 1
mov ecx, dword [esp + 0x24]
jle 0x448e89
cmp ecx, 0x125
jne 0x448e8d
sub dword [esp + 0x1c], edi
mov edx, dword [0x85c26c]
add edx, 0xfffffffe
cmp eax, edx
jge 0x448ea2
cmp ecx, 0x127
jne 0x448ea6
add dword [esp + 0x1c], edi
mov eax, dword [0x8de310]
cmp eax, 1
jle 0x448eb8
cmp ecx, 0x126
jne 0x448ebc
sub dword [esp + 0x18], edi
mov edx, dword [0x85c268]
add edx, 0xfffffffe
cmp eax, edx
jge 0x448ed1
cmp ecx, 0x128
jne 0x448ed5
add dword [esp + 0x18], edi
mov esi, dword [esp + 0x1c]
cmp esi, 0x64
jge 0x448ee8
mov dword [esp + 0x1c], 0x64
jmp 0x448eff
mov eax, 0x400
cdq
idiv ebx
mov ecx, 0x400
sub ecx, eax
cmp esi, ecx
jle 0x448eff
mov dword [esp + 0x1c], ecx
mov esi, dword [esp + 0x18]
cmp esi, 1
jge 0x448f12
mov dword [esp + 0x18], 1
jmp 0x448f29
mov eax, 0x286
cdq
idiv ebx
mov ecx, 0x286
sub ecx, eax
cmp esi, ecx
jle 0x448f29
mov dword [esp + 0x18], ecx
mov al, byte [esp + 0x42]
test al, al
je 0x446e80
or esi, 0xffffffff
mov word [0x86e330], 0
mov dword [0x72754c], esi
call fcn.00449280
mov eax, dword [0x8ccbe8]
mov cl, byte [eax + 0xc]
test cl, cl
jne 0x448f5d
call fcn.004b2860
mov al, byte [esp + 0x120]
test al, al
jne 0x448f72
cmp dword [esp + 0x30], esi
je 0x449024
xor ebx, ebx
jmp 0x448f80
mov esi, dword [0x8ccbe8]
lea edi, [ebx + 0xf]
call fcn.004b2030
inc ebx
cmp ebx, 0xb
jl 0x448f80
xor edi, edi
mov esi, dword [esp + edi*4 + 0x64]
test esi, esi
je 0x448fda
mov ecx, dword [0x8ccbe8]
mov ecx, dword [ecx + 0x10]
push esi
call fcn.005057b0
mov ecx, dword [esi + 0x24]
mov edx, dword [ecx]
push esi
lea eax, [esp + 0x18]
push eax
call dword [edx + 0x74]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x448fda
mov esi, dword [eax + 4]
mov ecx, eax
add eax, 4
dec esi
mov edx, esi
test edx, edx
mov dword [eax], esi
jne 0x448fda
mov edx, dword [ecx]
push 1
call dword [edx]
mov ecx, dword [esp + edi*4 + 0x64]
test ecx, ecx
je 0x448ff5
dec dword [ecx + 4]
jne 0x448fed
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [esp + edi*4 + 0x64], 0
inc edi
cmp edi, 4
jl 0x448f96
mov ecx, dword [0x8ccbe8]
mov al, byte [ecx + 0xc]
test al, al
jne 0x449024
mov eax, dword [0x8ccc40]
test eax, eax
je 0x449024
push eax
call sub.MSVCR71.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [0x8ccc40], 0
mov esi, dword [0x8cc98c]
xor ebx, ebx
cmp esi, ebx
je 0x449046
mov edi, esi
call fcn.00504400
push edi
call sub.MSVCR71.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [0x8cc98c], ebx
mov esi, dword [0x8cc990]
cmp esi, ebx
je 0x449066
mov edi, esi
call fcn.00504400
push edi
call sub.MSVCR71.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [0x8cc990], ebx
lea esi, [esp + 0x74]
mov edi, 4
nop
mov ecx, dword [esi - 4]
sub esi, 4
cmp ecx, ebx
je 0x449085
dec dword [ecx + 4]
jne 0x449085
mov edx, dword [ecx]
push 1
call dword [edx]
dec edi
jne 0x449070
mov ecx, dword [esp + 0x5c]
cmp ecx, ebx
je 0x44909b
dec dword [ecx + 4]
jne 0x44909b
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [esp + 0x7c]
cmp ecx, ebx
je 0x4490ae
dec dword [ecx + 4]
jne 0x4490ae
mov edx, dword [ecx]
push 1
call dword [edx]
mov ecx, dword [esp + 0x60]
cmp ecx, ebx
je 0x4490c1
dec dword [ecx + 4]
jne 0x4490c1
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [esp + 0x9c]
cmp ecx, ebx
je 0x4490d7
dec dword [ecx + 4]
jne 0x4490d7
mov edx, dword [ecx]
push 1
call dword [edx]
mov ecx, dword [esp + 0x94]
cmp ecx, ebx
je 0x4490ed
dec dword [ecx + 4]
jne 0x4490ed
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [esp + 0x78]
cmp ecx, ebx
je 0x449100
dec dword [ecx + 4]
jne 0x449100
mov edx, dword [ecx]
push 1
call dword [edx]
lea esi, [esp + 0xb8]
mov edi, 6
lea esp, [esp]
mov ecx, dword [esi - 4]
sub esi, 4
cmp ecx, ebx
je 0x449125
dec dword [ecx + 4]
jne 0x449125
mov eax, dword [ecx]
push 1
call dword [eax]
dec edi
jne 0x449110
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf8
ret
mov dword [0x72754c], 0xffffffff
call fcn.00449280
lea esi, [esp + 0x74]
mov edi, 4
jmp 0x449150
mov ecx, dword [esi - 4]
sub esi, 4
test ecx, ecx
je 0x449165
dec dword [ecx + 4]
jne 0x449165
mov eax, dword [ecx]
push 1
call dword [eax]
dec edi
jne 0x449150
test ebx, ebx
je 0x449179
dec dword [ebx + 4]
jne 0x449179
mov edx, dword [ebx]
push 1
mov ecx, ebx
call dword [edx]
test ebp, ebp
je 0x44918b
dec dword [ebp + 4]
jne 0x44918b
mov eax, dword [ebp]
push 1
mov ecx, ebp
call dword [eax]
mov eax, dword [esp + 0x60]
test eax, eax
je 0x4491a0
dec dword [eax + 4]
jne 0x4491a0
mov ecx, eax
mov edx, dword [ecx]
push 1
call dword [edx]
mov ecx, dword [esp + 0x9c]
test ecx, ecx
je 0x4491b6
dec dword [ecx + 4]
jne 0x4491b6
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [esp + 0x94]
test ecx, ecx
je 0x4491cc
dec dword [ecx + 4]
jne 0x4491cc
mov edx, dword [ecx]
push 1
call dword [edx]
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x4491df
dec dword [ecx + 4]
jne 0x4491df
mov eax, dword [ecx]
push 1
call dword [eax]
lea esi, [esp + 0xb8]
mov edi, 6
jmp 0x4491f0
mov ecx, dword [esi - 4]
sub esi, 4
test ecx, ecx
je 0x449205
dec dword [ecx + 4]
jne 0x449205
mov edx, dword [ecx]
push 1
call dword [edx]
dec edi
jne 0x4491f0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf8
ret