Function at 0x515f4a
Capabilities:
Get geographical location
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
test dword [0x87ed4c], 0xfffff000
jne 0x515e20
test dword [0x87ed4c], 0xffffffff
jne 0x517380
call fcn.007663a0
jmp fcn.00515df0
push ebx
mov ebx, esp
and esp, 0xffffffc0
push ebp
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x773fe0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3ec
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0xc0], edi
mov dword [ebp - 0xbc], esi
mov dword [ebp - 0x40], ecx
lea ecx, [ebp - 0x2c8]
mov dword [ebp - 0x54], 0
call fcn.0051a6b0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0xdc]
call fcn.0051a880
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x1a8]
call fcn.0051a8e0
pxor xmm0, xmm0
movaps xmmword [ebp - 0xb8], xmm0
movaps xmmword [ebp - 0xa8], xmm0
movq qword [ebp - 0x98], xmm0
movaps xmm1, xmmword [0x78c800]
movddup xmm0, qword [0x78c808]
xor edx, edx
xor eax, eax
movsd qword [ebp + eax - 0x188], xmm1
movhpd qword [ebp + eax - 0x180], xmm1
add edx, 2
movsd qword [ebp + eax - 0x178], xmm0
movhpd qword [ebp + eax - 0x170], xmm0
add eax, 0x20
cmp edx, 0xa
jb 0x515ec4
mov eax, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ecx + 0x90]
mov edi, dword [ecx + 0x78]
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x8c], edx
mov dword [ebp - 4], 2
mov ecx, dword [ebp - 0x30]
push edi
push esi
call fcn.005119a0
mov edx, eax
mov dword [ebp - 0x38], edx
add esp, 0xfffffff8
mov eax, esi
mov dword [ebp - 0x44], edx
call fcn.00511970
mov edi, dword [ebx + 0x10]
add esp, 8
mov dword [ebp - 0x34], eax
mov ecx, esi
mov edx, edi
mov dword [ebp - 0x3c], eax
push 6
push str.layers
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x51734f
push 4
mov ecx, esi
mov edx, edi
push str.city
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x515fcf
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x44]
add esp, 0xfffffff4
lea ecx, [ebp - 0x3f7]
call fcn.0051c110
add esp, 0xc
movzx eax, al
test eax, eax
je 0x515fcf
movsx edx, byte [ebp - 0x3f7]
cmp edx, 0x41
jl 0x515fa7
cmp edx, 0x5a
jle 0x515fab
mov eax, edx
jmp 0x515fb1
lea eax, [edx + 0x20]
movsx eax, al
cmp eax, 0x31
je 0x515fc5
push edx
call fcn.0051bfa0
pop ecx
movsx edx, al
cmp edx, 0x79
jne 0x515fcf
mov dword [ebp - 0xb8], 0x20
push 6
mov ecx, esi
mov edx, edi
push str.marine
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x516030
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x74], eax
add esp, 0xfffffff4
lea ecx, [ebp - 0x3f6]
call fcn.0051c110
add esp, 0xc
movzx eax, al
test eax, eax
je 0x516e8d
movsx eax, byte [ebp - 0x3f6]
push eax
call fcn.0051bfa0
pop ecx
movsx eax, al
cmp eax, 0x31
je 0x516026
cmp eax, 0x79
jne 0x516030
mov dword [ebp - 0xb8], 4
push 6
mov ecx, esi
mov edx, edi
push str.roadid
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x516073
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x70], eax
add esp, 0xfffffff0
lea edx, [ebp - 0xa8]
lea ecx, [ebp - 0x54]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x44]
call fcn.00511640
add esp, 0x10
movzx eax, al
test eax, eax
je 0x516c18
push 4
mov ecx, esi
mov edx, edi
push str.type
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x5160b0
mov ecx, dword [ebp - 0x40]
lea eax, [ebp - 0xb4]
push eax
push dword [ebp - 0x44]
push dword [ebp - 0x3c]
call fcn.0050c7e0
movzx eax, al
test eax, eax
je 0x516cbe
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
push 7
mov ecx, esi
mov edx, edi
push str.subtype
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x5160f3
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x6c], eax
add esp, 0xfffffff0
lea edx, [ebp - 0xb0]
lea ecx, [ebp - 0x54]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x44]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x516ced
push 4
mov ecx, esi
mov edx, edi
push 0x78e038
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x51730b
push 5
mov ecx, esi
mov edx, edi
push str.color
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x516151
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x68], eax
add esp, 0xfffffff0
lea edx, [ebp - 0xc4]
lea ecx, [ebp - 0x54]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x44]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x516d22
push 8
mov ecx, esi
mov edx, edi
push 0x793d94
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x5170f2
push 5
mov ecx, esi
mov edx, edi
push str.depth
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x51619a
push 6
mov ecx, esi
mov edx, edi
push str.height
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x5161cc
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x48], eax
add esp, 0xfffffff0
lea edx, [ebp - 0x7c]
lea ecx, [ebp - 0x54]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x44]
call fcn.0051c2b0
add esp, 0x10
movzx eax, al
test eax, eax
je 0x5170bd
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x90], eax
push 9
mov ecx, esi
mov edx, edi
push str.depthunit
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x5161fa
push 0xa
mov ecx, esi
mov edx, edi
push str.heightunit
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51624f
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x50], eax
add esp, 0xfffffff4
lea ecx, [ebp - 0x3f5]
call fcn.0051c110
add esp, 0xc
movzx eax, al
test eax, eax
je 0x517083
movsx eax, byte [ebp - 0x3f5]
push eax
call fcn.0051bfa0
pop ecx
movsx eax, al
cmp eax, 0x6d
je 0x517070
cmp eax, 0x66
je 0x51705c
movss xmm0, dword [ebp - 0x78]
movss dword [ebp - 0x8c], xmm0
push 8
mov ecx, esi
mov edx, edi
push str.position
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x516292
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x64], eax
add esp, 0xfffffff0
lea edx, [ebp - 0x88]
lea ecx, [ebp - 0x54]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x44]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x516d57
push 9
mov ecx, esi
mov edx, edi
push str.depthflag
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x5162d5
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x60], eax
add esp, 0xfffffff0
lea edx, [ebp - 0x84]
lea ecx, [ebp - 0x54]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x44]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x516d8c
push 0xa
mov ecx, esi
mov edx, edi
push str.streetdesc
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x517035
push 5
mov ecx, esi
mov edx, edi
push str.phone
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x51700e
push 0xa
mov ecx, esi
mov edx, edi
push str.phonealpha
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x516fe7
push 0xb
mov ecx, esi
mov edx, edi
push str.housenumber
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x516fc0
push 8
mov ecx, esi
mov edx, edi
push str.cityname
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x516f99
push 0xa
mov ecx, esi
mov edx, edi
push str.regionname
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x516f72
push 0xb
mov ecx, esi
mov edx, edi
push str.countryname
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x516f4b
push 6
mov ecx, esi
mov edx, edi
push str.zipidx
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x5163d5
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x5c], eax
add esp, 0xfffffff0
lea edx, [ebp - 0x9c]
lea ecx, [ebp - 0x54]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x44]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x516dc1
push 4
mov ecx, esi
mov edx, edi
push str.zip
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x516f24
push 7
mov ecx, esi
mov edx, edi
push str.cityidx
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x516433
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x58], eax
add esp, 0xfffffff0
lea edx, [ebp - 0x98]
lea ecx, [ebp - 0x54]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x44]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x516df6
push 6
mov ecx, esi
mov edx, edi
push str.levels
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x516461
push 8
mov ecx, esi
mov edx, edi
push str.endlevel
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51648d
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x4c], eax
add esp, 0xfffffff0
lea edx, [ebp - 0xa0]
lea ecx, [ebp - 0x54]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x44]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x516eef
push 5
mov ecx, esi
mov edx, edi
push str.label
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x516ec8
push 6
mov ecx, esi
mov edx, edi
push str.origin
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x516578
movsx eax, byte [esi + 6]
cmp eax, 0x30
jl 0x516578
cmp eax, 0x39
jg 0x516578
mov eax, dword [ebp - 0x3c]
movsx edx, byte [esi + 6]
mov dword [ebp - 0x80], eax
add esp, 0xfffffff0
shl edx, 4
lea ecx, [ebp + edx - 0x488]
lea edx, [ebp - 0x54]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x44]
call fcn.005194b0
add esp, 0x10
movzx eax, al
test eax, eax
je 0x516e2b
movsx eax, byte [esi + 6]
shl eax, 4
movsd xmm0, qword [ebp + eax - 0x488]
minsd xmm0, qword [ebp - 0x1a8]
movsd qword [ebp - 0x1a8], xmm0
movsd xmm1, qword [ebp + eax - 0x488]
maxsd xmm1, qword [ebp - 0x198]
movsd qword [ebp - 0x198], xmm1
movsd xmm2, qword [ebp + eax - 0x480]
minsd xmm2, qword [ebp - 0x1a0]
movsd qword [ebp - 0x1a0], xmm2
movsd xmm3, qword [ebp + eax - 0x480]
maxsd xmm3, qword [ebp - 0x190]
movsd qword [ebp - 0x190], xmm3
push 4
mov ecx, esi
mov edx, edi
push str.data
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x516647
movsx eax, byte [esi + 4]
cmp eax, 0x30
jl 0x516647
cmp eax, 0x39
jg 0x516647
mov edi, dword [ebp - 0x3c]
add esp, 0xfffffff0
lea edx, [ebp - 0x54]
movsx eax, byte [esi + 4]
shl eax, 4
lea ecx, [ebp + eax - 0x488]
mov dword [esp + 0xc], edx
mov eax, edi
mov edx, dword [ebp - 0x44]
call fcn.005194b0
add esp, 0x10
movzx eax, al
test eax, eax
je 0x516e60
movsx eax, byte [esi + 4]
shl eax, 4
movsd xmm0, qword [ebp + eax - 0x488]
minsd xmm0, qword [ebp - 0x1a8]
movsd qword [ebp - 0x1a8], xmm0
movsd xmm1, qword [ebp + eax - 0x488]
maxsd xmm1, qword [ebp - 0x198]
movsd qword [ebp - 0x198], xmm1
movsd xmm2, qword [ebp + eax - 0x480]
minsd xmm2, qword [ebp - 0x1a0]
movsd qword [ebp - 0x1a0], xmm2
movsd xmm3, qword [ebp + eax - 0x480]
maxsd xmm3, qword [ebp - 0x190]
movsd qword [ebp - 0x190], xmm3
mov dword [ebp - 4], 1
mov dword [ebp - 4], 1
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
mov edi, dword [eax + 0x78]
mov dword [ebx + 0xc], esi
mov edx, esi
mov dword [ebp - 0x30], eax
cmp esi, edi
jae 0x51667b
cmp byte [edx], 0xa
je 0x516ec2
inc edx
cmp edx, edi
jb 0x51666d
mov edx, edi
push 4
mov ecx, esi
push str._end
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x515f17
mov edx, dword [ebp - 0xb4]
cmp edx, 0xff
jae 0x5166b5
mov ecx, dword [ebp - 0xb0]
or ecx, 0xffffffe8
shl edx, cl
mov dword [ebp - 0xb4], edx
mov eax, dword [ebx + 8]
cmp eax, 0x10
jge 0x5166c9
or edx, 0x10000
mov dword [ebp - 0xb4], edx
cmp dword [ebp - 0xb8], 0x10
jae 0x5166de
or edx, 0x10000
mov dword [ebp - 0xb4], edx
test edx, 0x10000
jne 0x51670b
cmp eax, 0x10
jl 0x516715
shr edx, 8
cmp edx, 0x11
ja 0x5166ff
mov dword [ebp - 0xb8], 0x20
jmp 0x516715
mov dword [ebp - 0xb8], 0x10
jmp 0x516715
mov dword [ebp - 0xb8], 4
mov eax, dword [ebp - 0x98]
test eax, eax
jbe 0x516771
add esp, 0xfffffff8
mov dword [esp], str.SELECT_MP_CITIES_OBS.city__MP_REGIONS_OBS.region__MP_COUNTRIES_OBS.country__FROM_MP_COUNTRIES_OBS__MP_REGIONS_OBS___MP_CITIES_OBS_WHERE__MP_CITIES_OBS.id___i_AND_MP_CITIES_OBS.region_id__MP_REGIONS_OBS.id_AND_MP_REGIONS_OBS.country_id__MP_COUNTRIES_OBS.id_
mov dword [esp + 4], eax
call fcn.0051fe70
add esp, 8
mov esi, eax
mov eax, dword [ebp - 0x40]
add esp, 0xffffffec
lea edi, [ebp - 0x220]
mov eax, dword [eax + 4]
mov dword [esp + 0xc], edi
lea edx, [ebp - 0x208]
lea ecx, [ebp - 0x238]
mov dword [esp + 0x10], edx
mov edx, esi
call fcn.00514bb0
add esp, 0x14
test esi, esi
je 0x516771
push eax
mov eax, esi
call fcn.004c69c4
pop ecx
mov eax, dword [ebp - 0x9c]
test eax, eax
jbe 0x5167b9
add esp, 0xfffffff8
mov dword [esp], str.SELECT_MP_ZIP_OBS.zip__FROM_MP_ZIP_OBS_WHERE__MP_ZIP_OBS.id___i_
mov dword [esp + 4], eax
call fcn.0051fe70
add esp, 8
mov edi, eax
mov esi, dword [ebp - 0x40]
add esp, 0xfffffff4
mov edx, edi
lea ecx, [ebp - 0x1f0]
mov eax, dword [esi + 4]
call fcn.005156d0
add esp, 0xc
test edi, edi
je 0x5167b9
push eax
mov eax, edi
call fcn.004c69c4
pop ecx
cvtsd2ss xmm0, qword [ebp - 0x1a8]
mov eax, dword [ebp - 0x40]
cvtsd2ss xmm3, qword [ebp - 0x1a0]
mov ecx, dword [ebp - 0xb8]
cvtsd2ss xmm6, qword [ebp - 0x198]
mov esi, dword [ebp - 0xb4]
mov edi, dword [ebp - 0x2b4]
add esp, 0xffffffac
mov edx, dword [eax + 0x7c]
mov eax, dword [ebp - 0x284]
mov dword [esp], str.INSERT_INTO_MP_POI__map_id_min_X_min_Y_max_X_max_Y_coordinates_rgnType_type_label__streetdesc__phone__alphaphone__housenumber_cityname_regionname_countryname__zip___VALUES___i___f___f___f___f______i___i___q___q___q___q___q___q___q___q___q__
xorps xmm1, xmm1
movss xmm1, xmm0
cvtps2pd xmm2, xmm1
cvtsd2ss xmm1, qword [ebp - 0x190]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x26c]
xorps xmm4, xmm4
movss xmm4, xmm3
movsd qword [esp + 8], xmm2
cvtps2pd xmm5, xmm4
xorps xmm7, xmm7
movss xmm7, xmm6
movsd qword [esp + 0x10], xmm5
cvtps2pd xmm0, xmm7
xorps xmm2, xmm2
movss xmm2, xmm1
movsd qword [esp + 0x18], xmm0
cvtps2pd xmm3, xmm2
movsd qword [esp + 0x20], xmm3
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp - 0x254]
mov dword [esp + 0x2c], esi
mov esi, dword [ebp - 0x23c]
mov dword [esp + 0x30], edi
mov edi, dword [ebp - 0x224]
mov dword [esp + 0x34], eax
mov eax, dword [ebp - 0x20c]
mov dword [esp + 0x38], edx
mov edx, dword [ebp - 0x1f4]
mov dword [esp + 0x3c], ecx
mov ecx, dword [ebp - 0x1dc]
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ecx
call fcn.0051fe70
add esp, 0x54
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x40]
mov edx, dword [eax + 4]
mov dword [ebp - 0xe0], edx
mov dword [ebp - 0xe8], 0
test edx, edx
je 0x516968
mov eax, edx
cmp dword [eax + 0x38], 0xa029a697
jne 0x516968
mov eax, dword [eax + 0x44]
test eax, eax
je 0x5168e8
push eax
mov dword [esp], eax
call dword [0x8303c8]
pop ecx
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 4]
test eax, eax
jle 0x516afe
mov dword [ebp - 0x3f4], 0
mov esi, dword [ebp - 0x3f4]
mov edx, dword [ebp - 0xe0]
shl esi, 4
mov ecx, dword [edx + 8]
mov esi, dword [ecx + esi + 4]
test esi, esi
je 0x516952
movzx edx, byte [esi + 9]
test edx, edx
je 0x516952
movzx edx, byte [esi + 0xa]
inc dword [esi + 0xc]
test edx, edx
jne 0x516949
mov eax, dword [esi + 0x18]
test eax, eax
je 0x516a7c
mov esi, eax
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x51693b
jmp 0x516a78
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x3f4]
inc edx
mov dword [ebp - 0x3f4], edx
cmp edx, eax
jl 0x516903
jmp 0x516afe
xor edi, edi
add esp, 0xfffffff8
mov eax, edi
mov edx, 1
call fcn.00416b20
add esp, 8
test eax, eax
jne 0x5169e4
add esp, 0xffffffec
xor eax, eax
mov byte [esp + 0xc], al
lea edx, [ebp - 0x188]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x3c]
mov ecx, 0xa0
call fcn.004c6410
add esp, 0x14
mov esi, eax
mov eax, dword [edi]
add esp, 0xfffffff4
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], 0
call fcn.00586060
add esp, 0xc
mov eax, dword [edi]
add esp, 0xfffffff8
mov edx, esi
call fcn.00585ff0
add esp, 8
mov eax, dword [edi]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x5169e4
push eax
mov dword [esp], eax
call dword [0x8303d0]
pop ecx
mov eax, dword [ebp - 0xe8]
push eax
call fcn.0048ecb4
pop ecx
cmp dword [ebp - 0xe4], 0
je 0x516a07
mov eax, dword [ebp - 0xe4]
push eax
call fcn.004c69c4
pop ecx
mov eax, dword [ebp - 0xe8]
push eax
call fcn.00408ac4
pop ecx
mov dword [ebp - 4], 0
lea ecx, [ebp - 0xdc]
call fcn.00519ec0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c8]
call fcn.00519f40
mov eax, dword [ebp - 0x44]
mov edi, dword [ebp - 0xc0]
mov esi, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0xc
movzx edx, byte [esi + 0xa]
test edx, edx
je 0x516af5
mov edx, dword [esi + 0x14]
test edx, edx
je 0x516ac8
movzx eax, byte [edx + 0xa]
mov esi, edx
test eax, eax
jne 0x516a80
mov edi, dword [edx + 0x14]
test edi, edi
je 0x516ac0
movzx eax, byte [edi + 0xa]
test eax, eax
je 0x516ab9
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x30]
test eax, eax
je 0x516ab5
push eax
mov dword [esp], eax
call dword [0x8303d0]
pop ecx
mov byte [edi + 0xa], 0
mov edi, dword [edi + 0x14]
test edi, edi
jne 0x516a98
test esi, esi
je 0x516949
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x30]
test eax, eax
je 0x516ae0
push eax
mov dword [esp], eax
call dword [0x8303c8]
pop ecx
mov edx, dword [esi + 4]
mov eax, dword [esi]
mov dword [edx + 4], eax
mov byte [esi + 0xa], 1
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x516ac8
jmp 0x516949
mov edi, dword [esi + 0x14]
test edi, edi
jne 0x516a98
jmp 0x516ac8
mov eax, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xe4]
add esp, 0xffffffe4
mov dword [esp + 0xc], 1
lea edi, [ebp - 0xe8]
lea esi, [ebp - 0x3f4]
mov dword [esp + 0x10], 0
mov ecx, 0xffffffff
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], esi
call fcn.004c7880
add esp, 0x1c
cmp eax, 0x11
je 0x516bd2
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 4]
test eax, eax
jle 0x516baf
xor edi, edi
mov edx, dword [ebp - 0xe0]
mov esi, edi
shl esi, 4
mov ecx, dword [edx + 8]
mov esi, dword [ecx + esi + 4]
test esi, esi
je 0x516baa
movzx edx, byte [esi + 9]
test edx, edx
je 0x516baa
mov eax, dword [esi + 0xc]
dec eax
mov dword [esi + 0xc], eax
je 0x516b88
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 4]
jmp 0x516baa
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x30]
test eax, eax
je 0x516b9d
push eax
mov dword [esp], eax
call dword [0x8303d0]
pop ecx
mov eax, dword [ebp - 0xe0]
mov byte [esi + 0xa], 0
mov eax, dword [eax + 4]
inc edi
cmp edi, eax
jl 0x516b56
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x516bc7
push eax
mov dword [esp], eax
call dword [0x8303d0]
pop ecx
mov edi, dword [ebp - 0xe8]
jmp 0x51696a
mov eax, dword [ebp - 0xe8]
push eax
call fcn.00408ac4
pop ecx
mov eax, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xe4]
add esp, 0xffffffe4
mov dword [esp + 0xc], 1
mov ecx, 0xffffffff
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], esi
call fcn.004c7880
add esp, 0x1c
jmp 0x516b47
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x70]
mov ecx, esi
call fcn.0051c870
mov edx, dword [esi + 0x20]
add esp, 0xfffffff4
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x516073
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x3c]
mov ecx, esi
call fcn.0051c870
mov edx, dword [esi + 0x20]
add esp, 0xfffffff4
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
jmp 0x5160aa
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x6c]
mov ecx, esi
call fcn.0051c870
mov edx, dword [esi + 0x20]
add esp, 0xfffffff4
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x5160f3
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x68]
mov ecx, esi
call fcn.0051c870
mov edx, dword [esi + 0x20]
add esp, 0xfffffff4
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x516151
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x64]
mov ecx, esi
call fcn.0051c870
mov edx, dword [esi + 0x20]
add esp, 0xfffffff4
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x516292
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x60]
mov ecx, esi
call fcn.0051c870
mov edx, dword [esi + 0x20]
add esp, 0xfffffff4
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x5162d5
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x5c]
mov ecx, esi
call fcn.0051c870
mov edx, dword [esi + 0x20]
add esp, 0xfffffff4
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x5163d5
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x58]
mov ecx, esi
call fcn.0051c870
mov edx, dword [esi + 0x20]
add esp, 0xfffffff4
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x516433
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x80]
mov ecx, esi
call fcn.0051c870
mov edx, dword [esi + 0x20]
add esp, 0xfffffff4
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.E017
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x516578
mov esi, dword [ebp - 0x40]
push edi
mov ecx, esi
call fcn.0051c870
mov edx, dword [esi + 0x20]
add esp, 0xfffffff4
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.E017
call fcn.0058f550
add esp, 0xc
jmp 0x516647
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x74]
mov ecx, esi
call fcn.0051c870
mov edx, dword [esi + 0x20]
add esp, 0xfffffff4
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x516030
inc edx
jmp 0x51667d
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
push esi
call fcn.005189b0
push eax
lea ecx, [ebp - 0x2c8]
push esi
call fcn.00518a60
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x5164a8
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x4c]
mov ecx, esi
call fcn.0051c870
mov edx, dword [esi + 0x20]
add esp, 0xfffffff4
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x51648d
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
push esi
call fcn.005189b0
push eax
lea ecx, [ebp - 0x1f0]
push esi
call fcn.00518a60
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x5163f0
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
push esi
call fcn.005189b0
push eax
lea ecx, [ebp - 0x208]
push esi
call fcn.00518a60
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x516392
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
push esi
call fcn.005189b0
push eax
lea ecx, [ebp - 0x220]
push esi
call fcn.00518a60
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x516377
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
push esi
call fcn.005189b0
push eax
lea ecx, [ebp - 0x238]
push esi
call fcn.00518a60
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x51635c
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
push esi
call fcn.005189b0
push eax
lea ecx, [ebp - 0x250]
push esi
call fcn.00518a60
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x516341
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
push esi
call fcn.005189b0
push eax
lea ecx, [ebp - 0x268]
push esi
call fcn.00518a60
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x516326
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
push esi
call fcn.005189b0
push eax
lea ecx, [ebp - 0x280]
push esi
call fcn.00518a60
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x51630b
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
push esi
call fcn.005189b0
push eax
lea ecx, [ebp - 0x298]
push esi
call fcn.00518a60
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x5162f0
movss xmm0, dword [0x78d0c4]
mov dword [ebp - 0x78], 0x3f800000
jmp 0x516247
mov eax, 0x3e9c0ed3
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x8c], eax
jmp 0x51624f
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x50]
mov ecx, esi
call fcn.0051c870
mov edx, dword [esi + 0x20]
add esp, 0xfffffff4
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
movss xmm0, dword [ebp - 0x78]
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x516247
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x48]
mov ecx, esi
call fcn.0051c870
mov edx, dword [esi + 0x20]
add esp, 0xfffffff4
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x5161c3
mov dword [ebp - 4], 0xb
lea edi, [ebp - 0x1d8]
mov dword [ebp - 0x1c8], edi
mov dword [ebp - 0x1c4], edi
mov dword [ebp - 4], 4
mov eax, dword [edi + 0x10]
push dword [ebp - 0x44]
mov esi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x40]
mov byte [eax], 0
push esi
call fcn.005189b0
push eax
mov ecx, edi
push esi
call fcn.00518a60
mov dword [ebp - 4], 9
mov dword [ebp - 0xe8], 0
push eax
mov dword [esp], 0xfa34
call fcn.00742a45
pop ecx
mov dword [ebp - 0xe4], eax
test eax, eax
je 0x517187
mov dword [ebp - 0xe8], 1
mov ecx, eax
push 0x78d3a4
push dword [ebp - 0x1c4]
call fcn.00518af0
mov ecx, dword [ebp - 0xe4]
mov dword [ebp - 0xe8], 0
jmp 0x517189
xor ecx, ecx
mov dword [ebp - 4], 5
mov eax, dword [ebp - 0xc8]
cmp eax, dword [ebp - 0xcc]
mov dword [ebp - 0xe0], ecx
mov byte [ecx + 0x30], 0
je 0x5171bb
push 0xa
lea ecx, [ebp - 0xdc]
call fcn.0051a240
mov ecx, dword [ebp - 0xe0]
lea esi, [ebp - 0x1c0]
push esi
call fcn.00518c70
mov dword [ebp - 4], 7
push esi
lea ecx, [ebp - 0xdc]
call fcn.00519490
mov dword [ebp - 4], 6
mov edx, dword [ebp - 0x1ac]
cmp edx, esi
je 0x517209
test edx, edx
je 0x517209
mov eax, dword [ebp - 0x1c0]
sub eax, edx
cmp eax, 0x80
jbe 0x5172dd
push edx
call fcn.007424fc
pop ecx
mov dword [ebp - 4], 4
mov dword [ebp - 4], 4
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xe0]
test ecx, ecx
je 0x51723c
mov edx, dword [ecx]
mov eax, 0x893aa0
cmp edx, eax
jne 0x517238
push 1
call fcn.004024a0
jmp 0x51723c
push 1
call dword [edx]
mov dword [ebp - 4], 3
mov edx, dword [ebp - 0x1c4]
lea eax, [ebp - 0x1d8]
cmp edx, eax
je 0x517271
test edx, edx
je 0x517271
mov eax, dword [ebp - 0x1d8]
sub eax, edx
cmp eax, 0x80
jbe 0x5172f4
push edx
call fcn.007424fc
pop ecx
mov dword [ebp - 4], 2
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x51616c
add esp, 0xfffffff8
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.005d3210
add esp, 8
jmp 0x517209
add esp, 0xfffffff8
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.005d3210
add esp, 8
jmp 0x517271
mov eax, dword [ebp - 0xc8]
cmp eax, dword [ebp - 0xcc]
je 0x517326
push 0xa
lea ecx, [ebp - 0xdc]
call fcn.0051a240
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
push esi
call fcn.005189b0
add eax, esi
push eax
lea ecx, [ebp - 0xdc]
push esi
call fcn.00583ef0
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x51610e
push dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
push dword [ebp - 0x34]
call fcn.005189b0
push eax
lea ecx, [ebp - 0x2b0]
push dword [ebp - 0x34]
call fcn.00518a60
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x515f61
push ebx
mov ebx, esp
and esp, 0xffffffe0
push ebp
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x774010
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3ec
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x98], edi
mov dword [ebp - 0x94], esi
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x54], 0
lea ecx, [ebp - 0x2c8]
call fcn.0051a6b0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0xdc]
call fcn.0051a880
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x1d8]
call fcn.0051a8e0
xor edx, edx
mov eax, 0x28
mov dword [ebp + eax - 0xc4], edx
mov dword [ebp + eax - 0xc8], edx
mov dword [ebp + eax - 0xcc], edx
mov dword [ebp + eax - 0xd0], edx
mov dword [ebp + eax - 0xd4], edx
sub eax, 0x14
jne 0x5173fe
mov eax, 0xbff00000
mov dword [ebp - 0x1b8], edx
mov dword [ebp - 0x1b4], eax
mov dword [ebp - 0x1b0], edx
mov dword [ebp - 0x1ac], eax
mov dword [ebp - 0x1a8], edx
mov dword [ebp - 0x1a4], eax
mov dword [ebp - 0x1a0], edx
mov dword [ebp - 0x19c], eax
mov dword [ebp - 0x198], edx
mov dword [ebp - 0x194], eax
mov dword [ebp - 0x190], edx
mov dword [ebp - 0x18c], eax
mov dword [ebp - 0x188], edx
mov dword [ebp - 0x184], eax
mov dword [ebp - 0x180], edx
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x178], edx
mov dword [ebp - 0x174], eax
mov dword [ebp - 0x170], edx
mov dword [ebp - 0x16c], eax
mov dword [ebp - 0x168], edx
mov dword [ebp - 0x164], eax
mov dword [ebp - 0x160], edx
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x158], edx
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x150], edx
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x148], edx
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x140], edx
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x138], edx
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x130], edx
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x128], edx
mov dword [ebp - 0x124], eax
mov dword [ebp - 0x120], edx
mov dword [ebp - 0x11c], eax
mov edx, dword [ebx + 8]
mov dword [ebp - 0xc0], edx
mov esi, dword [ebp - 0x40]
mov dword [ebp - 0x30], esi
mov ecx, dword [esi + 0x90]
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x8c], ecx
mov edi, dword [esi + 0x78]
mov esi, dword [ebx + 0xc]
mov dword [ebp - 4], 2
push edi
push esi
mov ecx, dword [ebp - 0x30]
call fcn.005119a0
mov edx, eax
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x44], edx
add esp, 0xfffffff8
mov eax, esi
call fcn.00511970
add esp, 8
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x3c], eax
mov edi, dword [ebx + 0x10]
push 6
push str.layers
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x518980
push 4
push str.city
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x5175f7
add esp, 0xfffffff4
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x44]
lea ecx, [ebp - 0x3f7]
call fcn.0051c110
add esp, 0xc
movzx eax, al
test eax, eax
je 0x5175f7
movsx edx, byte [ebp - 0x3f7]
cmp edx, 0x41
jl 0x5175cf
cmp edx, 0x5a
jle 0x5175d3
mov eax, edx
jmp 0x5175d9
lea eax, [edx + 0x20]
movsx eax, al
cmp eax, 0x31
je 0x5175ed
push edx
call fcn.0051bfa0
pop ecx
movsx edx, al
cmp edx, 0x79
jne 0x5175f7
mov dword [ebp - 0xc0], 0x20
push 6
push str.marine
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x517658
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x74], eax
add esp, 0xfffffff4
mov edx, dword [ebp - 0x44]
lea ecx, [ebp - 0x3f6]
call fcn.0051c110
add esp, 0xc
movzx eax, al
test eax, eax
je 0x51825f
movsx eax, byte [ebp - 0x3f6]
push eax
call fcn.0051bfa0
pop ecx
movsx eax, al
cmp eax, 0x31
je 0x51764e
cmp eax, 0x79
jne 0x517658
mov dword [ebp - 0xc0], 4
push 6
push str.roadid
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51769b
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x70], eax
add esp, 0xfffffff0
lea edx, [ebp - 0xb0]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x44]
lea ecx, [ebp - 0x54]
call fcn.00511640
add esp, 0x10
movzx eax, al
test eax, eax
je 0x518305
push 4
push str.type
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x5176d8
lea eax, [ebp - 0xbc]
push eax
push dword [ebp - 0x44]
push dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x40]
call fcn.0050c7e0
movzx eax, al
test eax, eax
je 0x51833a
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
push 7
push str.subtype
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51771b
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x6c], eax
add esp, 0xfffffff0
lea edx, [ebp - 0xb8]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x44]
lea ecx, [ebp - 0x54]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x518369
push 4
push 0x78e038
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x51893c
push 5
push str.color
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x517779
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x68], eax
add esp, 0xfffffff0
lea edx, [ebp - 0xc4]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x44]
lea ecx, [ebp - 0x54]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x51839e
push 8
push 0x793d94
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x518723
push 5
push str.depth
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x5177c2
push 6
push str.height
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x5177f4
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x48], eax
add esp, 0xfffffff0
lea edx, [ebp - 0x7c]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x44]
lea ecx, [ebp - 0x54]
call fcn.0051c2b0
add esp, 0x10
movzx eax, al
test eax, eax
je 0x5186ee
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x90], eax
push 9
push str.depthunit
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x517822
push 0xa
push str.heightunit
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x517876
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x50], eax
add esp, 0xfffffff4
mov edx, dword [ebp - 0x44]
lea ecx, [ebp - 0x3f5]
call fcn.0051c110
add esp, 0xc
movzx eax, al
test eax, eax
je 0x5186b6
movsx eax, byte [ebp - 0x3f5]
push eax
call fcn.0051bfa0
pop ecx
movsx eax, al
cmp eax, 0x6d
je 0x5186a3
cmp eax, 0x66
je 0x51786b
fld dword [ebp - 0x78]
jmp 0x517870
fld1
fst dword [ebp - 0x78]
fstp dword [ebp - 0x8c]
push 8
push str.position
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x5178b9
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x64], eax
add esp, 0xfffffff0
lea edx, [ebp - 0x88]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x44]
lea ecx, [ebp - 0x54]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x5183d3
push 9
push str.depthflag
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x5178fc
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x60], eax
add esp, 0xfffffff0
lea edx, [ebp - 0x84]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x44]
lea ecx, [ebp - 0x54]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x518408
push 0xa
push str.streetdesc
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x51867c
push 5
push str.phone
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x518655
push 0xa
push str.phonealpha
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x51862e
push 0xb
push str.housenumber
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x518607
push 8
push str.cityname
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x5185e0
push 0xa
push str.regionname
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x5185b9
push 0xb
push str.countryname
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x518592
push 6
push str.zipidx
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x5179fc
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x5c], eax
add esp, 0xfffffff0
lea edx, [ebp - 0xa4]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x44]
lea ecx, [ebp - 0x54]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x51843d
push 4
push str.zip
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x51856b
push 7
push str.cityidx
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x517a5a
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x58], eax
add esp, 0xfffffff0
lea edx, [ebp - 0xa0]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x44]
lea ecx, [ebp - 0x54]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x518472
push 6
push str.levels
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x517a88
push 8
push str.endlevel
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x517ab4
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x4c], eax
add esp, 0xfffffff0
lea edx, [ebp - 0xa8]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x44]
lea ecx, [ebp - 0x54]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x518536
push 5
push str.label
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x51850f
push 6
push str.origin
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x517bb7
movsx eax, byte [esi + 6]
cmp eax, 0x30
jl 0x517bb7
cmp eax, 0x39
jg 0x517bb7
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x80], eax
add esp, 0xfffffff0
movsx edx, byte [esi + 6]
shl edx, 4
lea ecx, [ebp + edx - 0x4b8]
lea edx, [ebp - 0x54]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x44]
call fcn.005194b0
add esp, 0x10
movzx eax, al
test eax, eax
je 0x5184a7
movsx ecx, byte [esi + 6]
shl ecx, 4
fld qword [ebp + ecx - 0x4b8]
fld qword [ebp - 0x1d8]
fcom st(1)
fnstsw ax
sahf
ja 0x517b51
fst st(1)
fstp st(0)
fstp qword [ebp - 0x1d8]
fld qword [ebp + ecx - 0x4b8]
fld qword [ebp - 0x1c8]
fcom st(1)
fnstsw ax
sahf
jp 0x517b6f
jb 0x517b71
fst st(1)
fstp st(0)
fstp qword [ebp - 0x1c8]
fld qword [ebp + ecx - 0x4b0]
fld qword [ebp - 0x1d0]
fcom st(1)
fnstsw ax
sahf
ja 0x517b8f
fst st(1)
fstp st(0)
fstp qword [ebp - 0x1d0]
fld qword [ebp + ecx - 0x4b0]
fld qword [ebp - 0x1c0]
fcom st(1)
fnstsw ax
sahf
jp 0x517bad
jb 0x517baf
fst st(1)
fstp st(0)
fstp qword [ebp - 0x1c0]
push 4
push str.data
mov ecx, esi
mov edx, edi
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x517c9e
movsx eax, byte [esi + 4]
cmp eax, 0x30
jl 0x517c9e
cmp eax, 0x39
jg 0x517c9e
mov edi, dword [ebp - 0x3c]
add esp, 0xfffffff0
movsx eax, byte [esi + 4]
shl eax, 4
lea ecx, [ebp + eax - 0x4b8]
lea edx, [ebp - 0x54]
mov dword [esp + 0xc], edx
mov eax, edi
mov edx, dword [ebp - 0x44]
call fcn.005194b0
add esp, 0x10
movzx eax, al
test eax, eax
je 0x5184dc
movsx ecx, byte [esi + 4]
shl ecx, 4
fld qword [ebp + ecx - 0x4b8]
fld qword [ebp - 0x1d8]
fcom st(1)
fnstsw ax
sahf
ja 0x517c38
fst st(1)
fstp st(0)
fstp qword [ebp - 0x1d8]
fld qword [ebp + ecx - 0x4b8]
fld qword [ebp - 0x1c8]
fcom st(1)
fnstsw ax
sahf
jp 0x517c56
jb 0x517c58
fst st(1)
fstp st(0)
fstp qword [ebp - 0x1c8]
fld qword [ebp + ecx - 0x4b0]
fld qword [ebp - 0x1d0]
fcom st(1)
fnstsw ax
sahf
ja 0x517c76
fst st(1)
fstp st(0)
fstp qword [ebp - 0x1d0]
fld qword [ebp + ecx - 0x4b0]
fld qword [ebp - 0x1c0]
fcom st(1)
fnstsw ax
sahf
jp 0x517c94
jb 0x517c96
fst st(1)
fstp st(0)
fstp qword [ebp - 0x1c0]
mov dword [ebp - 4], 1
mov dword [ebp - 4], 1
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x44]
mov dword [ebx + 0xc], esi
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x30], eax
mov edi, dword [eax + 0x78]
mov edx, esi
cmp esi, edi
jae 0x517cd2
cmp byte [edx], 0xa
je 0x518509
inc edx
cmp edx, edi
jb 0x517cc4
mov edx, edi
push 4
push str._end
mov ecx, esi
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51753f
mov edx, dword [ebp - 0xbc]
cmp edx, 0xff
jae 0x517d0c
mov ecx, dword [ebp - 0xb8]
or ecx, 0xffffffe8
shl edx, cl
mov dword [ebp - 0xbc], edx
mov eax, dword [ebx + 8]
cmp eax, 0x10
jge 0x517d20
or edx, 0x10000
mov dword [ebp - 0xbc], edx
cmp dword [ebp - 0xc0], 0x10
jae 0x517d35
or edx, 0x10000
mov dword [ebp - 0xbc], edx
test edx, 0x10000
jne 0x517d62
cmp eax, 0x10
jl 0x517d6c
shr edx, 8
cmp edx, 0x11
ja 0x517d56
mov dword [ebp - 0xc0], 0x20
jmp 0x517d6c
mov dword [ebp - 0xc0], 0x10
jmp 0x517d6c
mov dword [ebp - 0xc0], 4
mov eax, dword [ebp - 0xa0]
test eax, eax
jbe 0x517dc8
add esp, 0xfffffff8
mov dword [esp], str.SELECT_MP_CITIES_OBS.city__MP_REGIONS_OBS.region__MP_COUNTRIES_OBS.country__FROM_MP_COUNTRIES_OBS__MP_REGIONS_OBS___MP_CITIES_OBS_WHERE__MP_CITIES_OBS.id___i_AND_MP_CITIES_OBS.region_id__MP_REGIONS_OBS.id_AND_MP_REGIONS_OBS.country_id__MP_COUNTRIES_OBS.id_
mov dword [esp + 4], eax
call fcn.0051fe70
add esp, 8
mov esi, eax
add esp, 0xffffffec
mov eax, dword [ebp - 0x40]
lea edi, [ebp - 0x220]
mov dword [esp + 0xc], edi
lea edx, [ebp - 0x208]
mov dword [esp + 0x10], edx
mov eax, dword [eax + 4]
mov edx, esi
lea ecx, [ebp - 0x238]
call fcn.00514bb0
add esp, 0x14
test esi, esi
je 0x517dc8
push eax
mov eax, esi
call fcn.004c69c4
pop ecx
mov eax, dword [ebp - 0xa4]
test eax, eax
jbe 0x517e10
add esp, 0xfffffff8
mov dword [esp], str.SELECT_MP_ZIP_OBS.zip__FROM_MP_ZIP_OBS_WHERE__MP_ZIP_OBS.id___i_
mov dword [esp + 4], eax
call fcn.0051fe70
add esp, 8
mov edi, eax
add esp, 0xfffffff4
mov esi, dword [ebp - 0x40]
mov eax, dword [esi + 4]
mov edx, edi
lea ecx, [ebp - 0x1f0]
call fcn.005156d0
add esp, 0xc
test edi, edi
je 0x517e10
push eax
mov eax, edi
call fcn.004c69c4
pop ecx
add esp, 0xffffffac
mov dword [esp], str.INSERT_INTO_MP_POI__map_id_min_X_min_Y_max_X_max_Y_coordinates_rgnType_type_label__streetdesc__phone__alphaphone__housenumber_cityname_regionname_countryname__zip___VALUES___i___f___f___f___f______i___i___q___q___q___q___q___q___q___q___q__
mov eax, dword [ebp - 0x40]
mov edx, dword [eax + 0x7c]
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0x1d8]
mov esi, dword [ebp - 0x1d4]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], esi
mov edi, dword [ebp - 0x1d0]
mov eax, dword [ebp - 0x1cc]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov edx, dword [ebp - 0x1c8]
mov ecx, dword [ebp - 0x1c4]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
mov esi, dword [ebp - 0x1c0]
mov edi, dword [ebp - 0x1bc]
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], edi
mov eax, dword [ebp - 0xc0]
mov dword [esp + 0x28], eax
mov edx, dword [ebp - 0xbc]
mov dword [esp + 0x2c], edx
mov ecx, dword [ebp - 0x2b4]
mov dword [esp + 0x30], ecx
mov esi, dword [ebp - 0x284]
mov dword [esp + 0x34], esi
mov edi, dword [ebp - 0x26c]
mov dword [esp + 0x38], edi
mov eax, dword [ebp - 0x254]
mov dword [esp + 0x3c], eax
mov edx, dword [ebp - 0x23c]
mov dword [esp + 0x40], edx
mov ecx, dword [ebp - 0x224]
mov dword [esp + 0x44], ecx
mov esi, dword [ebp - 0x20c]
mov dword [esp + 0x48], esi
mov edi, dword [ebp - 0x1f4]
mov dword [esp + 0x4c], edi
mov eax, dword [ebp - 0x1dc]
mov dword [esp + 0x50], eax
call fcn.0051fe70
add esp, 0x54
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x40]
mov edx, dword [eax + 4]
mov dword [ebp - 0xe0], edx
mov dword [ebp - 0xe8], 0
test edx, edx
je 0x517faf
mov eax, edx
cmp dword [eax + 0x38], 0xa029a697
jne 0x517faf
mov eax, dword [eax + 0x44]
test eax, eax
je 0x517f2f
push eax
mov dword [esp], eax
call dword [0x8303c8]
pop ecx
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 4]
test eax, eax
jle 0x518145
mov dword [ebp - 0x3f4], 0
mov esi, dword [ebp - 0x3f4]
shl esi, 4
mov edx, dword [ebp - 0xe0]
mov ecx, dword [edx + 8]
mov esi, dword [ecx + esi + 4]
test esi, esi
je 0x517f99
movzx edx, byte [esi + 9]
test edx, edx
je 0x517f99
inc dword [esi + 0xc]
movzx edx, byte [esi + 0xa]
test edx, edx
jne 0x517f90
mov eax, dword [esi + 0x18]
test eax, eax
je 0x5180c3
mov esi, eax
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x517f82
jmp 0x5180bf
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x3f4]
inc edx
mov dword [ebp - 0x3f4], edx
cmp edx, eax
jl 0x517f4a
jmp 0x518145
xor edi, edi
add esp, 0xfffffff8
mov eax, edi
mov edx, 1
call fcn.00416b20
add esp, 8
test eax, eax
jne 0x51802b
add esp, 0xffffffec
xor eax, eax
mov byte [esp + 0xc], al
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x3c]
lea edx, [ebp - 0x1b8]
mov ecx, 0xa0
call fcn.004c6410
add esp, 0x14
mov esi, eax
add esp, 0xfffffff4
mov eax, dword [edi]
mov dword [esp], eax
mov dword [esp + 4], esi
mov dword [esp + 8], 0
call fcn.00586060
add esp, 0xc
add esp, 0xfffffff8
mov eax, dword [edi]
mov edx, esi
call fcn.00585ff0
add esp, 8
mov eax, dword [edi]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x51802b
push eax
mov dword [esp], eax
call dword [0x8303d0]
pop ecx
push eax
mov eax, dword [ebp - 0xe8]
call fcn.0048ecb4
pop ecx
cmp dword [ebp - 0xe4], 0
je 0x51804e
push eax
mov eax, dword [ebp - 0xe4]
call fcn.004c69c4
pop ecx
push eax
mov eax, dword [ebp - 0xe8]
call fcn.00408ac4
pop ecx
mov dword [ebp - 4], 0
lea ecx, [ebp - 0xdc]
call fcn.00519ec0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c8]
call fcn.00519f40
mov eax, dword [ebp - 0x44]
mov edi, dword [ebp - 0x98]
mov esi, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0xc
movzx edx, byte [esi + 0xa]
test edx, edx
je 0x51813c
mov edx, dword [esi + 0x14]
test edx, edx
je 0x51810f
mov esi, edx
movzx eax, byte [edx + 0xa]
test eax, eax
jne 0x5180c7
mov edi, dword [edx + 0x14]
test edi, edi
je 0x518107
movzx eax, byte [edi + 0xa]
test eax, eax
je 0x518100
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x30]
test eax, eax
je 0x5180fc
push eax
mov dword [esp], eax
call dword [0x8303d0]
pop ecx
mov byte [edi + 0xa], 0
mov edi, dword [edi + 0x14]
test edi, edi
jne 0x5180df
test esi, esi
je 0x517f90
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x30]
test eax, eax
je 0x518127
push eax
mov dword [esp], eax
call dword [0x8303c8]
pop ecx
mov edx, dword [esi + 4]
mov eax, dword [esi]
mov dword [edx + 4], eax
mov byte [esi + 0xa], 1
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x51810f
jmp 0x517f90
mov edi, dword [esi + 0x14]
test edi, edi
jne 0x5180df
jmp 0x51810f
add esp, 0xffffffe4
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
lea edi, [ebp - 0xe8]
mov dword [esp + 0x14], edi
lea esi, [ebp - 0x3f4]
mov dword [esp + 0x18], esi
mov eax, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xe4]
mov ecx, 0xffffffff
call fcn.004c7880
add esp, 0x1c
cmp eax, 0x11
je 0x518219
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 4]
test eax, eax
jle 0x5181f6
xor edi, edi
mov esi, edi
shl esi, 4
mov edx, dword [ebp - 0xe0]
mov ecx, dword [edx + 8]
mov esi, dword [ecx + esi + 4]
test esi, esi
je 0x5181f1
movzx edx, byte [esi + 9]
test edx, edx
je 0x5181f1
mov eax, dword [esi + 0xc]
dec eax
mov dword [esi + 0xc], eax
je 0x5181cf
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 4]
jmp 0x5181f1
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x30]
test eax, eax
je 0x5181e4
push eax
mov dword [esp], eax
call dword [0x8303d0]
pop ecx
mov byte [esi + 0xa], 0
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 4]
inc edi
cmp edi, eax
jl 0x51819d
mov eax, dword [ebp - 0xe0]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x51820e
push eax
mov dword [esp], eax
call dword [0x8303d0]
pop ecx
mov edi, dword [ebp - 0xe8]
jmp 0x517fb1
push eax
mov eax, dword [ebp - 0xe8]
call fcn.00408ac4
pop ecx
add esp, 0xffffffe4
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], esi
mov eax, dword [ebp - 0xe0]
mov edx, dword [ebp - 0xe4]
mov ecx, 0xffffffff
call fcn.004c7880
add esp, 0x1c
jmp 0x51818e
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x74]
mov ecx, esi
call fcn.0051c870
add esp, 0xfffffff4
mov dword [esp], eax
mov edx, dword [esi + 0x20]
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x517658
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x70]
mov ecx, esi
call fcn.0051c870
add esp, 0xfffffff4
mov dword [esp], eax
mov edx, dword [esi + 0x20]
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x51769b
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x3c]
mov ecx, esi
call fcn.0051c870
add esp, 0xfffffff4
mov dword [esp], eax
mov edx, dword [esi + 0x20]
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
jmp 0x5176d2
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x6c]
mov ecx, esi
call fcn.0051c870
add esp, 0xfffffff4
mov dword [esp], eax
mov edx, dword [esi + 0x20]
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x51771b
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x68]
mov ecx, esi
call fcn.0051c870
add esp, 0xfffffff4
mov dword [esp], eax
mov edx, dword [esi + 0x20]
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x517779
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x64]
mov ecx, esi
call fcn.0051c870
add esp, 0xfffffff4
mov dword [esp], eax
mov edx, dword [esi + 0x20]
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x5178b9
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x60]
mov ecx, esi
call fcn.0051c870
add esp, 0xfffffff4
mov dword [esp], eax
mov edx, dword [esi + 0x20]
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x5178fc
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x5c]
mov ecx, esi
call fcn.0051c870
add esp, 0xfffffff4
mov dword [esp], eax
mov edx, dword [esi + 0x20]
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x5179fc
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x58]
mov ecx, esi
call fcn.0051c870
add esp, 0xfffffff4
mov dword [esp], eax
mov edx, dword [esi + 0x20]
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x517a5a
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x80]
mov ecx, esi
call fcn.0051c870
add esp, 0xfffffff4
mov dword [esp], eax
mov edx, dword [esi + 0x20]
mov dword [esp + 4], edx
mov dword [esp + 8], str.E017
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x517bb7
mov esi, dword [ebp - 0x40]
push edi
mov ecx, esi
call fcn.0051c870
add esp, 0xfffffff4
mov dword [esp], eax
mov edx, dword [esi + 0x20]
mov dword [esp + 4], edx
mov dword [esp + 8], str.E017
call fcn.0058f550
add esp, 0xc
jmp 0x517c9e
inc edx
jmp 0x517cd4
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x44]
push esi
mov ecx, dword [ebp - 0x40]
call fcn.005189b0
push eax
push esi
lea ecx, [ebp - 0x2c8]
call fcn.00518a60
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x517acf
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x4c]
mov ecx, esi
call fcn.0051c870
add esp, 0xfffffff4
mov dword [esp], eax
mov edx, dword [esi + 0x20]
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x517ab4
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x44]
push esi
mov ecx, dword [ebp - 0x40]
call fcn.005189b0
push eax
push esi
lea ecx, [ebp - 0x1f0]
call fcn.00518a60
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x517a17
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x44]
push esi
mov ecx, dword [ebp - 0x40]
call fcn.005189b0
push eax
push esi
lea ecx, [ebp - 0x208]
call fcn.00518a60
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x5179b9
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x44]
push esi
mov ecx, dword [ebp - 0x40]
call fcn.005189b0
push eax
push esi
lea ecx, [ebp - 0x220]
call fcn.00518a60
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x51799e
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x44]
push esi
mov ecx, dword [ebp - 0x40]
call fcn.005189b0
push eax
push esi
lea ecx, [ebp - 0x238]
call fcn.00518a60
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x517983
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x44]
push esi
mov ecx, dword [ebp - 0x40]
call fcn.005189b0
push eax
push esi
lea ecx, [ebp - 0x250]
call fcn.00518a60
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x517968
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x44]
push esi
mov ecx, dword [ebp - 0x40]
call fcn.005189b0
push eax
push esi
lea ecx, [ebp - 0x268]
call fcn.00518a60
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x51794d
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x44]
push esi
mov ecx, dword [ebp - 0x40]
call fcn.005189b0
push eax
push esi
lea ecx, [ebp - 0x280]
call fcn.00518a60
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x517932
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x44]
push esi
mov ecx, dword [ebp - 0x40]
call fcn.005189b0
push eax
push esi
lea ecx, [ebp - 0x298]
call fcn.00518a60
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x517917
mov eax, 0x3e9c0ed3
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x8c], eax
jmp 0x517876
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x50]
mov ecx, esi
call fcn.0051c870
add esp, 0xfffffff4
mov dword [esp], eax
mov edx, dword [esi + 0x20]
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
fld dword [ebp - 0x78]
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x517870
mov esi, dword [ebp - 0x40]
push dword [ebp - 0x48]
mov ecx, esi
call fcn.0051c870
add esp, 0xfffffff4
mov dword [esp], eax
mov edx, dword [esi + 0x20]
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x5177eb
mov dword [ebp - 4], 0xb
lea edi, [ebp - 0x118]
mov dword [ebp - 0x108], edi
mov dword [ebp - 0x104], edi
mov dword [ebp - 4], 4
mov eax, dword [edi + 0x10]
mov byte [eax], 0
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x44]
push esi
mov ecx, dword [ebp - 0x40]
call fcn.005189b0
push eax
push esi
mov ecx, edi
call fcn.00518a60
mov dword [ebp - 4], 9
mov dword [ebp - 0xe8], 0
push eax
mov dword [esp], 0xfa34
call fcn.00742a45
pop ecx
mov dword [ebp - 0xe4], eax
test eax, eax
je 0x5187b8
mov dword [ebp - 0xe8], 1
push 0x78d3a4
push dword [ebp - 0x104]
mov ecx, eax
call fcn.00518af0
mov dword [ebp - 0xe8], 0
mov ecx, dword [ebp - 0xe4]
jmp 0x5187ba
xor ecx, ecx
mov dword [ebp - 4], 5
mov dword [ebp - 0xe0], ecx
mov byte [ecx + 0x30], 0
mov eax, dword [ebp - 0xc8]
cmp eax, dword [ebp - 0xcc]
je 0x5187ec
push 0xa
lea ecx, [ebp - 0xdc]
call fcn.0051a240
mov ecx, dword [ebp - 0xe0]
lea esi, [ebp - 0x100]
push esi
call fcn.00518c70
mov dword [ebp - 4], 7
push esi
lea ecx, [ebp - 0xdc]
call fcn.00519490
mov dword [ebp - 4], 6
mov edx, dword [ebp - 0xec]
cmp edx, esi
je 0x51883a
test edx, edx
je 0x51883a
mov eax, dword [ebp - 0x100]
sub eax, edx
cmp eax, 0x80
jbe 0x51890e
push edx
call fcn.007424fc
pop ecx
mov dword [ebp - 4], 4
mov dword [ebp - 4], 4
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xe0]
test ecx, ecx
je 0x51886d
mov edx, dword [ecx]
mov eax, 0x893aa0
cmp edx, eax
jne 0x518869
push 1
call fcn.004024a0
jmp 0x51886d
push 1
call dword [edx]
mov dword [ebp - 4], 3
mov edx, dword [ebp - 0x104]
lea eax, [ebp - 0x118]
cmp edx, eax
je 0x5188a2
test edx, edx
je 0x5188a2
mov eax, dword [ebp - 0x118]
sub eax, edx
cmp eax, 0x80
jbe 0x518925
push edx
call fcn.007424fc
pop ecx
mov dword [ebp - 4], 2
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x517794
add esp, 0xfffffff8
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.005d3210
add esp, 8
jmp 0x51883a
add esp, 0xfffffff8
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.005d3210
add esp, 8
jmp 0x5188a2
mov eax, dword [ebp - 0xc8]
cmp eax, dword [ebp - 0xcc]
je 0x518957
push 0xa
lea ecx, [ebp - 0xdc]
call fcn.0051a240
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x44]
push esi
mov ecx, dword [ebp - 0x40]
call fcn.005189b0
add eax, esi
push eax
push esi
lea ecx, [ebp - 0xdc]
call fcn.00583ef0
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x517736
push dword [ebp - 0x38]
push dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
call fcn.005189b0
push eax
push dword [ebp - 0x34]
lea ecx, [ebp - 0x2b0]
call fcn.00518a60
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
jmp 0x517589