Function at 0x42757d
Capabilities:
Contain obfuscated stackstrings
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4de60d
mov eax, dword fs:[0]
push eax
push ecx
sub esp, 0x74c
push ebx
push esi
push edi
mov eax, dword [0x524330]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x628], ecx
and dword [ebp - 0x300], 0
mov dword [ebp - 4], 1
mov byte [ebp - 4], 2
push 0x4f5080
lea ecx, [ebp - 0xd8]
call fcn.00403a33
mov dword [ebp - 0x62c], eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x300]
or eax, 1
mov dword [ebp - 0x300], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x310], eax
lea eax, [ebp + 8]
push eax
push dword [ebp - 0x310]
lea ecx, [ebp - 0xe8]
call fcn.0044f086
lea eax, [ebp - 0xd8]
push eax
lea eax, [ebp - 0xe0]
push eax
lea ecx, [ebp + 8]
call fcn.0044a386
mov dword [ebp - 0x630], eax
mov eax, dword [ebp - 0x630]
mov dword [ebp - 0x340], eax
lea eax, [ebp - 0xe8]
push eax
mov ecx, dword [ebp - 0x340]
call fcn.004965d9
mov byte [ebp - 0x631], al
movzx eax, byte [ebp - 0x631]
neg eax
sbb eax, eax
inc eax
movzx eax, al
test eax, eax
je 0x4276c9
push 0x4f509c
lea ecx, [ebp - 0x104]
call fcn.00403a33
mov dword [ebp - 0x638], eax
mov dword [ebp - 4], 4
mov eax, dword [ebp - 0x300]
or eax, 2
mov dword [ebp - 0x300], eax
lea eax, [ebp - 0x104]
push eax
lea ecx, [ebp + 8]
call fcn.0044a002
mov dword [ebp - 0x63c], eax
mov eax, dword [ebp - 0x63c]
mov ecx, dword [eax]
call fcn.004849b9
mov byte [ebp - 0x63d], al
movzx eax, byte [ebp - 0x63d]
test eax, eax
je 0x4276c9
mov dword [ebp - 0x644], 1
jmp 0x4276d0
and dword [ebp - 0x644], 0
mov al, byte [ebp - 0x644]
mov byte [ebp - 0xb9], al
mov dword [ebp - 4], 3
mov eax, dword [ebp - 0x300]
and eax, 2
je 0x427704
and dword [ebp - 0x300], 0xfffffffd
push 0
push 1
lea ecx, [ebp - 0x104]
call fcn.00404010
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0x300]
and eax, 1
je 0x42772c
and dword [ebp - 0x300], 0xfffffffe
push 0
push 1
lea ecx, [ebp - 0xd8]
call fcn.00404010
movzx eax, byte [ebp - 0xb9]
test eax, eax
je 0x428d67
push 0x4f50b8
lea ecx, [ebp - 0x120]
call fcn.00403a33
mov dword [ebp - 0x648], eax
mov byte [ebp - 4], 5
lea eax, [ebp - 0x120]
push eax
lea ecx, [ebp + 8]
call fcn.0044a002
mov dword [ebp - 0x64c], eax
lea eax, [ebp - 0x28]
push eax
mov eax, dword [ebp - 0x64c]
mov ecx, dword [eax]
call fcn.00484a34
mov dword [ebp - 0x650], eax
mov byte [ebp - 4], 7
push 0
push 1
lea ecx, [ebp - 0x120]
call fcn.00404010
and dword [ebp - 0x2c], 0
jmp 0x4277a1
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x1c]
sar eax, 2
cmp dword [ebp - 0x2c], eax
jae 0x428d5b
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x1c]
sar eax, 2
cmp dword [ebp - 0x2c], eax
jb 0x4277c6
call fcn.004bdbbd
xor eax, eax
jne 0x4277c6
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x2c]
lea eax, [eax + ecx*4]
mov dword [ebp - 0x35c], eax
lea eax, [ebp - 0x50]
push eax
mov eax, dword [ebp - 0x35c]
mov ecx, dword [eax]
call fcn.00484a5f
mov dword [ebp - 0x654], eax
mov byte [ebp - 4], 8
push 0x4f50d4
sub esp, 0x20
mov eax, esp
mov dword [ebp - 0x124], esp
mov dword [ebp - 0x360], eax
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x360]
call fcn.0044a14d
lea eax, [ebp - 0x5c]
push eax
call fcn.0045b95c
add esp, 0x28
mov dword [ebp - 0x658], eax
mov byte [ebp - 4], 9
lea eax, [ebp - 0x5c]
push eax
mov ecx, dword [ebp - 0x628]
call fcn.0040e51b
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x188
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax + 0x4f4]
mov dword [ebp - 0x364], eax
lea eax, [ebp - 0x5c]
push eax
mov ecx, dword [ebp - 0x364]
call fcn.00403d36
push 0x4f50ec
sub esp, 0x20
mov eax, esp
mov dword [ebp - 0x128], esp
mov dword [ebp - 0x368], eax
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x368]
call fcn.0044a14d
lea eax, [ebp - 0x12c]
push eax
call fcn.0045b95c
add esp, 0x28
mov dword [ebp - 0x65c], eax
mov eax, dword [ebp - 0x65c]
mov dword [ebp - 0x370], eax
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x188
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax + 0x4f8]
mov dword [ebp - 0x36c], eax
push dword [ebp - 0x370]
mov ecx, dword [ebp - 0x36c]
call fcn.00403d36
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x12c]
sub eax, 0x10
mov dword [ebp - 0x374], eax
mov ecx, dword [ebp - 0x374]
call fcn.0040110c
push 0x4f50fc
sub esp, 0x20
mov eax, esp
mov dword [ebp - 0x130], esp
mov dword [ebp - 0x378], eax
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x378]
call fcn.0044a14d
lea eax, [ebp - 0x134]
push eax
call fcn.0045b95c
add esp, 0x28
mov dword [ebp - 0x660], eax
mov eax, dword [ebp - 0x660]
mov dword [ebp - 0x380], eax
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x188
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax + 0x4fc]
mov dword [ebp - 0x37c], eax
push dword [ebp - 0x380]
mov ecx, dword [ebp - 0x37c]
call fcn.00403d36
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x134]
sub eax, 0x10
mov dword [ebp - 0x384], eax
mov ecx, dword [ebp - 0x384]
call fcn.0040110c
push 0x4f5108
sub esp, 0x20
mov eax, esp
mov dword [ebp - 0x138], esp
mov dword [ebp - 0x388], eax
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x388]
call fcn.0044a14d
lea eax, [ebp - 0x13c]
push eax
call fcn.0045b95c
add esp, 0x28
mov dword [ebp - 0x664], eax
mov eax, dword [ebp - 0x664]
mov dword [ebp - 0x390], eax
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x188
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax + 0x504]
mov dword [ebp - 0x38c], eax
push dword [ebp - 0x390]
mov ecx, dword [ebp - 0x38c]
call fcn.00403d36
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x13c]
sub eax, 0x10
mov dword [ebp - 0x394], eax
mov ecx, dword [ebp - 0x394]
call fcn.0040110c
push 0x4f5118
sub esp, 0x20
mov eax, esp
mov dword [ebp - 0x140], esp
mov dword [ebp - 0x398], eax
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x398]
call fcn.0044a14d
lea eax, [ebp - 0x144]
push eax
call fcn.0045b95c
add esp, 0x28
mov dword [ebp - 0x668], eax
mov eax, dword [ebp - 0x668]
mov dword [ebp - 0x3a0], eax
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x188
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax + 0x508]
mov dword [ebp - 0x39c], eax
push dword [ebp - 0x3a0]
mov ecx, dword [ebp - 0x39c]
call fcn.00403d36
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x144]
sub eax, 0x10
mov dword [ebp - 0x3a4], eax
mov ecx, dword [ebp - 0x3a4]
call fcn.0040110c
push 0x4f5120
sub esp, 0x20
mov eax, esp
mov dword [ebp - 0x148], esp
mov dword [ebp - 0x3a8], eax
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x3a8]
call fcn.0044a14d
lea eax, [ebp - 0x14c]
push eax
call fcn.0045b95c
add esp, 0x28
mov dword [ebp - 0x66c], eax
mov eax, dword [ebp - 0x66c]
mov dword [ebp - 0x3b0], eax
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x188
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax + 0x50c]
mov dword [ebp - 0x3ac], eax
push dword [ebp - 0x3b0]
mov ecx, dword [ebp - 0x3ac]
call fcn.00403d36
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x14c]
sub eax, 0x10
mov dword [ebp - 0x3b4], eax
mov ecx, dword [ebp - 0x3b4]
call fcn.0040110c
push 0x4f5130
sub esp, 0x20
mov eax, esp
mov dword [ebp - 0x150], esp
mov dword [ebp - 0x3b8], eax
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x3b8]
call fcn.0044a14d
lea eax, [ebp - 0x154]
push eax
call fcn.0045b95c
add esp, 0x28
mov dword [ebp - 0x670], eax
mov eax, dword [ebp - 0x670]
mov dword [ebp - 0x3c0], eax
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x188
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax + 0x660]
mov dword [ebp - 0x3bc], eax
push dword [ebp - 0x3c0]
mov ecx, dword [ebp - 0x3bc]
call fcn.00403d36
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x154]
sub eax, 0x10
mov dword [ebp - 0x3c4], eax
mov ecx, dword [ebp - 0x3c4]
call fcn.0040110c
push 0x4f513c
sub esp, 0x20
mov eax, esp
mov dword [ebp - 0x158], esp
mov dword [ebp - 0x3c8], eax
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x3c8]
call fcn.0044a14d
lea eax, [ebp - 0x15c]
push eax
call fcn.0045b95c
add esp, 0x28
mov dword [ebp - 0x674], eax
mov eax, dword [ebp - 0x674]
mov dword [ebp - 0x3d0], eax
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x188
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax + 0x664]
mov dword [ebp - 0x3cc], eax
push dword [ebp - 0x3d0]
mov ecx, dword [ebp - 0x3cc]
call fcn.00403d36
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x15c]
sub eax, 0x10
mov dword [ebp - 0x3d4], eax
mov ecx, dword [ebp - 0x3d4]
call fcn.0040110c
movzx eax, byte [0x525bc2]
test eax, eax
je 0x427d78
push 0x4f5154
lea ecx, [ebp - 0x17c]
call fcn.00403a33
mov dword [ebp - 0x678], eax
mov byte [ebp - 4], 0x11
mov eax, dword [ebp - 0x300]
or eax, 4
mov dword [ebp - 0x300], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x3e4], eax
lea eax, [ebp + 8]
push eax
push dword [ebp - 0x3e4]
lea ecx, [ebp - 0x18c]
call fcn.0044f086
lea eax, [ebp - 0x17c]
push eax
lea eax, [ebp - 0x184]
push eax
lea ecx, [ebp + 8]
call fcn.0044a386
mov dword [ebp - 0x67c], eax
mov eax, dword [ebp - 0x67c]
mov dword [ebp - 0x414], eax
lea eax, [ebp - 0x18c]
push eax
mov ecx, dword [ebp - 0x414]
call fcn.004965d9
mov byte [ebp - 0x67d], al
movzx eax, byte [ebp - 0x67d]
neg eax
sbb eax, eax
inc eax
movzx eax, al
test eax, eax
je 0x427d78
push 0x4f5164
lea ecx, [ebp - 0x1a8]
call fcn.00403a33
mov dword [ebp - 0x684], eax
mov dword [ebp - 4], 0x12
mov eax, dword [ebp - 0x300]
or eax, 8
mov dword [ebp - 0x300], eax
lea eax, [ebp - 0x1a8]
push eax
lea ecx, [ebp + 8]
call fcn.0044a002
mov dword [ebp - 0x688], eax
mov eax, dword [ebp - 0x688]
mov ecx, dword [eax]
call fcn.0048498d
mov byte [ebp - 0x689], al
movzx eax, byte [ebp - 0x689]
test eax, eax
je 0x427d78
mov dword [ebp - 0x690], 1
jmp 0x427d7f
and dword [ebp - 0x690], 0
mov al, byte [ebp - 0x690]
mov byte [ebp - 0x15d], al
mov dword [ebp - 4], 0x11
mov eax, dword [ebp - 0x300]
and eax, 8
je 0x427db3
and dword [ebp - 0x300], 0xfffffff7
push 0
push 1
lea ecx, [ebp - 0x1a8]
call fcn.00404010
mov dword [ebp - 4], 9
mov eax, dword [ebp - 0x300]
and eax, 4
je 0x427ddb
and dword [ebp - 0x300], 0xfffffffb
push 0
push 1
lea ecx, [ebp - 0x17c]
call fcn.00404010
movzx eax, byte [ebp - 0x15d]
test eax, eax
je 0x427f49
call fcn.00498191
mov dword [ebp - 0x694], eax
push dword [ebp - 0x694]
lea ecx, [ebp - 0x68]
call fcn.00403ced
mov byte [ebp - 4], 0x13
push 0x4f5174
lea ecx, [ebp - 0x1c4]
call fcn.00403a33
mov dword [ebp - 0x698], eax
mov byte [ebp - 4], 0x14
lea eax, [ebp - 0x1c4]
push eax
lea ecx, [ebp + 8]
call fcn.0044a002
mov dword [ebp - 0x69c], eax
lea eax, [ebp - 0x1e0]
push eax
mov eax, dword [ebp - 0x69c]
mov ecx, dword [eax]
call fcn.004849e5
mov dword [ebp - 0x6a0], eax
mov eax, dword [ebp - 0x6a0]
mov dword [ebp - 0x430], eax
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x430]
cmp dword [eax + 0x18], 8
jb 0x427e7d
mov eax, dword [ebp - 0x430]
mov eax, dword [eax + 4]
mov dword [ebp - 0x6a4], eax
jmp 0x427e8c
mov eax, dword [ebp - 0x430]
add eax, 4
mov dword [ebp - 0x6a4], eax
push dword [ebp - 0x6a4]
lea ecx, [ebp - 0x68]
call fcn.00403361
mov byte [ebp - 4], 0x14
push 0
push 1
lea ecx, [ebp - 0x1e0]
call fcn.00404010
mov byte [ebp - 4], 0x13
push 0
push 1
lea ecx, [ebp - 0x1c4]
call fcn.00404010
push 0x4f5184
lea ecx, [ebp - 0x68]
call fcn.0040abe6
mov dword [ebp - 0x6a8], eax
cmp dword [ebp - 0x6a8], 0
jne 0x427f2e
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x188
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax + 0x4f8]
mov dword [ebp - 0x444], eax
push 0x526bd4
mov ecx, dword [ebp - 0x444]
call fcn.00403d36
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x188
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax + 0x4f4]
mov dword [ebp - 0x448], eax
push 0x526bd0
mov ecx, dword [ebp - 0x448]
call fcn.00403d36
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x68]
sub eax, 0x10
mov dword [ebp - 0x44c], eax
mov ecx, dword [ebp - 0x44c]
call fcn.0040110c
cmp dword [ebp - 0x2c], 0
jne 0x427f6b
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x188
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax + 0x660]
push eax
mov ecx, dword [ebp + 0x30]
call fcn.00403d36
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax - 0xc]
mov dword [ebp - 0x450], eax
xor eax, eax
cmp dword [ebp - 0x450], 0
sete al
movzx eax, al
test eax, eax
jne 0x427fca
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x188
mov ecx, dword [ebp + 0x28]
mov eax, dword [ecx + eax + 0x4fc]
mov dword [ebp - 0x454], eax
push dword [ebp - 0x454]
lea ecx, [ebp + 0x2c]
call fcn.0040abe6
mov dword [ebp - 0x6ac], eax
cmp dword [ebp - 0x6ac], 0
je 0x427fca
mov eax, dword [ebp + 0x28]
mov byte [eax + 0x33e2], 1
push 0x4f518c
sub esp, 0x20
mov eax, esp
mov dword [ebp - 0x1e4], esp
mov dword [ebp - 0x460], eax
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x460]
call fcn.0044a14d
lea eax, [ebp - 0x54]
push eax
call fcn.0045b95c
add esp, 0x28
mov dword [ebp - 0x6b0], eax
mov byte [ebp - 4], 0x16
lea eax, [ebp - 0x54]
push eax
call fcn.00460d83
pop ecx
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x188
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax + 0x510]
mov dword [ebp - 0x464], eax
lea eax, [ebp - 0x54]
push eax
mov ecx, dword [ebp - 0x464]
call fcn.00403d36
push 0x4f51b4
sub esp, 0x20
mov eax, esp
mov dword [ebp - 0x1e8], esp
mov dword [ebp - 0x468], eax
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x468]
call fcn.0044a14d
lea eax, [ebp - 0x60]
push eax
call fcn.0045b95c
add esp, 0x28
mov dword [ebp - 0x6b4], eax
mov byte [ebp - 4], 0x17
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x188
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax + 0x514]
mov dword [ebp - 0x46c], eax
lea eax, [ebp - 0x60]
push eax
mov ecx, dword [ebp - 0x46c]
call fcn.00403d36
push 0x4f51d0
sub esp, 0x20
mov eax, esp
mov dword [ebp - 0x1ec], esp
mov dword [ebp - 0x470], eax
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x470]
call fcn.0044a14d
lea eax, [ebp - 0x58]
push eax
call fcn.0045b95c
add esp, 0x28
mov dword [ebp - 0x6b8], eax
mov byte [ebp - 4], 0x18
lea eax, [ebp - 0x58]
push eax
mov ecx, dword [ebp - 0x628]
call fcn.0040e51b
lea eax, [ebp - 0x58]
push eax
call fcn.00460d83
pop ecx
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x188
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax + 0x500]
mov dword [ebp - 0x474], eax
lea eax, [ebp - 0x58]
push eax
mov ecx, dword [ebp - 0x474]
call fcn.00403d36
movzx eax, byte [0x525bc2]
test eax, eax
je 0x42822a
push 0x4f51e4
lea ecx, [ebp - 0x20c]
call fcn.00403a33
mov dword [ebp - 0x6bc], eax
mov byte [ebp - 4], 0x19
mov eax, dword [ebp - 0x300]
or eax, 0x10
mov dword [ebp - 0x300], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x484], eax
lea eax, [ebp + 8]
push eax
push dword [ebp - 0x484]
lea ecx, [ebp - 0x21c]
call fcn.0044f086
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x214]
push eax
lea ecx, [ebp + 8]
call fcn.0044a386
mov dword [ebp - 0x6c0], eax
mov eax, dword [ebp - 0x6c0]
mov dword [ebp - 0x4b4], eax
lea eax, [ebp - 0x21c]
push eax
mov ecx, dword [ebp - 0x4b4]
call fcn.004965d9
mov byte [ebp - 0x6c1], al
movzx eax, byte [ebp - 0x6c1]
neg eax
sbb eax, eax
inc eax
movzx eax, al
test eax, eax
je 0x42822a
push 0x4f51f4
lea ecx, [ebp - 0x238]
call fcn.00403a33
mov dword [ebp - 0x6c8], eax
mov dword [ebp - 4], 0x1a
mov eax, dword [ebp - 0x300]
or eax, 0x20
mov dword [ebp - 0x300], eax
lea eax, [ebp - 0x238]
push eax
lea ecx, [ebp + 8]
call fcn.0044a002
mov dword [ebp - 0x6cc], eax
mov eax, dword [ebp - 0x6cc]
mov ecx, dword [eax]
call fcn.0048498d
mov byte [ebp - 0x6cd], al
movzx eax, byte [ebp - 0x6cd]
test eax, eax
je 0x42822a
mov dword [ebp - 0x6d4], 1
jmp 0x428231
and dword [ebp - 0x6d4], 0
mov al, byte [ebp - 0x6d4]
mov byte [ebp - 0x1ed], al
mov dword [ebp - 4], 0x19
mov eax, dword [ebp - 0x300]
and eax, 0x20
je 0x428265
and dword [ebp - 0x300], 0xffffffdf
push 0
push 1
lea ecx, [ebp - 0x238]
call fcn.00404010
mov dword [ebp - 4], 0x18
mov eax, dword [ebp - 0x300]
and eax, 0x10
je 0x42828d
and dword [ebp - 0x300], 0xffffffef
push 0
push 1
lea ecx, [ebp - 0x20c]
call fcn.00404010
movzx eax, byte [ebp - 0x1ed]
test eax, eax
je 0x42842d
call fcn.00498191
mov dword [ebp - 0x6d8], eax
push dword [ebp - 0x6d8]
lea ecx, [ebp - 0x6c]
call fcn.00403ced
mov byte [ebp - 4], 0x1b
push 0x4f5204
lea ecx, [ebp - 0x254]
call fcn.00403a33
mov dword [ebp - 0x6dc], eax
mov byte [ebp - 4], 0x1c
lea eax, [ebp - 0x254]
push eax
lea ecx, [ebp + 8]
call fcn.0044a002
mov dword [ebp - 0x6e0], eax
lea eax, [ebp - 0x270]
push eax
mov eax, dword [ebp - 0x6e0]
mov ecx, dword [eax]
call fcn.004849e5
mov dword [ebp - 0x6e4], eax
mov eax, dword [ebp - 0x6e4]
mov dword [ebp - 0x4d0], eax
mov byte [ebp - 4], 0x1d
mov eax, dword [ebp - 0x4d0]
cmp dword [eax + 0x18], 8
jb 0x42832f
mov eax, dword [ebp - 0x4d0]
mov eax, dword [eax + 4]
mov dword [ebp - 0x6e8], eax
jmp 0x42833e
mov eax, dword [ebp - 0x4d0]
add eax, 4
mov dword [ebp - 0x6e8], eax
push dword [ebp - 0x6e8]
lea ecx, [ebp - 0x6c]
call fcn.00403361
mov byte [ebp - 4], 0x1c
push 0
push 1
lea ecx, [ebp - 0x270]
call fcn.00404010
mov byte [ebp - 4], 0x1b
push 0
push 1
lea ecx, [ebp - 0x254]
call fcn.00404010
push 0x4f5214
lea ecx, [ebp - 0x6c]
call fcn.0040abe6
mov dword [ebp - 0x6ec], eax
cmp dword [ebp - 0x6ec], 0
jne 0x428412
push 0x4ef59d
lea ecx, [ebp - 0x70]
call fcn.00403241
mov dword [ebp - 0x6f0], eax
mov byte [ebp - 4], 0x1e
push 0x526bcc
lea ecx, [ebp - 0x70]
call fcn.00403d36
lea eax, [ebp - 0x70]
push eax
mov ecx, dword [ebp - 0x628]
call fcn.0040e51b
lea eax, [ebp - 0x70]
push eax
call fcn.00460d83
pop ecx
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x188
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax + 0x500]
mov dword [ebp - 0x4ec], eax
lea eax, [ebp - 0x70]
push eax
mov ecx, dword [ebp - 0x4ec]
call fcn.00403d36
mov byte [ebp - 4], 0x1b
mov eax, dword [ebp - 0x70]
sub eax, 0x10
mov dword [ebp - 0x4f0], eax
mov ecx, dword [ebp - 0x4f0]
call fcn.0040110c
mov byte [ebp - 4], 0x18
mov eax, dword [ebp - 0x6c]
sub eax, 0x10
mov dword [ebp - 0x4f4], eax
mov ecx, dword [ebp - 0x4f4]
call fcn.0040110c
push 0x4f521c
sub esp, 0x20
mov eax, esp
mov dword [ebp - 0x274], esp
mov dword [ebp - 0x4f8], eax
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x4f8]
call fcn.0044a14d
lea eax, [ebp - 0x30]
push eax
call fcn.0045b95c
add esp, 0x28
mov dword [ebp - 0x6f4], eax
mov byte [ebp - 4], 0x1f
lea eax, [ebp - 0x30]
push eax
call fcn.00460d83
pop ecx
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x188
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax + 0x668]
mov dword [ebp - 0x4fc], eax
lea eax, [ebp - 0x30]
push eax
mov ecx, dword [ebp - 0x4fc]
call fcn.00403d36
push 0x4f5238
sub esp, 0x20
mov eax, esp
mov dword [ebp - 0x278], esp
mov dword [ebp - 0x500], eax
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x500]
call fcn.0044a14d
lea eax, [ebp - 0x27c]
push eax
call fcn.0045b95c
add esp, 0x28
mov dword [ebp - 0x6f8], eax
mov eax, dword [ebp - 0x6f8]
mov dword [ebp - 0x504], eax
mov byte [ebp - 4], 0x20
push dword [ebp - 0x504]
lea ecx, [ebp - 0x58]
call fcn.00403d36
mov byte [ebp - 4], 0x1f
mov eax, dword [ebp - 0x27c]
sub eax, 0x10
mov dword [ebp - 0x508], eax
mov ecx, dword [ebp - 0x508]
call fcn.0040110c
lea eax, [ebp - 0x58]
push eax
mov ecx, dword [ebp - 0x628]
call fcn.0040e51b
lea eax, [ebp - 0x58]
push eax
call fcn.00460d83
pop ecx
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x188
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax + 0x66c]
mov dword [ebp - 0x50c], eax
lea eax, [ebp - 0x58]
push eax
mov ecx, dword [ebp - 0x50c]
call fcn.00403d36
push 0x4f525c
lea ecx, [ebp - 0x29c]
call fcn.00403a33
mov dword [ebp - 0x6fc], eax
mov byte [ebp - 4], 0x21
mov eax, dword [ebp - 0x300]
or eax, 0x40
mov dword [ebp - 0x300], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x51c], eax
lea eax, [ebp - 0x50]
push eax
push dword [ebp - 0x51c]
lea ecx, [ebp - 0x2ac]
call fcn.0044f086
lea eax, [ebp - 0x29c]
push eax
lea eax, [ebp - 0x2a4]
push eax
lea ecx, [ebp - 0x50]
call fcn.0044a386
mov dword [ebp - 0x700], eax
mov eax, dword [ebp - 0x700]
mov dword [ebp - 0x54c], eax
lea eax, [ebp - 0x2ac]
push eax
mov ecx, dword [ebp - 0x54c]
call fcn.004965d9
mov byte [ebp - 0x701], al
movzx eax, byte [ebp - 0x701]
neg eax
sbb eax, eax
inc eax
movzx eax, al
test eax, eax
je 0x428658
push 0x4f5288
lea ecx, [ebp - 0x2c8]
call fcn.00403a33
mov dword [ebp - 0x708], eax
mov dword [ebp - 4], 0x22
mov eax, dword [ebp - 0x300]
or eax, 0x80
mov dword [ebp - 0x300], eax
lea eax, [ebp - 0x2c8]
push eax
lea ecx, [ebp - 0x50]
call fcn.0044a002
mov dword [ebp - 0x70c], eax
mov eax, dword [ebp - 0x70c]
mov ecx, dword [eax]
call fcn.004849b9
mov byte [ebp - 0x70d], al
movzx eax, byte [ebp - 0x70d]
test eax, eax
je 0x428658
mov dword [ebp - 0x714], 1
jmp 0x42865f
and dword [ebp - 0x714], 0
mov al, byte [ebp - 0x714]
mov byte [ebp - 0x27d], al
mov dword [ebp - 4], 0x21
mov eax, dword [ebp - 0x300]
and eax, 0x80
je 0x428698
and dword [ebp - 0x300], 0xffffff7f
push 0
push 1
lea ecx, [ebp - 0x2c8]
call fcn.00404010
mov dword [ebp - 4], 0x1f
mov eax, dword [ebp - 0x300]
and eax, 0x40
je 0x4286c0
and dword [ebp - 0x300], 0xffffffbf
push 0
push 1
lea ecx, [ebp - 0x29c]
call fcn.00404010
movzx eax, byte [ebp - 0x27d]
test eax, eax
je 0x428b22
push 0x4f52b4
lea ecx, [ebp - 0x2e4]
call fcn.00403a33
mov dword [ebp - 0x718], eax
mov byte [ebp - 4], 0x23
lea eax, [ebp - 0x2e4]
push eax
lea ecx, [ebp - 0x50]
call fcn.0044a002
mov dword [ebp - 0x71c], eax
lea eax, [ebp - 0x88]
push eax
mov eax, dword [ebp - 0x71c]
mov ecx, dword [eax]
call fcn.00484a34
mov dword [ebp - 0x720], eax
mov byte [ebp - 4], 0x25
push 0
push 1
lea ecx, [ebp - 0x2e4]
call fcn.00404010
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x188
mov ecx, dword [ebp - 0x78]
sub ecx, dword [ebp - 0x7c]
sar ecx, 2
mov edx, dword [ebp + 0x28]
mov dword [edx + eax + 0x658], ecx
and dword [ebp - 0x8c], 0
jmp 0x42875d
mov eax, dword [ebp - 0x8c]
inc eax
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x78]
sub eax, dword [ebp - 0x7c]
sar eax, 2
cmp dword [ebp - 0x8c], eax
jae 0x428b04
mov eax, dword [ebp - 0x78]
sub eax, dword [ebp - 0x7c]
sar eax, 2
cmp dword [ebp - 0x8c], eax
jb 0x428788
call fcn.004bdbbd
xor eax, eax
jne 0x428788
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x8c]
lea eax, [eax + ecx*4]
mov dword [ebp - 0x568], eax
lea eax, [ebp - 0xb4]
push eax
mov eax, dword [ebp - 0x568]
mov ecx, dword [eax]
call fcn.00484a5f
mov dword [ebp - 0x724], eax
mov byte [ebp - 4], 0x26
push 0x4f52e0
sub esp, 0x20
mov eax, esp
mov dword [ebp - 0x2e8], esp
mov dword [ebp - 0x56c], eax
lea eax, [ebp - 0xb4]
push eax
mov ecx, dword [ebp - 0x56c]
call fcn.0044a14d
lea eax, [ebp - 0x90]
push eax
call fcn.0045b95c
add esp, 0x28
mov dword [ebp - 0x728], eax
mov byte [ebp - 4], 0x27
lea eax, [ebp - 0x90]
push eax
call fcn.00460d83
pop ecx
push 0x4f52e8
sub esp, 0x20
mov eax, esp
mov dword [ebp - 0x2ec], esp
mov dword [ebp - 0x570], eax
lea eax, [ebp - 0xb4]
push eax
mov ecx, dword [ebp - 0x570]
call fcn.0044a14d
lea eax, [ebp - 0x94]
push eax
call fcn.0045b95c
add esp, 0x28
mov dword [ebp - 0x72c], eax
mov byte [ebp - 4], 0x28
push 0x4f52f4
sub esp, 0x20
mov eax, esp
mov dword [ebp - 0x2f0], esp
mov dword [ebp - 0x574], eax
lea eax, [ebp - 0xb4]
push eax
mov ecx, dword [ebp - 0x574]
call fcn.0044a14d
lea eax, [ebp - 0xb8]
push eax
call fcn.0045b95c
add esp, 0x28
mov dword [ebp - 0x730], eax
mov byte [ebp - 4], 0x29
push 0
push 0x4f5300
lea ecx, [ebp - 0x90]
call fcn.0040355e
cmp eax, 0xffffffff
jle 0x4288ba
push 0
push 0x4f5304
lea ecx, [ebp - 0x90]
call fcn.0040355e
cmp eax, 0xffffffff
jg 0x428916
push 0
push 0x4f5308
lea ecx, [ebp - 0x94]
call fcn.0040355e
cmp eax, 0xffffffff
jle 0x4288e8
push 0
push 0x4f530c
lea ecx, [ebp - 0x94]
call fcn.0040355e
cmp eax, 0xffffffff
jg 0x428916
push 0
push 0x4f5310
lea ecx, [ebp - 0xb8]
call fcn.0040355e
cmp eax, 0xffffffff
jle 0x42894c
push 0
push 0x4f5314
lea ecx, [ebp - 0xb8]
call fcn.0040355e
cmp eax, 0xffffffff
jle 0x42894c
lea eax, [ebp - 0x90]
push eax
mov ecx, dword [ebp - 0x628]
call fcn.0040e51b
lea eax, [ebp - 0x94]
push eax
mov ecx, dword [ebp - 0x628]
call fcn.0040e51b
lea eax, [ebp - 0xb8]
push eax
mov ecx, dword [ebp - 0x628]
call fcn.0040e51b
push 0x4f5318
sub esp, 0x20
mov eax, esp
mov dword [ebp - 0x2f4], esp
mov dword [ebp - 0x5c0], eax
lea eax, [ebp - 0xb4]
push eax
mov ecx, dword [ebp - 0x5c0]
call fcn.0044a14d
lea eax, [ebp - 0x2f8]
push eax
call fcn.0045b95c
add esp, 0x28
mov dword [ebp - 0x734], eax
mov eax, dword [ebp - 0x734]
mov dword [ebp - 0x5c8], eax
mov byte [ebp - 4], 0x2a
mov eax, dword [ebp - 0x8c]
shl eax, 4
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x188
mov edx, dword [ebp + 0x28]
lea ecx, [edx + ecx + 0x4f4]
lea eax, [ecx + eax + 0x24]
mov dword [ebp - 0x5c4], eax
push dword [ebp - 0x5c8]
mov ecx, dword [ebp - 0x5c4]
call fcn.00403d36
mov byte [ebp - 4], 0x29
mov eax, dword [ebp - 0x2f8]
sub eax, 0x10
mov dword [ebp - 0x5cc], eax
mov ecx, dword [ebp - 0x5cc]
call fcn.0040110c
mov eax, dword [ebp - 0x8c]
shl eax, 4
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x188
mov edx, dword [ebp + 0x28]
lea ecx, [edx + ecx + 0x4f4]
lea eax, [ecx + eax + 0x28]
mov dword [ebp - 0x5d0], eax
lea eax, [ebp - 0x90]
push eax
mov ecx, dword [ebp - 0x5d0]
call fcn.00403d36
mov eax, dword [ebp - 0x8c]
shl eax, 4
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x188
mov edx, dword [ebp + 0x28]
lea ecx, [edx + ecx + 0x4f4]
lea eax, [ecx + eax + 0x2c]
mov dword [ebp - 0x5d4], eax
lea eax, [ebp - 0x94]
push eax
mov ecx, dword [ebp - 0x5d4]
call fcn.00403d36
mov eax, dword [ebp - 0x8c]
shl eax, 4
mov ecx, dword [ebp - 0x2c]
imul ecx, ecx, 0x188
mov edx, dword [ebp + 0x28]
lea ecx, [edx + ecx + 0x4f4]
lea eax, [ecx + eax + 0x30]
mov dword [ebp - 0x5d8], eax
lea eax, [ebp - 0xb8]
push eax
mov ecx, dword [ebp - 0x5d8]
call fcn.00403d36
mov byte [ebp - 4], 0x28
mov eax, dword [ebp - 0xb8]
sub eax, 0x10
mov dword [ebp - 0x5dc], eax
mov ecx, dword [ebp - 0x5dc]
call fcn.0040110c
mov byte [ebp - 4], 0x27
mov eax, dword [ebp - 0x94]
sub eax, 0x10
mov dword [ebp - 0x5e0], eax
mov ecx, dword [ebp - 0x5e0]
call fcn.0040110c
mov byte [ebp - 4], 0x26
mov eax, dword [ebp - 0x90]
sub eax, 0x10
mov dword [ebp - 0x5e4], eax
mov ecx, dword [ebp - 0x5e4]
call fcn.0040110c
mov byte [ebp - 4], 0x25
lea ecx, [ebp - 0xb4]
call fcn.0044a1e9
jmp 0x428750
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0x88]
call fcn.0048a870
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x88]
call fcn.00497af8
push 0x4f5324
sub esp, 0x20
mov eax, esp
mov dword [ebp - 0x2fc], esp
mov dword [ebp - 0x5e8], eax
lea eax, [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x5e8]
call fcn.0044a14d
lea eax, [ebp - 0x64]
push eax
call fcn.0045b95c
add esp, 0x28
mov dword [ebp - 0x738], eax
mov byte [ebp - 4], 0x2c
push 0x4f5334
lea ecx, [ebp - 0x64]
call fcn.0040abe6
mov dword [ebp - 0x73c], eax
cmp dword [ebp - 0x73c], 0
jne 0x428c15
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x188
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax + 0x65c]
mov dword [ebp - 0x5f8], eax
mov eax, 0x4f533c
test eax, eax
jne 0x428ba8
and dword [ebp - 0x5f4], 0
jmp 0x428bfa
mov dword [ebp - 0x740], 0x4f533c
mov eax, dword [ebp - 0x740]
inc eax
mov dword [ebp - 0x744], eax
mov eax, dword [ebp - 0x740]
mov al, byte [eax]
mov byte [ebp - 0x745], al
inc dword [ebp - 0x740]
cmp byte [ebp - 0x745], 0
jne 0x428bbf
mov eax, dword [ebp - 0x740]
sub eax, dword [ebp - 0x744]
mov dword [ebp - 0x74c], eax
mov eax, dword [ebp - 0x74c]
mov dword [ebp - 0x5f4], eax
push dword [ebp - 0x5f4]
push 0x4f533c
mov ecx, dword [ebp - 0x5f8]
call fcn.0040417d
jmp 0x428ca8
mov eax, dword [ebp - 0x2c]
imul eax, eax, 0x188
mov ecx, dword [ebp + 0x28]
lea eax, [ecx + eax + 0x65c]
mov dword [ebp - 0x600], eax
mov eax, 0x4f5344
test eax, eax
jne 0x428c40
and dword [ebp - 0x5fc], 0
jmp 0x428c92
mov dword [ebp - 0x750], 0x4f5344
mov eax, dword [ebp - 0x750]
inc eax
mov dword [ebp - 0x754], eax
mov eax, dword [ebp - 0x750]
mov al, byte [eax]
mov byte [ebp - 0x755], al
inc dword [ebp - 0x750]
cmp byte [ebp - 0x755], 0
jne 0x428c57
mov eax, dword [ebp - 0x750]
sub eax, dword [ebp - 0x754]
mov dword [ebp - 0x75c], eax
mov eax, dword [ebp - 0x75c]
mov dword [ebp - 0x5fc], eax
push dword [ebp - 0x5fc]
push 0x4f5344
mov ecx, dword [ebp - 0x600]
call fcn.0040417d
mov byte [ebp - 4], 0x1f
mov eax, dword [ebp - 0x64]
sub eax, 0x10
mov dword [ebp - 0x604], eax
mov ecx, dword [ebp - 0x604]
call fcn.0040110c
mov byte [ebp - 4], 0x18
mov eax, dword [ebp - 0x30]
sub eax, 0x10
mov dword [ebp - 0x608], eax
mov ecx, dword [ebp - 0x608]
call fcn.0040110c
mov byte [ebp - 4], 0x17
mov eax, dword [ebp - 0x58]
sub eax, 0x10
mov dword [ebp - 0x60c], eax
mov ecx, dword [ebp - 0x60c]
call fcn.0040110c
mov byte [ebp - 4], 0x16
mov eax, dword [ebp - 0x60]
sub eax, 0x10
mov dword [ebp - 0x610], eax
mov ecx, dword [ebp - 0x610]
call fcn.0040110c
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x54]
sub eax, 0x10
mov dword [ebp - 0x614], eax
mov ecx, dword [ebp - 0x614]
call fcn.0040110c
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x5c]
sub eax, 0x10
mov dword [ebp - 0x618], eax
mov ecx, dword [ebp - 0x618]
call fcn.0040110c
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x50]
call fcn.0044a1e9
jmp 0x42779a
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x28]
call fcn.00449f42
jmp 0x428d76
mov dword [ebp - 4], 1
mov byte [ebp - 4], 0
mov byte [ebp - 4], 0x2e
lea ecx, [ebp + 8]
call fcn.0044cee4
mov byte [ebp - 4], 0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x620], eax
push dword [ebp - 0x620]
call fcn.00498149
pop ecx
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0x2c]
sub eax, 0x10
mov dword [ebp - 0x624], eax
mov ecx, dword [ebp - 0x624]
call fcn.0040110c
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
leave
ret 0x2c