Function at 0x51a940
Capabilities:
Get geographical location
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51bf90
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1a8
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x80], esi
mov ebx, ecx
mov edi, dword [ebp + 8]
mov dword [ebp - 0x28], ebx
xor eax, eax
lea edx, [ebx + 0x7c]
mov dword [ebp - 0x74], eax
push 0xa4
push eax
push edx
call fcn.00766740
add esp, 0xc
mov dword [ebx + 0xac], 0x4e4
fld1
mov eax, 0x14
fst dword [ebx + 0x90]
mov edx, 9
mov esi, 0xa
mov dword [ebx + 0x94], eax
fstp dword [ebx + 0xa4]
mov dword [ebx + 0xb0], edx
mov dword [ebx + 0xd0], 0x18
mov dword [ebx + 0xd4], 0x16
mov dword [ebx + 0xd8], eax
mov dword [ebx + 0xdc], 0x12
mov dword [ebx + 0xe0], 0x10
mov dword [ebx + 0xe4], 0xe
mov dword [ebx + 0xe8], 0xc
mov dword [ebx + 0xec], esi
mov dword [ebx + 0xf0], 8
mov dword [ebx + 0xf4], 6
mov dword [ebx + 0xf8], 1
mov dword [ebx + 0xfc], 2
mov dword [ebx + 0x100], 3
mov dword [ebx + 0x104], 4
mov dword [ebx + 0x108], 5
mov dword [ebx + 0x10c], 6
mov dword [ebx + 0x110], 7
mov dword [ebx + 0x114], 8
mov dword [ebx + 0x118], edx
mov dword [ebx + 0x11c], esi
add ebx, 0x150
mov ecx, ebx
push str.country
call fcn.00527250
push str.region
mov ecx, dword [ebp - 0x28]
add ecx, 0x168
call fcn.00527250
mov ebx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x78]
mov dword [ebp - 0x14], eax
mov eax, edi
cmp edi, dword [ebp - 0x14]
jae 0x51aabb
cmp byte [eax], 0xa
je 0x51bf83
inc eax
cmp eax, dword [ebp - 0x14]
jb 0x51aaac
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0x14]
add esp, 0xfffffff8
mov eax, edi
mov dword [ebp - 0x24], edx
call fcn.00511970
mov dword [ebp - 0x1c], eax
add esp, 8
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x20], eax
mov ecx, edi
mov edx, esi
push 2
push 0x790b4c
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51ab82
push 6
mov ecx, dword [ebp - 0x1c]
mov edx, esi
push 0x793f48
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51ab3e
push 0
call fcn.00744909
add esp, 4
mov ecx, eax
mov ebx, dword [ebp - 0x28]
mov eax, 0x3f294a23
mov esi, ecx
imul ecx
sar edx, 0x16
sar esi, 0x1f
sub edx, esi
imul esi, edx, 0x103663f
sub ecx, esi
mov dword [ebx + 0x7c], ecx
jmp 0x51ab67
add esp, 0xfffffff0
lea esi, [ebx + 0x7c]
mov eax, dword [ebp - 0x1c]
mov dword [esp + 0xc], esi
mov edx, dword [ebp - 0x14]
lea ecx, [ebp - 0x74]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x51b8ee
mov ecx, dword [ebx + 0x7c]
cmp ecx, 0x10000
jb 0x51b8c2
cmp ecx, 0xfffffff
ja 0x51b82e
mov esi, dword [ebp + 0xc]
push 4
mov ecx, edi
mov edx, esi
push str.lock
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51abc1
mov eax, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x28]
add esp, 0xfffffff4
mov dword [ebp - 0x58], eax
lea ecx, [ebx + 0x80]
mov edx, dword [ebp - 0x24]
call fcn.0051c180
add esp, 0xc
movzx eax, al
test eax, eax
je 0x51b920
push 3
mov ecx, edi
mov edx, esi
push 0x793f70
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51ac09
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
add esp, 0xfffffff0
mov dword [ebp - 0x30], eax
lea eax, [eax + 0x84]
mov edx, dword [ebp - 0x24]
mov dword [esp + 0xc], eax
mov eax, ebx
lea ecx, [ebp - 0x74]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x51b94f
push 0xb
mov ecx, edi
mov edx, esi
push str.productcode
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51ac51
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
add esp, 0xfffffff0
mov dword [ebp - 0x3c], eax
lea eax, [eax + 0x88]
mov edx, dword [ebp - 0x24]
mov dword [esp + 0xc], eax
mov eax, ebx
lea ecx, [ebp - 0x74]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x51b980
push 8
mov ecx, edi
mov edx, esi
push str.regionid
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51ac99
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
add esp, 0xfffffff0
mov dword [ebp - 0x38], eax
lea eax, [eax + 0x8c]
mov edx, dword [ebp - 0x24]
mov dword [esp + 0xc], eax
mov eax, ebx
lea ecx, [ebp - 0x74]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x51b9b1
push 9
mov ecx, edi
mov edx, esi
push str.copyright
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x51bf5b
push 0xc
mov ecx, edi
mov edx, esi
push str.mapcopyright
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x51bf33
push 0xd
mov ecx, edi
mov edx, esi
push str.includelayers
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x51bf0b
push 9
mov ecx, edi
mov edx, esi
push str.elevation
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51ad4e
mov ebx, dword [ebp - 0x20]
add esp, 0xfffffff4
mov eax, ebx
mov edx, dword [ebp - 0x24]
lea ecx, [ebp - 0x1b3]
call fcn.0051c110
add esp, 0xc
movzx eax, al
test eax, eax
je 0x51b9e2
movsx eax, byte [ebp - 0x1b3]
cmp eax, 0x41
jl 0x51ad3c
cmp eax, 0x5a
jg 0x51ad3c
add eax, 0x20
movsx eax, al
cmp eax, 0x6d
jne 0x51ad4e
mov eax, dword [ebp - 0x28]
mov dword [eax + 0x90], 0x3e9c0ed3
push 0xc
mov ecx, edi
mov edx, esi
push str.drawpriority
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51ad96
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
add esp, 0xfffffff0
mov dword [ebp - 0x34], eax
lea eax, [eax + 0x94]
mov edx, dword [ebp - 0x24]
mov dword [esp + 0xc], eax
mov eax, ebx
lea ecx, [ebp - 0x74]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x51ba12
push 6
mov ecx, edi
mov edx, esi
push str.marine
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51ae55
mov ebx, dword [ebp - 0x20]
add esp, 0xfffffff4
mov eax, ebx
mov edx, dword [ebp - 0x24]
lea ecx, [ebp - 0x1b2]
call fcn.0051c110
add esp, 0xc
movzx eax, al
test eax, eax
je 0x51ba43
movsx ebx, byte [ebp - 0x1b2]
cmp ebx, 0x41
jl 0x51ade6
cmp ebx, 0x5a
jle 0x51adea
mov eax, ebx
jmp 0x51adf0
lea eax, [ebx + 0x20]
movsx eax, al
cmp eax, 0x31
je 0x51ae06
push ebx
call fcn.0051bfa0
pop ecx
movsx edx, al
cmp edx, 0x79
jne 0x51ae1d
jmp 0x51ae10
push ebx
call fcn.0051bfa0
pop ecx
movsx edx, al
mov eax, dword [ebp - 0x28]
mov dword [eax + 0x9c], 1
cmp edx, 0x32
je 0x51ae27
cmp edx, 0x62
jne 0x51ae34
mov eax, dword [ebp - 0x28]
mov dword [eax + 0x9c], 2
push ebx
call fcn.0051bfa0
pop ecx
movsx eax, al
cmp eax, 0x33
je 0x51ae48
cmp eax, 0x78
jne 0x51ae55
mov eax, dword [ebp - 0x28]
mov dword [eax + 0x9c], 3
push 7
mov ecx, edi
mov edx, esi
push str.preview
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51ae94
mov eax, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x28]
add esp, 0xfffffff4
mov dword [ebp - 0x60], eax
lea ecx, [ebx + 0xa0]
mov edx, dword [ebp - 0x24]
call fcn.0051c180
add esp, 0xc
movzx eax, al
test eax, eax
je 0x51ba73
push 2
mov ecx, edi
mov edx, esi
push 0x793fdc
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51aed3
mov eax, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x28]
add esp, 0xfffffff4
mov dword [ebp - 0x5c], eax
lea ecx, [ebx + 0xa1]
mov edx, dword [ebp - 0x24]
call fcn.0051c180
add esp, 0xc
movzx eax, al
test eax, eax
je 0x51baa2
push 0xb
mov ecx, edi
mov edx, esi
push str.mgnumbering
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x51af01
push 9
mov ecx, edi
mov edx, esi
push str.numbering
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51af29
mov eax, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x28]
add esp, 0xfffffff4
mov dword [ebp - 0x2c], eax
lea ecx, [ebx + 0xa2]
mov edx, dword [ebp - 0x24]
call fcn.0051c180
add esp, 0xc
movzx eax, al
test eax, eax
je 0x51bedc
push 7
mov ecx, edi
mov edx, esi
push str.routing
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51af68
mov eax, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x28]
add esp, 0xfffffff4
mov dword [ebp - 0x64], eax
lea ecx, [ebx + 0xa3]
mov edx, dword [ebp - 0x24]
call fcn.0051c180
add esp, 0xc
movzx eax, al
test eax, eax
je 0x51bad1
push 0x12
mov ecx, edi
mov edx, esi
push str.defaultcitycountry
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x51beb4
push 0xb
mov ecx, edi
mov edx, esi
push str.countryname
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x51beb4
push 0x14
mov ecx, edi
mov edx, esi
push str.defaultregioncountry
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x51be8c
push 0xa
mov ecx, edi
mov edx, esi
push str.regionname
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x51be8c
push 0xd
mov ecx, edi
mov edx, esi
push str.simplifylevel
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51b01c
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
add esp, 0xfffffff0
mov dword [ebp - 0x54], eax
lea eax, [eax + 0xa4]
mov edx, dword [ebp - 0x24]
mov dword [esp + 0xc], eax
mov eax, ebx
lea ecx, [ebp - 0x74]
call fcn.0051c2b0
add esp, 0x10
movzx eax, al
test eax, eax
je 0x51bb00
push 0xb
mov ecx, edi
mov edx, esi
push str.alignmethod
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51b064
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
add esp, 0xfffffff0
mov dword [ebp - 0x50], eax
lea eax, [eax + 0xbc]
mov edx, dword [ebp - 0x24]
mov dword [esp + 0xc], eax
mov eax, ebx
lea ecx, [ebp - 0x74]
call fcn.0051c2b0
add esp, 0x10
movzx eax, al
test eax, eax
je 0x51bb31
push 7
mov ecx, edi
mov edx, esi
push str.tresize
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51b0ac
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
add esp, 0xfffffff0
mov dword [ebp - 0x4c], eax
lea eax, [eax + 0xc0]
mov edx, dword [ebp - 0x24]
mov dword [esp + 0xc], eax
mov eax, ebx
lea ecx, [ebp - 0x74]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x51bb62
push 0xa
mov ecx, edi
mov edx, esi
push str.preprocess
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51b13f
mov ebx, dword [ebp - 0x20]
add esp, 0xfffffff4
mov eax, ebx
mov edx, dword [ebp - 0x24]
lea ecx, [ebp - 0x1b1]
call fcn.0051c110
add esp, 0xc
movzx eax, al
test eax, eax
je 0x51bb93
movsx ebx, byte [ebp - 0x1b1]
push ebx
call fcn.0051bfa0
pop ecx
movsx eax, al
cmp eax, 0x66
je 0x51b116
cmp eax, 0x79
je 0x51b116
cmp eax, 0x67
jne 0x51b123
mov eax, dword [ebp - 0x28]
mov dword [eax + 0xa8], 2
jmp 0x51b123
mov eax, dword [ebp - 0x28]
mov dword [eax + 0xa8], 3
push ebx
call fcn.0051bfa0
pop ecx
movsx edx, al
cmp edx, 0x70
jne 0x51b13f
mov eax, dword [ebp - 0x28]
mov dword [eax + 0xa8], 7
push 8
mov ecx, edi
mov edx, esi
push str.codepage
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51b187
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
add esp, 0xfffffff0
mov dword [ebp - 0x48], eax
lea eax, [eax + 0xac]
mov edx, dword [ebp - 0x24]
mov dword [esp + 0xc], eax
mov eax, ebx
lea ecx, [ebp - 0x74]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x51bbc3
push 9
mov ecx, edi
mov edx, esi
push str.lblcoding
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51b1cf
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
add esp, 0xfffffff0
mov dword [ebp - 0x44], eax
lea eax, [eax + 0xb0]
mov edx, dword [ebp - 0x24]
mov dword [esp + 0xc], eax
mov eax, ebx
lea ecx, [ebp - 0x74]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x51bbf4
push 0xb
mov ecx, edi
mov edx, esi
push str.transparent
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51b230
mov ebx, dword [ebp - 0x20]
add esp, 0xfffffff4
mov eax, ebx
mov edx, dword [ebp - 0x24]
lea ecx, [ebp - 0x18]
call fcn.0051c110
add esp, 0xc
movzx eax, al
test eax, eax
je 0x51bc37
movsx eax, byte [ebp - 0x18]
push eax
call fcn.0051bfa0
pop ecx
movsx eax, al
cmp eax, 0x79
je 0x51bc25
cmp eax, 0x73
jne 0x51b230
mov eax, dword [ebp - 0x28]
mov dword [eax + 0xb4], 2
push 8
mov ecx, edi
mov edx, esi
push str.poiindex
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51b26f
mov eax, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x28]
add esp, 0xfffffff4
mov dword [ebp - 0x70], eax
lea ecx, [ebx + 0xb8]
mov edx, dword [ebp - 0x24]
call fcn.0051c180
add esp, 0xc
movzx eax, al
test eax, eax
je 0x51bc67
push 0xe
mov ecx, edi
mov edx, esi
push str.poinumberfirst
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51b2ae
mov eax, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x28]
add esp, 0xfffffff4
mov dword [ebp - 0x6c], eax
lea ecx, [ebx + 0xb9]
mov edx, dword [ebp - 0x24]
call fcn.0051c180
add esp, 0xc
movzx eax, al
test eax, eax
je 0x51bc96
push 0xb
mov ecx, edi
mov edx, esi
push str.poizipfirst
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51b2ed
mov eax, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x28]
add esp, 0xfffffff4
mov dword [ebp - 0x68], eax
lea ecx, [ebx + 0xba]
mov edx, dword [ebp - 0x24]
call fcn.0051c180
add esp, 0xc
movzx eax, al
test eax, eax
je 0x51bcc5
push 4
mov ecx, edi
mov edx, esi
push str.name
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x51be64
push 5
mov ecx, edi
mov edx, esi
push str.datum
call fcn.0051bfc0
movzx eax, al
test eax, eax
jne 0x51be3c
push 8
mov ecx, edi
mov edx, esi
push str.rgnlimit
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51b36b
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
add esp, 0xfffffff0
mov dword [ebp - 0x40], eax
lea eax, [eax + 0xc8]
mov edx, dword [ebp - 0x24]
mov dword [esp + 0xc], eax
mov eax, ebx
lea ecx, [ebp - 0x74]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x51bcf4
push 6
mov ecx, edi
mov edx, esi
push str.levels
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51b3cb
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x28]
add esp, 0xfffffff0
lea eax, [esi + 0xcc]
mov edx, dword [ebp - 0x24]
lea ecx, [ebp - 0x74]
mov dword [esp + 0xc], eax
mov eax, ebx
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x51bd84
mov eax, dword [esi + 0xcc]
cmp eax, 8
ja 0x51bd51
cmp eax, 1
jb 0x51bd25
mov esi, dword [ebp + 0xc]
push 5
mov ecx, edi
mov edx, esi
push str.level
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51b42c
movsx edx, byte [edi + 5]
cmp edx, 0x30
jl 0x51b42c
cmp edx, 0x39
jg 0x51b42c
mov eax, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x28]
add esp, 0xfffffff0
mov dword [ebp - 0x78], eax
lea edx, [ebx + edx*4 + 0x10]
lea ecx, [ebp - 0x74]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x24]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x51bddd
movsx eax, byte [edi + 5]
cmp dword [ebx + eax*4 + 0x10], 0x18
ja 0x51bdae
push 4
mov ecx, edi
mov edx, esi
push str.zoom
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51b47d
movsx eax, byte [edi + 5]
cmp eax, 0x30
jl 0x51b47d
cmp eax, 0x39
jg 0x51b47d
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x28]
add esp, 0xfffffff0
lea edi, [esi + eax*4 + 0x38]
mov eax, ebx
mov edx, dword [ebp - 0x24]
mov dword [esp + 0xc], edi
lea ecx, [ebp - 0x74]
call fcn.0051c600
add esp, 0x10
movzx eax, al
test eax, eax
je 0x51be0c
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x78]
mov dword [ebp - 0x14], eax
mov edx, edi
cmp edi, eax
jae 0x51b4ac
cmp byte [edx], 0xa
je 0x51be36
inc edx
cmp edx, dword [ebp - 0x14]
jb 0x51b49d
mov edx, dword [ebp - 0x14]
push 4
mov ecx, edi
push str._end
call fcn.0051bfc0
movzx eax, al
test eax, eax
je 0x51aaa5
cmp dword [ebx + 0x7c], 0
je 0x51b80b
mov edx, dword [ebx + 0xcc]
cmp edx, 1
ja 0x51b4e1
xor esi, esi
jmp 0x51b534
xor ecx, ecx
xor esi, esi
mov edi, 1
mov eax, dword [ebx + ecx*4 + 0xd0]
and eax, 0x3f
mov ecx, dword [ebx + ecx*4 + 0xd4]
and ecx, 0x3f
cmp eax, ecx
jbe 0x51b7e2
mov ecx, edi
inc edi
cmp edx, edi
ja 0x51b4ea
cmp edx, 1
jbe 0x51b534
mov ecx, esi
mov edi, 1
mov eax, dword [ebx + ecx*4 + 0xf8]
cmp eax, dword [ebx + ecx*4 + 0xfc]
jae 0x51b7b9
mov ecx, edi
inc edi
cmp edx, edi
ja 0x51b519
fld dword [ebx + 0x90]
add esp, 0xffffff64
mov eax, dword [ebx + 0x7c]
mov dword [esp], str.INSERT_INTO_MP_ID__id__lock___fid___productCode___regionId___copyright____mapcopyright___includelayers___elevation___drawPriority___familyId___marine___preview___mg___mgnumbering_____routing___DEFAULTCITYCOUNTRY___DEFAULTREGIONCOUNTRY___SIMPLIFYLEVEL___PREPROCESS____CODEPAGE___LBLCODING___TRANSPARENT___TRANSPARENTEMPTY___POIONLY___POIINDEX___POINUMBERFIRST____POIZIPFIRST___NAME___ALIGNMETHOD___TRESIZE___TREMARIGIN___DATUM___RGNLIMIT___LEVELS____VALUES____i__i___i___i___i___q____q___q___f___i___i___i___i___i___i_____i___q___q___f___i____i___i___i___i___i__i___i____i___q___f___i___i___q___i___i_
movzx ecx, byte [ebx + 0x80]
mov edi, dword [ebx + 0x84]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x88]
mov dword [esp + 8], ecx
mov ecx, dword [ebx + 0x8c]
mov dword [esp + 0xc], edi
mov edi, dword [ebx + 0x194]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x1ac]
mov dword [esp + 0x14], ecx
mov ecx, dword [ebx + 0x1c4]
mov dword [esp + 0x18], edi
mov edi, dword [ebx + 0x94]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x98]
mov dword [esp + 0x20], ecx
mov ecx, dword [ebx + 0x9c]
fstp qword [esp + 0x24]
mov dword [esp + 0x2c], edi
movzx edi, byte [ebx + 0xa0]
mov dword [esp + 0x30], eax
movzx eax, byte [ebx + 0xa1]
mov dword [esp + 0x34], ecx
movzx ecx, byte [ebx + 0xa2]
mov dword [esp + 0x38], edi
movzx edi, byte [ebx + 0xa3]
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 0x164]
mov dword [esp + 0x40], ecx
mov ecx, dword [ebx + 0x17c]
mov dword [esp + 0x44], edi
mov edi, dword [ebx + 0xa8]
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 0xac]
mov dword [esp + 0x4c], ecx
mov ecx, dword [ebx + 0xb0]
fld dword [ebx + 0xa4]
fstp qword [esp + 0x50]
mov dword [esp + 0x58], edi
mov edi, dword [ebx + 0xb4]
mov dword [esp + 0x5c], eax
movzx eax, byte [ebx + 0xb8]
mov dword [esp + 0x60], ecx
movzx ecx, byte [ebx + 0xb9]
mov dword [esp + 0x64], edi
movzx edi, byte [ebx + 0xba]
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], eax
mov eax, dword [ebx + 0x134]
mov dword [esp + 0x74], ecx
mov ecx, dword [ebx + 0xc0]
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], eax
fld dword [ebx + 0xbc]
mov ebx, dword [ebx + 0x14c]
fstp qword [esp + 0x80]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], 0x400
mov dword [esp + 0x98], edx
call fcn.0051fe70
add esp, 0x9c
mov edi, eax
add esp, 0xffffffec
mov ebx, dword [ebp - 0x28]
mov eax, dword [ebx + 4]
mov dword [esp + 0xc], esi
mov edx, edi
xor ecx, ecx
mov dword [esp + 0x10], esi
call fcn.005037fc
add esp, 0x14
test edi, edi
je 0x51b6d3
push eax
mov eax, edi
call fcn.004c69c4
pop ecx
mov eax, dword [ebp - 0x28]
cmp dword [eax + 0xcc], 0
jbe 0x51b79a
mov edi, esi
push dword [eax + edi*4 + 0xf8]
push dword [eax + edi*4 + 0xd0]
push dword [eax + 0x7c]
push str.INSERT_INTO_MP_LEVELS_id__level___zoom___VALUES___i___i___i___
call fcn.0051fe70
add esp, 0x10
mov ebx, eax
add esp, 0xffffffec
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 4]
mov dword [esp + 0xc], esi
mov edx, ebx
xor ecx, ecx
mov dword [esp + 0x10], esi
call fcn.005037fc
add esp, 0x14
test ebx, ebx
je 0x51b78a
cmp dword [0x830380], 0
je 0x51b782
mov eax, dword [0x84f788]
test eax, eax
je 0x51b740
push eax
call dword [0x8303c8]
pop ecx
push ebx
call dword [0x8303a4]
push ebx
mov edx, dword [0x84f3a0]
sub edx, eax
mov dword [0x84f3a0], edx
mov eax, dword [0x84f3c4]
cmp edx, eax
jge 0x51b761
mov edx, eax
mov dword [0x84f3c4], edx
call dword [0x83039c]
add esp, 8
mov eax, dword [0x84f788]
test eax, eax
je 0x51b78a
push eax
call dword [0x8303d0]
jmp 0x51b789
push ebx
call dword [0x83039c]
pop ecx
inc edi
mov eax, dword [ebp - 0x28]
cmp edi, dword [eax + 0xcc]
jb 0x51b6e5
mov eax, dword [ebp - 0x24]
mov edi, dword [ebp - 0x84]
mov esi, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
push dword [ebp - 0x20]
mov ecx, ebx
call fcn.0051c870
push str.E025
push dword [ebx + 0x20]
push eax
call fcn.0058f550
add esp, 0xc
mov ebx, dword [ebp - 0x28]
mov edx, dword [ebx + 0xcc]
jmp 0x51b52d
push dword [ebp - 0x20]
mov ecx, ebx
call fcn.0051c870
push str.E021
push dword [ebx + 0x20]
push eax
call fcn.0058f550
add esp, 0xc
mov ebx, dword [ebp - 0x28]
mov edx, dword [ebx + 0xcc]
jmp 0x51b506
push dword [ebp - 0x20]
mov ecx, ebx
call fcn.0051c870
push str.E029
push dword [ebx + 0x20]
push eax
call fcn.0058f550
add esp, 0xc
mov ebx, dword [ebp - 0x28]
jmp 0x51b4d2
push dword [ebp - 0x20]
mov ecx, ebx
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [ebx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.E036
call fcn.0058f550
add esp, 0xc
jmp 0x51ab7f
push dword [ebp - 0x20]
mov ecx, ebx
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [ebx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W018
call fcn.0058f550
add esp, 0xc
jmp 0x51ab7f
push dword [ebp - 0x1c]
mov ecx, ebx
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [ebx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.E029
call fcn.0058f550
add esp, 0xc
mov ebx, dword [ebp - 0x28]
mov ecx, dword [ebx + 0x7c]
jmp 0x51ab67
push dword [ebp - 0x58]
mov ecx, ebx
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [ebx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51abc1
push ebx
mov ecx, dword [ebp - 0x30]
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [ebp - 0x30]
mov ecx, dword [edx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51ac09
push ebx
mov ecx, dword [ebp - 0x3c]
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [ebp - 0x3c]
mov ecx, dword [edx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51ac51
push ebx
mov ecx, dword [ebp - 0x38]
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [ebp - 0x38]
mov ecx, dword [edx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51ac99
push ebx
mov esi, dword [ebp - 0x28]
mov ecx, esi
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [esi + 0x20]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51ad4e
push ebx
mov ecx, dword [ebp - 0x34]
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [ebp - 0x34]
mov ecx, dword [edx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51ad96
push ebx
mov esi, dword [ebp - 0x28]
mov ecx, esi
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [esi + 0x20]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51ae55
push dword [ebp - 0x60]
mov ecx, ebx
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [ebx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51ae94
push dword [ebp - 0x5c]
mov ecx, ebx
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [ebx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51aed3
push dword [ebp - 0x64]
mov ecx, ebx
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [ebx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51af68
push ebx
mov ecx, dword [ebp - 0x54]
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [ebp - 0x54]
mov ecx, dword [edx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51b01c
push ebx
mov ecx, dword [ebp - 0x50]
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [ebp - 0x50]
mov ecx, dword [edx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51b064
push ebx
mov ecx, dword [ebp - 0x4c]
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [ebp - 0x4c]
mov ecx, dword [edx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51b0ac
push ebx
mov esi, dword [ebp - 0x28]
mov ecx, esi
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [esi + 0x20]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51b13f
push ebx
mov ecx, dword [ebp - 0x48]
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [ebp - 0x48]
mov ecx, dword [edx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51b187
push ebx
mov ecx, dword [ebp - 0x44]
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [ebp - 0x44]
mov ecx, dword [edx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51b1cf
mov eax, dword [ebp - 0x28]
mov dword [eax + 0xb4], 1
jmp 0x51b230
push ebx
mov esi, dword [ebp - 0x28]
mov ecx, esi
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [esi + 0x20]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51b230
push dword [ebp - 0x70]
mov ecx, ebx
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [ebx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51b26f
push dword [ebp - 0x6c]
mov ecx, ebx
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [ebx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51b2ae
push dword [ebp - 0x68]
mov ecx, ebx
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [ebx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51b2ed
push ebx
mov ecx, dword [ebp - 0x40]
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [ebp - 0x40]
mov ecx, dword [edx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51b36b
push dword [ebp - 0x20]
mov ecx, esi
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [esi + 0x20]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.E033
call fcn.0058f550
add esp, 0xc
jmp 0x51b3c8
push ebx
mov ecx, esi
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [esi + 0x20]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.E020
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp - 0x28]
mov eax, dword [esi + 0xcc]
jmp 0x51b3bf
push ebx
mov ecx, esi
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [esi + 0x20]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
jmp 0x51b3c8
push dword [ebp - 0x78]
mov ecx, ebx
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [ebx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51b42c
push dword [ebp - 0x78]
mov ecx, ebx
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [ebx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51b42c
push ebx
mov ecx, esi
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [esi + 0x20]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
jmp 0x51b47d
inc edx
jmp 0x51b4af
push dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x28]
push ebx
mov ecx, esi
call fcn.005189b0
push eax
add esi, 0x138
mov ecx, esi
push ebx
call fcn.00518a60
mov esi, dword [ebp + 0xc]
jmp 0x51b323
push dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x28]
push ebx
mov ecx, esi
call fcn.005189b0
push eax
add esi, 0x120
mov ecx, esi
push ebx
call fcn.00518a60
mov esi, dword [ebp + 0xc]
jmp 0x51b308
push dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x28]
push ebx
mov ecx, esi
call fcn.005189b0
push eax
add esi, 0x168
mov ecx, esi
push ebx
call fcn.00518a60
mov esi, dword [ebp + 0xc]
jmp 0x51afd4
push dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x28]
push ebx
mov ecx, esi
call fcn.005189b0
push eax
add esi, 0x150
mov ecx, esi
push ebx
call fcn.00518a60
mov esi, dword [ebp + 0xc]
jmp 0x51af9e
push dword [ebp - 0x2c]
mov ecx, ebx
call fcn.0051c870
add esp, 0xfffffff4
mov edx, dword [ebx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], str.W025
call fcn.0058f550
add esp, 0xc
mov esi, dword [ebp + 0xc]
jmp 0x51af29
push dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x28]
push ebx
mov ecx, esi
call fcn.005189b0
push eax
add esi, 0x1b0
mov ecx, esi
push ebx
call fcn.00518a60
mov esi, dword [ebp + 0xc]
jmp 0x51acea
push dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x28]
push ebx
mov ecx, esi
call fcn.005189b0
push eax
add esi, 0x198
mov ecx, esi
push ebx
call fcn.00518a60
mov esi, dword [ebp + 0xc]
jmp 0x51accf
push dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x28]
push ebx
mov ecx, esi
call fcn.005189b0
push eax
add esi, 0x180
mov ecx, esi
push ebx
call fcn.00518a60
mov esi, dword [ebp + 0xc]
jmp 0x51acb4
lea eax, [eax + 1]
mov dword [ebp - 0x14], eax
jmp 0x51aabb