Function at 0x424690
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x750
mov edx, ecx
xor eax, eax
mov ecx, dword [ebp + 8]
test ecx, ecx
push ebx
push esi
mov ebx, ecx
mov dword [ebp - 0x48], edx
sete byte [ebp - 0xc]
mov dword [ebp - 0x14], ebx
test byte [0x453b58], 1
mov esi, 4
push edi
mov dword [ebp - 8], eax
jne 0x4247c7
mov edi, 0x453b58
lock bts dword [edi], 0x1f
jae 0x4246eb
test byte [0x453b58], 1
jne 0x4247c7
mov ecx, edi
call fcn.00426b70
jmp 0x4247c2
mov esi, dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
lea eax, [ebp - 0x64]
push 4
push eax
push 0xe
push 0x400
call esi
test eax, eax
je 0x424726
mov ax, word [ebp - 0x64]
test ax, ax
je 0x424726
movzx ecx, word [0x453b54]
cmp word [ebp - 0x62], 0
movzx eax, ax
cmove ecx, eax
mov word [0x453b54], cx
push 4
lea eax, [ebp - 0x64]
push eax
push 0xf
push 0x400
call esi
test eax, eax
je 0x42475b
mov ax, word [ebp - 0x64]
test ax, ax
je 0x42475b
movzx ecx, word [0x453b18]
cmp word [ebp - 0x62], 0
movzx eax, ax
cmove ecx, eax
mov word [0x453b18], cx
cmp word [0x453b54], 0x2e
je 0x424779
push 0x44f2da
push 0
call fcn.0042f7aa
add esp, 8
mov dword [0x454a6c], eax
lock bts dword [edi], 0
jb 0x4247bd
mov esi, dword [0x453b5c]
test esi, esi
je 0x424793
push 0
push esi
call dword [sym.imp.ntdll.dll_NtSetEvent]
mov eax, 0xfffffffe
lock xadd dword [edi], eax
shr eax, 1
and eax, 0x7fff
sub eax, 1
jne 0x4247bd
test esi, esi
je 0x4247bd
push esi
call dword [sym.imp.ntdll.dll_NtClose]
mov dword [0x453b5c], 0
mov esi, 4
mov edx, dword [ebp - 0x48]
xor eax, eax
fld qword [0x450690]
fld qword [0x450680]
mov dword [ebp - 0x58], 3
dec esi
mov dword [ebp - 0x50], eax
mov edi, edx
mov dword [ebp - 0x5c], esi
mov ecx, edx
mov dword [ebp - 0x38], edi
mov esi, edx
mov dword [ebp - 0x10], 0
add edx, 0x18
mov dword [ebp - 0x48], edx
mov edx, dword [edi]
mov eax, edx
and eax, 0x3f
mov dword [ebp - 0x1c], edx
cmp eax, 0xc
ja case.default.0x42480a
jmp dword [eax*4 + 0x4254bc]
cmp byte [ebp - 0xc], 0
fstp st(1)
fstp st(0)
jne 0x425155
mov eax, dword [ebp - 8]
add eax, 2
cmp eax, 0x82
jbe 0x424844
mov eax, dword [ebp - 8]
add ebx, 2
add eax, 2
mov byte [ebp - 0xc], 1
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], eax
jmp 0x4253b1
mov ax, word [edi + 0x10]
jmp 0x425152
cmp byte [ebp - 0xc], 0
fstp st(1)
fstp st(0)
jne 0x42488e
mov eax, dword [ebp - 8]
mov ecx, dword [edi + 0x10]
add eax, ecx
cmp eax, 0x82
jbe 0x424881
mov eax, ecx
mov byte [ebp - 0xc], 1
shr eax, 1
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 8]
add eax, ecx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], eax
jmp 0x4253b1
push ecx
push dword [edi + 0x14]
push ebx
call fcn.00441e40
add esp, 0xc
mov eax, dword [edi + 0x10]
shr eax, 1
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 8]
add eax, dword [edi + 0x10]
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], eax
jmp 0x4253b1
mov ecx, dword [edi + 0x10]
fstp st(1)
fstp st(0)
call fcn.00411ec0
mov esi, eax
add esi, esi
cmp byte [ebp - 0xc], 0
jne 0x4248f2
mov ecx, dword [ebp - 8]
add ecx, esi
cmp ecx, 0x82
jbe 0x4248e5
mov eax, esi
mov byte [ebp - 0xc], 1
shr eax, 1
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 8]
add eax, esi
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], eax
jmp 0x4253b1
push esi
push dword [edi + 0x10]
push ebx
call fcn.00441e40
add esp, 0xc
mov eax, esi
shr eax, 1
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 8]
add eax, esi
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], eax
jmp 0x4253b1
fstp st(1)
fstp st(0)
cmp edx, 3
jne 0x42491a
mov edi, dword [edi + 0x14]
mov esi, dword [esi + 0x10]
jmp 0x42492b
mov edi, dword [esi + 0x10]
mov esi, edi
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x424922
sub esi, ecx
push esi
push edi
lea eax, [ebp - 0x54]
push eax
call dword [sym.imp.ntdll.dll_RtlMultiByteToUnicodeSize]
test eax, eax
js 0x4253ae
cmp byte [ebp - 0xc], 0
jne 0x424983
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x54]
add eax, ecx
cmp eax, 0x82
jbe 0x42496f
mov eax, ecx
mov byte [ebp - 0xc], 1
shr eax, 1
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 8]
add eax, ecx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], eax
jmp 0x4253b1
push esi
push edi
push 0
push ecx
push ebx
call dword [sym.imp.ntdll.dll_RtlMultiByteToUnicodeN]
test eax, eax
js 0x4253ae
mov ecx, dword [ebp - 0x54]
mov eax, ecx
shr eax, 1
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 8]
add eax, ecx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], eax
jmp 0x4253b1
mov eax, dword [ecx + 0x10]
mov ecx, eax
cdq
mov esi, eax
shr ecx, 0x1f
xor esi, edx
mov dword [ebp - 0x10], ecx
sub esi, edx
mov edx, dword [ebp - 0x1c]
jmp 0x4249b7
mov esi, dword [edi + 0x10]
fstp st(1)
fstp st(0)
mov dword [ebp - 0x40], 0xa
test edx, 0x100
je 0x4249da
mov cl, byte [edi + 0xa]
lea eax, [ecx - 2]
cmp al, 0x43
ja 0x4249da
movzx eax, cl
mov dword [ebp - 0x40], eax
test edx, 0x20000000
mov ecx, str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_________._:_________
mov eax, str.0123456789abcdefghijklmnopqrstuvwxyz_________._:_________
cmovne eax, ecx
xor edi, edi
mov dword [ebp - 0x30], eax
lea ecx, [ebp - 0x8e]
test esi, esi
je 0x424a7e
test edx, 0x10000
je 0x424a56
xor eax, eax
mov dword [ebp - 0x18], eax
lea ecx, [ecx]
mov eax, esi
xor edx, edx
div dword [ebp - 0x40]
inc edi
mov esi, eax
mov dword [ebp - 0x20], edi
mov eax, dword [ebp - 0x30]
movsx ax, byte [eax + edx]
mov word [ecx], ax
sub ecx, 2
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 3
jne 0x424a50
test esi, esi
je 0x424a98
mov ax, word [0x453b18]
inc edi
mov word [ecx], ax
sub ecx, 2
xor eax, eax
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x18], eax
test esi, esi
jne 0x424a10
jmp 0x424a98
mov ebx, dword [ebp - 0x30]
lea esp, [esp]
mov eax, esi
xor edx, edx
div dword [ebp - 0x40]
inc edi
mov esi, eax
movsx ax, byte [ebx + edx]
mov word [ecx], ax
sub ecx, 2
test esi, esi
jne 0x424a60
mov ebx, dword [ebp - 0x14]
jmp 0x424a95
mov eax, 0x30
lea ecx, [ebp - 0x90]
mov word [ebp - 0x8e], ax
mov edi, 1
mov dword [ebp - 0x20], edi
mov esi, dword [ebp - 0x1c]
xor edx, edx
cmp dword [ebp - 0x10], edx
je 0x424aa9
mov edx, 1
jmp 0x424ab7
test esi, 0x20000
mov eax, 1
cmovne edx, eax
mov eax, esi
mov dword [ebp - 0x18], edx
and eax, 0x50000
cmp eax, 0x40000
jne 0x424ae9
mov eax, dword [ebp - 0x38]
movzx esi, word [eax + 6]
lea eax, [edx + edi]
cmp eax, esi
jae 0x424ae6
or dword [ebp - 0x10], 4
sub esi, edx
sub esi, edi
add edx, esi
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x18], edx
mov esi, dword [ebp - 0x1c]
add ecx, 2
cmp byte [ebp - 0xc], 0
mov dword [ebp - 0x24], ecx
jne 0x424b79
lea eax, [edx + edi]
mov edx, dword [ebp - 8]
lea eax, [edx + eax*2]
cmp eax, 0x82
jbe 0x424b1f
mov eax, dword [ebp - 0x18]
mov ecx, edx
add eax, edi
mov byte [ebp - 0xc], 1
lea ecx, [ecx + eax*2]
mov dword [ebp - 8], ecx
jmp 0x4253ae
mov eax, dword [ebp - 0x10]
test al, 1
je 0x424b2d
mov edx, 0x2d
jmp 0x424b3a
test esi, 0x20000
je 0x424b40
mov edx, 0x2b
mov word [ebx], dx
add ebx, 2
test al, 4
je 0x424b66
mov edx, dword [ebp - 0x68]
test edx, edx
je 0x424b63
mov ecx, edx
mov eax, 0x300030
shr ecx, 1
mov edi, ebx
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
mov ecx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x20]
lea ebx, [ebx + edx*2]
lea esi, [edi + edi]
push esi
push ecx
push ebx
call fcn.00441e40
add esp, 0xc
add ebx, esi
mov dword [ebp - 0x14], ebx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 8]
add eax, edi
lea ecx, [ecx + eax*2]
mov dword [ebp - 8], ecx
jmp 0x4253ae
mov esi, dword [edi + 0x14]
fstp st(1)
mov ecx, dword [edi + 0x10]
fstp st(0)
mov dword [ebp - 0x40], ecx
test esi, esi
jg 0x424bc0
jl 0x424ba3
test ecx, ecx
jae 0x424bc0
neg ecx
mov dword [ebp - 0x10], 1
adc esi, 0
neg esi
jmp 0x424bbd
mov ecx, dword [edi + 0x10]
fstp st(1)
mov esi, dword [edi + 0x14]
fstp st(0)
mov dword [ebp - 0x40], ecx
mov edi, dword [ebp - 0x1c]
mov edx, 0xa
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x18], 0
test edi, 0x100
je 0x424c08
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x20], 0xa
mov dword [ebp - 0x18], 0
mov dl, byte [eax + 0xa]
lea eax, [edx - 2]
cmp al, 0x43
ja 0x424c03
movzx eax, dl
cdq
mov dword [ebp - 0x18], edx
mov edx, eax
mov dword [ebp - 0x20], eax
jmp 0x424c08
mov edx, 0xa
test edi, 0x20000000
mov eax, str.0123456789abcdefghijklmnopqrstuvwxyz_________._:_________
mov edi, str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_________._:_________
cmovne eax, edi
lea edi, [ebp - 0x8e]
mov dword [ebp - 0x24], eax
xor eax, eax
mov dword [ebp - 0x28], eax
mov eax, ecx
or eax, esi
je 0x424ce5
test dword [ebp - 0x1c], 0x10000
mov ebx, dword [ebp - 0x40]
je 0x424cb1
xor eax, eax
mov dword [ebp - 0x30], eax
push ebx
push dword [ebp - 0x18]
push edx
push esi
push ebx
call fcn.00441ac0
mov dword [ebp - 0x40], ebx
pop ebx
mov ebx, eax
mov esi, edx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x30]
inc edx
mov dword [ebp - 0x30], edx
movsx cx, byte [eax + ecx]
mov word [edi], cx
sub edi, 2
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x28], ecx
cmp edx, 3
jne 0x424c94
mov eax, ebx
or eax, esi
je 0x424c9d
mov ax, word [0x453b18]
inc ecx
mov word [edi], ax
sub edi, 2
xor eax, eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x20]
mov eax, ebx
or eax, esi
jne 0x424c44
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x1c]
xor edx, edx
cmp dword [ebp - 0x10], edx
je 0x424d01
mov edx, 1
jmp 0x424d0f
push ebx
push dword [ebp - 0x18]
push edx
push esi
push ebx
call fcn.00441ac0
mov dword [ebp - 0x30], ebx
pop ebx
mov ebx, eax
mov esi, edx
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
movsx ax, byte [eax + ecx]
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x28], ecx
mov word [edi], ax
mov eax, ebx
sub edi, 2
or eax, esi
jne 0x424cb1
jmp 0x424c9d
mov eax, 0x30
lea edi, [ebp - 0x90]
mov ecx, 1
mov word [ebp - 0x8e], ax
mov dword [ebp - 0x28], ecx
jmp 0x424ca0
test esi, 0x20000
mov eax, 1
cmovne edx, eax
mov eax, esi
mov dword [ebp - 0x30], edx
and eax, 0x50000
cmp eax, 0x40000
jne 0x424d41
mov eax, dword [ebp - 0x38]
movzx esi, word [eax + 6]
lea eax, [edx + ecx]
cmp eax, esi
jae 0x424d3e
or dword [ebp - 0x10], 4
sub esi, edx
sub esi, ecx
add edx, esi
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x30], edx
mov esi, dword [ebp - 0x1c]
add edi, 2
cmp byte [ebp - 0xc], 0
mov dword [ebp - 0x24], edi
jne 0x424dd2
lea eax, [edx + ecx]
mov edx, dword [ebp - 8]
lea eax, [edx + eax*2]
cmp eax, 0x82
jbe 0x424d78
mov eax, dword [ebp - 0x28]
mov ecx, edx
add eax, dword [ebp - 0x30]
mov byte [ebp - 0xc], 1
lea ecx, [ecx + eax*2]
mov dword [ebp - 8], ecx
jmp 0x4253ae
mov eax, dword [ebp - 0x10]
test al, 1
je 0x424d86
mov edx, 0x2d
jmp 0x424d93
test esi, 0x20000
je 0x424d99
mov edx, 0x2b
mov word [ebx], dx
add ebx, 2
test al, 4
je 0x424dbf
mov edx, dword [ebp - 0x6c]
test edx, edx
je 0x424dbc
mov ecx, edx
mov eax, 0x300030
shr ecx, 1
mov edi, ebx
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
mov edi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
lea ebx, [ebx + edx*2]
lea esi, [ecx + ecx]
push esi
push edi
push ebx
call fcn.00441e40
add esp, 0xc
add ebx, esi
mov dword [ebp - 0x14], ebx
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 8]
add eax, dword [ebp - 0x30]
lea ecx, [ecx + eax*2]
mov dword [ebp - 8], ecx
jmp 0x4253ae
mov dword [ebp - 0x10], 0
fstp st(1)
fstp st(0)
test dl, 0x40
je 0x424e09
movzx eax, word [edi + 4]
mov ecx, 0xa2
cmp eax, 0xa2
cmova eax, ecx
jmp 0x424e0e
mov eax, 6
mov ecx, edx
test edx, 0x1000
je 0x424e22
mov dword [ebp - 0x1c], edx
mov edx, 0x65
jmp 0x424e38
test dword [ebp - 0x1c], 0x2000
mov edx, 0x66
je 0x424e38
mov dword [ebp - 0x1c], ecx
mov edx, 0x61
push dword [0x454a6c]
test dword [ebp - 0x1c], 0x20000000
lea ecx, [ebp - 0x48b]
fld qword [edi + 0x10]
push 0
push 0
push eax
lea eax, [edx - 0x20]
mov dword [ebp - 0x18], ecx
cmove eax, edx
push eax
push 0x15e
lea eax, [ebp - 0x5ec]
push eax
mov eax, ecx
push 0x3ff
push eax
lea eax, [ebp - 0x84]
push eax
fstp qword [ebp - 0x84]
call fcn.00430ddf
mov edi, dword [edi]
add esp, 0x28
test edi, 0x8000
je 0x424e9d
lea ecx, [ebp - 0x48b]
call fcn.00423460
mov edi, dword [esi]
lea esi, [ebp - 0x48b]
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x424ea6
sub esi, ecx
cmp byte [ebp - 0x48b], 0x2d
mov dword [ebp - 0x24], esi
jne 0x424ecf
lea ecx, [ebp - 0x48a]
dec esi
mov edx, 1
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x24], esi
jmp 0x424ee3
mov edx, dword [ebp - 0x10]
test edi, 0x20000
mov ecx, dword [ebp - 0x18]
mov eax, 2
cmovne edx, eax
mov eax, edi
mov dword [ebp - 0x10], edx
and eax, 0x13000
cmp eax, 0x10000
jne 0x42501f
mov al, byte [ecx]
mov edi, ecx
sub al, 0x30
cmp al, 0xa
jae 0x424f0c
mov al, byte [edi + 1]
inc edi
sub al, 0x30
cmp al, 0xa
jb 0x424f02
mov eax, edi
sub eax, ecx
mov dword [ebp - 0x30], eax
je 0x424f2b
lea ecx, [eax + 2]
mov eax, 0xaaaaaaab
mul ecx
mov dword [ebp - 0x20], ecx
mov eax, edx
mov edx, ecx
shr eax, 1
dec eax
jmp 0x424f30
xor eax, eax
lea edx, [eax + 2]
mov dword [ebp - 0x40], eax
add eax, esi
add eax, eax
cmp byte [ebp - 0xc], 0
jne 0x424f61
cmp dword [ebp - 0x10], 0
lea ecx, [eax + 2]
cmove ecx, eax
mov eax, dword [ebp - 0xc]
add ecx, dword [ebp - 8]
cmp ecx, 0x82
movzx eax, al
mov ecx, 1
cmova eax, ecx
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x30]
mov eax, edx
xor edx, edx
div dword [ebp - 0x58]
cmp byte [ebp - 0xc], 0
mov eax, dword [ebp - 0x10]
jne 0x424fd7
test al, 1
je 0x424f7f
mov eax, 0x2d
jmp 0x424f88
test al, 2
je 0x424f94
mov eax, 0x2b
mov word [ebx], ax
add ebx, 2
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x30], 0
je 0x424fd7
mov esi, dword [ebp - 0x18]
lea ecx, [ecx]
movsx ax, byte [esi]
lea esi, [esi + 1]
dec ecx
mov word [ebx], ax
mov eax, edx
add ebx, 2
dec edx
test eax, eax
jne 0x424fca
test ecx, ecx
je 0x424fce
mov ax, word [0x453b18]
mov edx, 2
mov word [ebx], ax
add ebx, 2
test ecx, ecx
jne 0x424fa0
mov esi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], ebx
mov edx, dword [ebp - 8]
test eax, eax
mov eax, dword [ebp - 0x40]
lea ecx, [edx + 2]
cmove ecx, edx
add eax, dword [ebp - 0x30]
sub esi, dword [ebp - 0x30]
cmp byte [ebp - 0xc], 0
lea eax, [ecx + eax*2]
mov dword [ebp - 8], eax
jne 0x4253b1
push ebx
mov edx, esi
mov ecx, edi
call fcn.00412960
lea ecx, [esi + esi]
mov eax, ecx
shr eax, 1
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 8]
add eax, ecx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], eax
jmp 0x4253b1
xor ecx, ecx
test edx, edx
setne cl
mov edx, ecx
test edi, 0x40000
je 0x42504e
mov eax, dword [ebp - 0x38]
movzx edi, word [eax + 6]
lea eax, [esi + ecx]
cmp eax, edi
jae 0x42504e
or dword [ebp - 0x10], 4
sub edi, ecx
sub edi, esi
mov dword [ebp - 0x4c], edi
lea edx, [ecx + edi]
jmp 0x425051
mov edi, dword [ebp - 0x4c]
cmp byte [ebp - 0xc], 0
jne 0x4250b0
mov ecx, dword [ebp - 8]
lea eax, [edx + esi]
lea eax, [ecx + eax*2]
cmp eax, 0x82
jbe 0x42506d
mov byte [ebp - 0xc], 1
jmp 0x4250b0
mov eax, dword [ebp - 0x10]
test al, 1
je 0x42507b
mov ecx, 0x2d
jmp 0x425084
test al, 2
je 0x42508d
mov ecx, 0x2b
mov word [ebx], cx
add ebx, 2
mov dword [ebp - 0x14], ebx
test al, 4
je 0x4250b0
test edi, edi
je 0x4250aa
mov ecx, edi
mov eax, 0x300030
shr ecx, 1
mov edi, ebx
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
mov edi, dword [ebp - 0x4c]
lea ebx, [ebx + edi*2]
mov dword [ebp - 0x14], ebx
cmp byte [ebp - 0xc], 0
mov eax, dword [ebp - 8]
lea eax, [eax + edx*2]
mov dword [ebp - 8], eax
jne 0x4253b1
mov ecx, dword [ebp - 0x18]
mov edx, esi
push ebx
call fcn.00412960
lea ecx, [esi + esi]
mov eax, ecx
shr eax, 1
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 8]
add eax, ecx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], eax
jmp 0x4253b1
mov eax, dword [ebp - 0x38]
xor edi, edi
mov dword [ebp - 0x7c], edi
mov esi, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
mov eax, edx
mov ecx, edx
mov dword [ebp - 0x74], esi
and eax, 0x7fffffff
and ecx, 0x80000000
or esi, edx
mov dword [ebp - 0x70], eax
fild qword [ebp - 0x74]
mov dword [ebp - 0x78], ecx
fild qword [ebp - 0x7c]
fchs
faddp st(1)
jne 0x425169
cmp byte [ebp - 0xc], 0
fstp st(0)
fstp st(1)
fstp st(0)
jne 0x425155
mov eax, dword [ebp - 8]
add eax, 2
cmp eax, 0x82
jbe 0x42514d
mov eax, dword [ebp - 8]
add ebx, 2
add eax, 2
mov byte [ebp - 0xc], 1
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], eax
jmp 0x4253b1
mov eax, 0x30
mov word [ebx], ax
mov eax, dword [ebp - 8]
add ebx, 2
add eax, 2
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], eax
jmp 0x4253b1
mov edx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x38]
test edx, 0x100
je 0x42517d
movzx ecx, byte [esi + 0xa]
jmp 0x425183
mov ecx, dword [0x453dc8]
fcomi st(2)
jb 0x425197
cmp edi, 7
jae 0x425197
cmp edi, ecx
jae 0x425197
fmul st(1)
inc edi
fcomi st(2)
jae 0x425187
fstp st(2)
fstp st(0)
test dl, 0x40
je 0x4251a6
movzx eax, word [esi + 4]
jmp 0x4251ab
mov eax, 2
push dword [0x454a6c]
movzx eax, ax
mov ecx, 0xa2
push 0
cmp eax, 0xa2
mov dword [ebp - 0x18], 0
push 0
cmova eax, ecx
lea ecx, [ebp - 0x48b]
push eax
push 0x66
push 0x15e
lea eax, [ebp - 0x74c]
mov dword [ebp - 0x30], ecx
push eax
mov eax, ecx
push 0x3ff
push eax
lea eax, [ebp - 0x8c]
push eax
fstp qword [ebp - 0x8c]
call fcn.00430ddf
add esp, 0x28
lea ecx, [ebp - 0x48b]
call fcn.00423460
lea esi, [ebp - 0x48b]
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x425215
sub esi, ecx
cmp byte [ebp - 0x48b], 0x2d
mov dword [ebp - 0x20], esi
jne 0x425240
lea edx, [ebp - 0x48a]
mov dword [ebp - 0x18], 1
dec esi
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x20], esi
jmp 0x425243
mov edx, dword [ebp - 0x30]
mov al, byte [edx]
mov ecx, edx
sub al, 0x30
mov dword [ebp - 0x10], edx
cmp al, 0xa
jae 0x42525d
mov al, byte [ecx + 1]
inc ecx
sub al, 0x30
cmp al, 0xa
jb 0x425250
mov dword [ebp - 0x10], ecx
mov eax, ecx
sub eax, edx
mov dword [ebp - 0x40], eax
je 0x42527a
lea ecx, [eax + 2]
mov eax, 0xaaaaaaab
mul ecx
mov dword [ebp - 0x24], ecx
mov eax, edx
shr eax, 1
dec eax
jmp 0x425283
xor eax, eax
mov dword [ebp - 0x24], 2
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x28], eax
add eax, esi
add eax, eax
test cl, cl
jne 0x4252b2
cmp dword [ebp - 0x18], 0
lea edx, [eax + 2]
movzx ecx, cl
cmove edx, eax
mov eax, 1
add edx, dword [ebp - 8]
cmp edx, 0x82
cmova ecx, eax
mov byte [ebp - 0xc], cl
mov eax, dword [ebp - 0x24]
xor edx, edx
div dword [ebp - 0x58]
cmp byte [ebp - 0xc], 0
mov ecx, dword [ebp - 0x40]
jne 0x425311
cmp dword [ebp - 0x18], 0
je 0x4252d4
mov eax, 0x2d
mov word [ebx], ax
add ebx, 2
cmp dword [ebp - 0x40], 0
je 0x425311
mov esi, dword [ebp - 0x30]
lea ecx, [ecx]
movsx ax, byte [esi]
lea esi, [esi + 1]
dec ecx
mov word [ebx], ax
mov eax, edx
add ebx, 2
dec edx
test eax, eax
jne 0x42530a
test ecx, ecx
je 0x42530e
mov ax, word [0x453b18]
mov edx, 2
mov word [ebx], ax
add ebx, 2
test ecx, ecx
jne 0x4252e0
mov esi, dword [ebp - 0x20]
mov eax, dword [ebp - 8]
cmp dword [ebp - 0x18], 0
lea ecx, [eax + 2]
cmove ecx, eax
mov eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x40]
sub esi, dword [ebp - 0x40]
cmp byte [ebp - 0xc], 0
lea edx, [ecx + eax*2]
mov dword [ebp - 0x30], edx
jne 0x42538e
mov ecx, dword [ebp - 0x10]
mov edx, esi
push ebx
call fcn.00412960
mov edx, dword [ebp - 0x30]
lea ecx, [esi + esi]
mov eax, ecx
add edx, ecx
shr eax, 1
mov dword [ebp - 0x30], edx
lea ebx, [ebx + eax*2]
mov eax, dword [edi*8 + 0x453b1c]
add eax, 2
add eax, edx
cmp eax, 0x82
jbe 0x425369
mov byte [ebp - 0xc], 1
jmp 0x42538e
mov eax, 0x20
mov word [ebx], ax
lea eax, [ebx + 2]
push dword [edi*8 + 0x453b1c]
push dword [edi*8 + 0x453b20]
push eax
call fcn.00441e40
mov edx, dword [ebp - 0x30]
add esp, 0xc
mov ecx, dword [edi*8 + 0x453b1c]
lea eax, [ecx + 2]
shr eax, 1
lea ebx, [ebx + eax*2]
lea eax, [ecx + 2]
mov dword [ebp - 0x14], ebx
add eax, edx
mov dword [ebp - 8], eax
jmp 0x4253b1
fstp st(1)
fstp st(0)
mov eax, dword [ebp - 8]
mov edi, dword [ebp - 0x38]
mov ecx, eax
sub ecx, dword [ebp - 0x50]
mov edx, dword [edi]
test edx, 0xc0000000
je 0x42545b
movzx esi, word [edi + 6]
add esi, esi
cmp ecx, esi
jae 0x42545b
sub esi, ecx
cmp byte [ebp - 0xc], 0
jne 0x425449
add eax, esi
cmp eax, 0x82
jbe 0x4253ec
mov byte [ebp - 0xc], 1
jmp 0x425449
test dl, dl
jns 0x4253f6
movzx eax, word [edi + 8]
jmp 0x4253fb
mov eax, 0x20
mov edi, esi
mov dword [ebp - 0x24], eax
shr edi, 1
test edx, edx
jns 0x425410
test edi, edi
je 0x425449
mov ecx, edi
mov edi, ebx
jmp 0x425436
mov eax, ecx
mov edx, ebx
and eax, 0xfffffffe
sub edx, eax
push ecx
push edx
mov dword [ebp - 0x50], edx
lea eax, [edx + edi*2]
push eax
call fcn.0042aab0
add esp, 0xc
test edi, edi
je 0x425449
mov eax, dword [ebp - 0x24]
mov ecx, edi
mov edi, dword [ebp - 0x50]
movzx edx, ax
mov eax, edx
shl edx, 0x10
or eax, edx
shr ecx, 1
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
mov eax, esi
shr eax, 1
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 8]
add eax, esi
mov dword [ebp - 0x14], ebx
mov dword [ebp - 8], eax
mov esi, dword [ebp - 0x5c]
fld qword [0x450690]
fld qword [0x450680]
mov edx, dword [ebp - 0x48]
test esi, esi
jne 0x4247da
mov ecx, dword [ebp - 0xc]
fstp st(1)
fstp st(0)
test cl, cl
jne 0x42548c
add eax, 2
cmp eax, 0x82
jbe 0x4254a6
mov cl, 1
mov eax, dword [ebp + 8]
test eax, eax
je 0x425498
xor edx, edx
mov word [eax], dx
test cl, cl
sete al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
xor eax, eax
test cl, cl
pop edi
mov word [ebx], ax
sete al
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc