Function at 0x5c208c
Capabilities:
Get geographical location
Reference http user-agent string

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x16
push 0
push 0
dec ecx
jne 0x5c2094
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x5c3822
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, 0x5c383c
call fcn.005bed70
lea eax, [ebp - 8]
mov ecx, 0x5c3870
mov edx, dword [0x631b80]
call fcn.004077c4
mov eax, dword [ebp - 8]
call fcn.004148bc
test al, al
jne 0x5c2141
mov dl, 2
mov eax, 0x5c3894
call fcn.005bed70
mov eax, dword [ebp - 8]
call fcn.005c0b04
test al, al
jne 0x5c2141
lea eax, [ebp - 0xc]
mov edx, 0x5c3908
call fcn.00407344
lea eax, [ebp - 0x24]
mov ecx, dword [ebp - 0xc]
mov edx, 0x5c3970
call fcn.004077c4
mov eax, dword [ebp - 0x24]
mov dl, 1
call fcn.005bed70
push pe_nt_image_headers32
mov eax, dword [ebp - 0xc]
call fcn.0040737c
mov edx, eax
mov ecx, 0x5c3980
mov eax, dword [0x62b3c4]
mov eax, dword [eax]
call fcn.004e808c
mov eax, 1
call fcn.00406488
xor eax, eax
push ebp
push 0x5c216b
push dword fs:[eax]
mov dword fs:[eax], esp
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [0x44bb30]
call fcn.0044bee4
mov dword [ebp - 0x10], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5c21c3
push 0
mov ecx, 0x5c39e8
mov edx, 0x5c3a08
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov byte [0x62a8d0], al
cmp byte [0x62a8d0], 2
jbe 0x5c21ec
mov byte [0x62a8d0], 0
mov eax, dword [0x631bb8]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
call dword [edx]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x394]
mov eax, dword [eax + 0x2a4]
push eax
mov eax, 0x631bbc
mov ecx, 1
mov edx, dword [0x5beadc]
call fcn.00408c8c
add esp, 4
mov eax, dword [0x631bbc]
call fcn.00408ac4
dec eax
test eax, eax
jl 0x5c227a
inc eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x14]
lea eax, [eax + eax*2]
mov edx, dword [0x631bbc]
xor ecx, ecx
mov dword [edx + eax*4], ecx
mov eax, dword [ebp - 0x14]
lea eax, [eax + eax*2]
mov edx, dword [0x631bbc]
xor ecx, ecx
mov dword [edx + eax*4 + 4], ecx
mov eax, dword [ebp - 0x14]
lea eax, [eax + eax*2]
mov edx, dword [0x631bbc]
xor ecx, ecx
mov dword [edx + eax*4 + 8], ecx
inc dword [ebp - 0x14]
dec dword [ebp - 0x18]
jne 0x5c223d
push 0x12c
mov ecx, 0x5c3a28
mov edx, 0x5c3a08
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov word [0x631bc0], ax
movzx edx, word [0x631bc0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x394]
call fcn.004fcbb8
mov eax, dword [0x631bb8]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov edx, dword [eax]
call dword [edx + 4]
push 1
mov ecx, 0x5c3a44
mov edx, 0x5c3a08
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov byte [0x631bc2], al
cmp byte [0x631bc2], 1
jae 0x5c22e5
mov byte [0x631bc2], 1
cmp byte [0x631bc2], 3
jbe 0x5c22f5
mov byte [0x631bc2], 3
push 0x7d0
mov ecx, 0x5c3a64
mov edx, 0x5c3a08
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3a4]
call fcn.004fcbb8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3a4]
call fcn.004fcb30
mov dword [0x631be8], eax
push 5
mov ecx, 0x5c3a9c
mov edx, 0x5c3a08
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov dword [0x631bec], eax
mov eax, dword [0x631bec]
cmp eax, dword [0x62a8e8]
jge 0x5c235f
mov eax, dword [0x62a8e8]
mov dword [0x631bec], eax
mov eax, dword [0x631bec]
cmp eax, dword [0x62a8ec]
jle 0x5c2376
mov eax, dword [0x62a8ec]
mov dword [0x631bec], eax
push 0
mov ecx, 0x5c3ad8
mov edx, 0x5c3a08
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov byte [0x62a8f0], al
push 0x5c3b14
lea eax, [ebp - 0x2c]
push eax
mov ecx, 0x5c3b38
mov edx, 0x5c3a08
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x2c]
mov eax, 0x631b98
call fcn.004072f0
cmp dword [0x631b98], 0
jne 0x5c23cf
mov eax, 0x631b98
mov edx, 0x5c3b14
call fcn.004072f0
push 0x5c3b54
lea eax, [ebp - 0x30]
push eax
mov ecx, 0x5c3b74
mov edx, 0x5c3a08
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x30]
mov eax, 0x631b9c
call fcn.004072f0
cmp dword [0x631b9c], 0
jne 0x5c240f
mov eax, 0x631b9c
mov edx, 0x5c3b54
call fcn.004072f0
push 0
mov ecx, 0x5c3b8c
mov edx, 0x5c3a08
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov byte [0x62a904], al
cmp byte [0x62a904], 5
jbe 0x5c2438
mov byte [0x62a904], 0
push 0
mov ecx, 0x5c3bb0
mov edx, 0x5c3a08
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
test eax, eax
setg byte [0x62a908]
push 0
mov ecx, 0x5c3bd4
mov edx, 0x5c3a08
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
test eax, eax
setg byte [0x62a8d4]
push 1
mov ecx, 0x5c3c00
mov edx, 0x5c3a08
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
dec eax
je 0x5c2494
dec eax
je 0x5c249f
dec eax
je 0x5c24aa
dec eax
je 0x5c24b5
jmp 0x5c24c0
mov word [0x62a8d8], 0x1e
jmp 0x5c24c9
mov word [0x62a8d8], 0x3c
jmp 0x5c24c9
mov word [0x62a8d8], 0x78
jmp 0x5c24c9
mov word [0x62a8d8], 0x12c
jmp 0x5c24c9
mov word [0x62a8d8], 0xa
push 0x5c3c34
lea eax, [ebp - 0x34]
push eax
mov ecx, 0x5c3c4c
mov edx, 0x5c3a08
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x34]
mov eax, 0x631bd0
call fcn.004072f0
mov eax, dword [0x631bd0]
mov edx, 0x5c3c34
call fcn.00407a68
je 0x5c2522
mov eax, dword [0x631bd0]
mov edx, 0x5c3c78
call fcn.00407a68
je 0x5c2522
mov eax, 0x631bd0
mov edx, 0x5c3c34
call fcn.004072f0
push 0x5c3c8c
lea eax, [ebp - 0x38]
push eax
mov ecx, 0x5c3cb8
mov edx, 0x5c3a08
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x38]
mov eax, 0x631bd4
call fcn.004072f0
push 0x3e8
mov ecx, 0x5c3ce8
mov edx, 0x5c3a08
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov word [0x631bd8], ax
cmp word [0x631bd8], 0x3e8
jae 0x5c257b
mov word [0x631bd8], 0x3e8
cmp word [0x631bd8], 0x1f40
jbe 0x5c258f
mov word [0x631bd8], 0x1f40
push 0x5c3d18
lea eax, [ebp - 0x3c]
push eax
mov ecx, 0x5c3d44
mov edx, 0x5c3a08
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x3c]
mov eax, 0x631be0
call fcn.004072f0
cmp dword [0x631be0], 0
jne 0x5c25cf
mov eax, 0x631be0
mov edx, 0x5c3d18
call fcn.004072f0
push 0
mov ecx, 0x5c3d78
mov edx, 0x5c3d98
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov byte [0x62a910], al
push 0
mov ecx, 0x5c3db4
mov edx, 0x5c3d98
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov dword [0x62a918], eax
cmp dword [0x62a918], 0
jl 0x5c2613
cmp dword [0x62a918], 1
jle 0x5c261a
xor eax, eax
mov dword [0x62a918], eax
cmp dword [0x62a918], 0
sete dl
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48c]
mov ecx, dword [eax]
call dword [ecx + 0xf0]
cmp dword [0x62a918], 1
sete dl
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x490]
mov ecx, dword [eax]
call dword [ecx + 0xf0]
push 0
lea eax, [ebp - 0x40]
push eax
mov ecx, 0x5c3dd0
mov edx, 0x5c3d98
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x40]
mov eax, 0x62a914
call fcn.004072f0
push 0
mov ecx, 0x5c3de8
mov edx, 0x5c3d98
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov dword [0x62a91c], eax
cmp dword [0x62a91c], 0
jge 0x5c269e
xor eax, eax
mov dword [0x62a91c], eax
imul edx, dword [0x62a91c], 0x3e8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x454]
call fcn.0048767c
push 0x5c3e08
lea eax, [ebp - 0x44]
push eax
mov ecx, 0x5c3e1c
mov edx, 0x5c3d98
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x44]
mov eax, 0x62a930
call fcn.004072f0
mov eax, dword [0x62a930]
mov edx, 0x5c3e38
call fcn.00407a68
je 0x5c2742
mov eax, dword [0x62a930]
mov edx, 0x5c3e4c
call fcn.00407a68
je 0x5c2742
mov eax, dword [0x62a930]
mov edx, 0x5c3e08
call fcn.00407a68
je 0x5c2742
mov eax, dword [0x62a930]
mov edx, 0x5c3e60
call fcn.00407a68
je 0x5c2742
mov eax, dword [0x62a930]
mov edx, 0x5c3e74
call fcn.00407a68
je 0x5c2742
mov eax, 0x62a930
mov edx, 0x5c3e08
call fcn.004072f0
push 2
mov ecx, 0x5c3e8c
mov edx, 0x5c3d98
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov byte [0x631c20], al
cmp byte [0x631c20], 2
jbe 0x5c276b
mov byte [0x631c20], 2
push 0x5c3eb0
lea eax, [ebp - 0x48]
push eax
mov ecx, 0x5c3f04
mov edx, 0x5c3d98
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x48]
mov eax, 0x631bfc
call fcn.004072f0
push 0
lea eax, [ebp - 0x4c]
push eax
mov ecx, 0x5c3f2c
mov edx, 0x5c3d98
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x4c]
mov eax, 0x631c00
call fcn.004072f0
push 0
lea eax, [ebp - 0x50]
push eax
mov ecx, 0x5c3f58
mov edx, 0x5c3d98
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x50]
mov eax, 0x631c04
call fcn.004072f0
push 0x5c3f84
lea eax, [ebp - 0x54]
push eax
mov ecx, 0x5c3fa8
mov edx, 0x5c3d98
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x54]
mov eax, 0x631c18
call fcn.004072f0
push 0x5c3f84
lea eax, [ebp - 0x58]
push eax
mov ecx, 0x5c3fe0
mov edx, 0x5c3d98
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x58]
mov eax, 0x631c1c
call fcn.004072f0
push 0
mov ecx, 0x5c4014
mov edx, 0x5c4038
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov byte [0x62a8b0], al
xor eax, eax
mov al, byte [0x62a8b0]
push eax
push 0xa
call sub.librouter.dll_SetParamW
push 0x5c4050
lea eax, [ebp - 0x5c]
push eax
mov ecx, 0x5c4070
mov edx, 0x5c4038
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x5c]
mov eax, 0x62a8b4
call fcn.004072f0
cmp dword [0x62a8b4], 0
jne 0x5c2895
mov eax, 0x62a8b4
mov edx, 0x5c4050
call fcn.004072f0
mov eax, dword [0x62a8b4]
call fcn.0040737c
push eax
push 0xb
call sub.librouter.dll_SetParamW
push 0x22b8
mov ecx, 0x5c4090
mov edx, 0x5c4038
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov word [0x62a8b8], ax
movzx eax, word [0x62a8b8]
push eax
push 0xc
call sub.librouter.dll_SetParamW
push 0x5c40b4
lea eax, [ebp - 0x60]
push eax
mov ecx, 0x5c4148
mov edx, 0x5c4038
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x60]
mov eax, 0x62a8ac
call fcn.004072f0
mov eax, dword [0x62a8ac]
call fcn.0040737c
push eax
push 4
call sub.librouter.dll_SetParamW
mov eax, dword [0x631b8c]
call fcn.00408ac4
dec eax
test eax, eax
jl 0x5c29b3
inc eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0
cmp dword [ebp - 0x14], 0
je 0x5c293b
cmp dword [ebp - 0x14], 2
je 0x5c293b
xor eax, eax
jmp 0x5c293d
mov al, 1
push eax
mov eax, dword [ebp - 0x14]
lea eax, [eax + eax*2]
mov edx, dword [0x631b8c]
mov ecx, dword [edx + eax*4 + 4]
mov edx, 0x5c4168
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov edx, dword [ebp - 0x14]
lea edx, [edx + edx*2]
mov ecx, dword [0x631b8c]
mov byte [ecx + edx*4], al
mov eax, dword [ebp - 0x14]
lea eax, [eax + eax*2]
mov edx, dword [0x631b8c]
mov cl, byte [edx + eax*4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4a8]
mov edx, dword [ebp - 0x14]
call fcn.0050e058
mov eax, dword [ebp - 0x14]
lea eax, [eax + eax*2]
mov edx, dword [0x631b8c]
cmp byte [edx + eax*4], 1
cmc
sbb eax, eax
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.librouter.dll_SwitchModule
inc dword [ebp - 0x14]
dec dword [ebp - 0x18]
jne 0x5c292b
push 0
mov ecx, 0x5c4184
mov edx, 0x5c41c8
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
neg al
sbb eax, eax
push eax
push 5
call fcn.0050e938
push 0x5c41ec
lea eax, [ebp - 0xc]
push eax
mov ecx, 0x5c4208
mov edx, 0x5c41c8
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
cmp dword [ebp - 0xc], 0
jne 0x5c2a03
lea eax, [ebp - 0xc]
mov edx, 0x5c4248
call fcn.00407344
jmp 0x5c2a25
mov edx, dword [ebp - 0xc]
mov eax, 0x5c4248
call fcn.00407e40
dec eax
je 0x5c2a25
lea edx, [ebp - 0xc]
mov ecx, 1
mov eax, 0x5c4248
call fcn.00407c14
mov eax, dword [ebp - 0xc]
call fcn.0040737c
push eax
push 6
call sub.librouter.dll_SetParamW
push 1
mov ecx, 0x5c4258
mov edx, 0x5c41c8
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
neg al
sbb eax, eax
push eax
push 7
call fcn.0050e938
push 0x5c4290
lea eax, [ebp - 0x64]
push eax
mov ecx, 0x5c42bc
mov edx, 0x5c41c8
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x64]
mov eax, 0x631ba0
call fcn.004072f0
cmp dword [0x631ba0], 0
jne 0x5c2a95
mov eax, 0x631ba0
mov edx, 0x5c4290
call fcn.004072f0
push 0x5c42f0
lea eax, [ebp - 0x68]
push eax
mov ecx, 0x5c431c
mov edx, 0x5c41c8
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x68]
mov eax, 0x631ba4
call fcn.004072f0
cmp dword [0x631ba4], 0
jne 0x5c2ad5
mov eax, 0x631ba4
mov edx, 0x5c42f0
call fcn.004072f0
push 0x5c4354
lea eax, [ebp - 0x6c]
push eax
mov ecx, 0x5c437c
mov edx, 0x5c41c8
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x6c]
mov eax, 0x631ba8
call fcn.004072f0
cmp dword [0x631ba8], 0
jne 0x5c2b15
mov eax, 0x631ba8
mov edx, 0x5c4354
call fcn.004072f0
push 0
mov ecx, 0x5c43b0
mov edx, 0x5c41c8
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x404]
mov ecx, dword [eax]
call dword [ecx + 0xf0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x404]
mov edx, dword [eax]
call dword [edx + 0xec]
neg al
sbb eax, eax
push eax
push 0xd
call fcn.0050e938
push 0x5c43e4
lea eax, [ebp - 0x70]
push eax
mov ecx, 0x5c43fc
mov edx, 0x5c41c8
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x408]
call fcn.004b7348
lea edx, [ebp - 0x74]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x408]
call fcn.004b7310
mov eax, dword [ebp - 0x74]
call fcn.0040737c
push eax
push 0xe
call sub.librouter.dll_SetParamW
push 0x5c4434
lea eax, [ebp - 0x78]
push eax
mov ecx, 0x5c4450
mov edx, 0x5c41c8
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40c]
call fcn.004b7348
lea edx, [ebp - 0x7c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40c]
call fcn.004b7310
mov eax, dword [ebp - 0x7c]
call fcn.0040737c
push eax
push 0xf
call sub.librouter.dll_SetParamW
push 0x5c4488
lea eax, [ebp - 0x80]
push eax
mov ecx, 0x5c44ac
mov edx, 0x5c41c8
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x80]
mov eax, 0x631bac
call fcn.004072f0
cmp dword [0x631bac], 0
jne 0x5c2c33
mov eax, 0x631bac
mov edx, 0x5c4488
call fcn.004072f0
push 0
mov ecx, 0x5c44dc
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov byte [0x631c59], al
push 0x32
mov ecx, 0x5c4534
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov dword [0x631c84], eax
cmp dword [0x631c84], 0
jge 0x5c2c75
xor eax, eax
mov dword [0x631c84], eax
push 0
mov ecx, 0x5c4560
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov dword [0x631c88], eax
cmp dword [0x631c88], 0x3e8
jge 0x5c2ca1
xor eax, eax
mov dword [0x631c88], eax
push 0
mov ecx, 0x5c4598
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov byte [0x631ca0], al
cmp byte [0x631ca0], 3
jbe 0x5c2cca
mov byte [0x631ca0], 0
push 1
mov ecx, 0x5c45c8
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov byte [0x631c51], al
push 0
mov ecx, 0x5c45fc
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov byte [0x631c52], al
push 0
mov ecx, 0x5c462c
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov byte [0x631c53], al
push 0
mov ecx, 0x5c4660
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov byte [0x631c54], al
push 1
mov ecx, 0x5c4698
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov byte [0x631c55], al
push 1
mov ecx, 0x5c46cc
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov byte [0x631c56], al
push 1
mov ecx, 0x5c4708
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov byte [0x631c57], al
push 0
mov ecx, 0x5c4740
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov byte [0x631c58], al
push 0x1388
mov ecx, 0x5c4778
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov dword [0x631c8c], eax
cmp dword [0x631c8c], 0x3e8
jge 0x5c2dc4
mov dword [0x631c8c], 0x3e8
push 0x3e8
mov ecx, 0x5c47b4
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov dword [0x631c90], eax
cmp dword [0x631c90], 0x3e8
jge 0x5c2df6
mov dword [0x631c90], 0x3e8
push 3
mov ecx, 0x5c47ec
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov byte [0x631ca1], al
cmp byte [0x631ca1], 1
jae 0x5c2e1f
mov byte [0x631ca1], 1
push 6
mov ecx, 0x5c4820
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov byte [0x631ca2], al
cmp byte [0x631ca2], 3
jae 0x5c2e48
mov byte [0x631ca2], 3
cmp byte [0x631ca2], 0x14
jbe 0x5c2e58
mov byte [0x631ca2], 0x14
push 0x3e8
mov ecx, 0x5c4858
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov dword [0x631c94], eax
cmp dword [0x631c94], 0
jge 0x5c2e84
xor eax, eax
mov dword [0x631c94], eax
push 0xea60
mov ecx, 0x5c4890
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov dword [0x631c98], eax
cmp dword [0x631c98], 0
jge 0x5c2eb0
xor eax, eax
mov dword [0x631c98], eax
push 0
mov ecx, 0x5c48c4
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov dword [0x631c9c], eax
cmp dword [0x631c9c], 0
jge 0x5c2edc
mov dword [0x631c9c], 0xffffffff
cmp dword [0x631c9c], 0x5f5e0ff
jle 0x5c2ef2
mov dword [0x631c9c], 0x5f5e0ff
push 0x5c48f8
lea eax, [ebp - 0x84]
push eax
mov ecx, 0x5c4944
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x84]
mov eax, 0x631c5c
call fcn.004072f0
push 0x5c4988
lea eax, [ebp - 0x88]
push eax
mov ecx, 0x5c49d0
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x88]
mov eax, 0x631c60
call fcn.004072f0
push 0x5c4a14
lea eax, [ebp - 0x8c]
push eax
mov ecx, 0x5c4a3c
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x8c]
mov eax, 0x631c64
call fcn.004072f0
push 0x5c3f84
lea eax, [ebp - 0x90]
push eax
mov ecx, 0x5c4a78
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x90]
mov eax, 0x631c68
call fcn.004072f0
push 0x5c4aac
lea eax, [ebp - 0x94]
push eax
mov ecx, 0x5c4ac4
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x94]
mov eax, 0x631c6c
call fcn.004072f0
push 0x5c4af8
lea eax, [ebp - 0x98]
push eax
mov ecx, 0x5c4b18
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x98]
mov eax, 0x631c70
call fcn.004072f0
push 0x5c4b48
lea eax, [ebp - 0x9c]
push eax
mov ecx, 0x5c4b78
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0x9c]
mov eax, 0x631c74
call fcn.004072f0
push 0x5c4bb0
lea eax, [ebp - 0xa0]
push eax
mov ecx, 0x5c4bd8
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0xa0]
mov eax, 0x631c78
call fcn.004072f0
push 0x5c4c10
lea eax, [ebp - 0xa4]
push eax
mov ecx, 0x5c4c30
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0xa4]
mov eax, 0x631c7c
call fcn.004072f0
push 0x5c4c64
lea eax, [ebp - 0xa8]
push eax
mov ecx, 0x5c4cb4
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0xa8]
mov eax, 0x631c80
call fcn.004072f0
push 1
mov ecx, 0x5c4ce0
mov edx, 0x5c4d00
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov byte [0x62a8a8], al
push 1
mov ecx, 0x5c4d14
mov edx, 0x5c4d00
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x478]
mov ecx, dword [eax]
call dword [ecx + 0xf0]
push 1
mov ecx, 0x5c4d48
mov edx, 0x5c4d00
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x488]
mov ecx, dword [eax]
call dword [ecx + 0xf0]
push 0xf
mov ecx, 0x5c4d74
mov edx, 0x5c4d00
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov byte [0x62a950], al
test byte [0x62a950], 1
jbe 0x5c3157
test byte [0x62a950], 0x10
jbe 0x5c3157
and byte [0x62a950], 0xef
test byte [0x62a950], 2
jbe 0x5c3170
test byte [0x62a950], 0x20
jbe 0x5c3170
and byte [0x62a950], 0xdf
test byte [0x62a950], 4
jbe 0x5c3189
test byte [0x62a950], 0x40
jbe 0x5c3189
and byte [0x62a950], 0xbf
test byte [0x62a950], 8
jbe 0x5c31a2
test byte [0x62a950], 0x80
jbe 0x5c31a2
and byte [0x62a950], 0x7f
cmp byte [0x62a950], 0xf0
jne 0x5c31b2
mov byte [0x62a950], 0
cmp byte [0x62a950], 0
seta dl
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x438]
call fcn.0048766c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x438]
mov dl, byte [eax + 0x48]
mov eax, dword [ebp - 4]
call fcn.005c0aa4
push 1
mov ecx, 0x5c4da0
mov edx, 0x5c4d00
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov byte [0x62a954], al
push 0
mov ecx, 0x5c4dd8
mov edx, 0x5c4d00
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov byte [0x62a95c], al
cmp byte [0x62a95c], 2
jbe 0x5c3220
mov byte [0x62a95c], 0
push 0
lea eax, [ebp - 0xc]
push eax
mov ecx, 0x5c4e00
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x51c]
mov eax, dword [eax + 0x2ac]
mov edx, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0x54]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0xffffffff
jle 0x5c3277
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x51c]
mov eax, dword [eax + 0x2ac]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x5c3277
mov dword [ebp - 0x14], 0xffffffff
cmp dword [ebp - 0x14], 0xffffffff
jne 0x5c329a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x51c]
mov eax, dword [eax + 0x2ac]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x5c329a
xor eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x51c]
mov edx, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0xf0]
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.005d4958
push 5
mov ecx, 0x5c4e20
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
cmp eax, 0xa
ja case.0x5c32db.0
jmp dword [eax*4 + 0x5c32e2]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x530]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0xf0]
jmp 0x5c3399
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x530]
mov edx, 1
mov ecx, dword [eax]
call dword [ecx + 0xf0]
jmp 0x5c3399
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x530]
mov edx, 2
mov ecx, dword [eax]
call dword [ecx + 0xf0]
jmp 0x5c3399
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x530]
mov edx, 3
mov ecx, dword [eax]
call dword [ecx + 0xf0]
jmp 0x5c3399
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x530]
mov edx, 4
mov ecx, dword [eax]
call dword [ecx + 0xf0]
jmp 0x5c3399
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x530]
mov edx, 3
mov ecx, dword [eax]
call dword [ecx + 0xf0]
push 1
mov ecx, 0x5c4e44
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5ec]
call fcn.004a4a48
push 1
mov ecx, 0x5c4e68
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5f0]
call fcn.004a4a48
push 1
mov ecx, 0x5c4e8c
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5ac]
call fcn.004a4a48
mov eax, dword [0x62a980]
push eax
mov ecx, 0x5c4eb0
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov dword [0x62a980], eax
push 0
mov ecx, 0x5c4ed0
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5f4]
call fcn.004a4a48
push 0
mov ecx, 0x5c4efc
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x594]
call fcn.004a4a48
push 0
mov ecx, 0x5c4f20
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5f8]
call fcn.004a4a48
push 1
mov ecx, 0x5c3d78
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5b0]
call fcn.004a4a48
push 0x5c4f48
lea eax, [ebp - 0xac]
push eax
mov ecx, 0x5c4f68
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0xac]
mov eax, 0x631c4c
call fcn.004072f0
push 0x3ff00000
push 0
mov ecx, 0x5c4f8c
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x28]
fstp qword [0x631c44]
wait
push 1
mov ecx, 0x5c4fb4
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov byte [0x631c50], al
push 0
mov ecx, 0x5c4fd8
mov edx, 0x5c4514
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x528]
mov ecx, dword [eax]
call dword [ecx + 0xf0]
push 0
lea eax, [ebp - 0xb0]
push eax
mov ecx, 0x5c4ffc
mov edx, 0x5c4d00
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0xb0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x414]
call fcn.004b7348
push 0
mov ecx, 0x5c5020
mov edx, 0x5c4d00
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x418]
mov ecx, dword [eax]
call dword [ecx + 0xf0]
push 0
mov ecx, 0x5c5044
mov edx, 0x5c4d00
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4b4]
mov ecx, dword [eax]
call dword [ecx + 0xf0]
push 1
mov ecx, 0x5c5068
mov edx, 0x5c4d00
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov byte [0x62a960], al
push 0
mov ecx, 0x5c5098
mov edx, 0x5c4d00
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0x14]
mov byte [0x62a958], al
push 0
lea eax, [ebp - 0xb4]
push eax
mov ecx, 0x5c50c8
mov edx, 0x5c4d00
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov edx, dword [ebp - 0xb4]
mov eax, 0x631c24
call fcn.004072f0
push 2
mov ecx, 0x5c50f0
mov edx, 0x5c4d00
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov byte [0x62a934], al
cmp byte [0x62a934], 4
jbe 0x5c3643
mov byte [0x62a934], 0
mov eax, dword [ebp - 4]
call fcn.004ddf94
push eax
mov ecx, 0x5c5128
mov edx, 0x5c4d00
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004e3dd8
mov eax, dword [ebp - 4]
call fcn.004ddfb4
push eax
mov ecx, 0x5c5148
mov edx, 0x5c4d00
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004e3e14
mov eax, dword [ebp - 4]
call fcn.004b6bfc
push eax
mov ecx, 0x5c5168
mov edx, 0x5c4d00
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004de398
mov eax, dword [ebp - 4]
call fcn.004b6c3c
push eax
mov ecx, 0x5c5190
mov edx, 0x5c4d00
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004de3cc
push 0x5c51b8
lea eax, [ebp - 0xc]
push eax
mov ecx, 0x5c51d8
mov edx, 0x5c4d00
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax]
call dword [ebx + 4]
mov eax, dword [ebp - 0xc]
mov edx, 0x5c51b8
call fcn.00407a68
jne 0x5c370d
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.004dfe14
jmp 0x5c3717
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004dfe14
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 4]
lea ecx, [eax + 0x390]
mov eax, 0x631b90
mov edx, 0x5c5200
call fcn.005bfca0
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 4]
lea ecx, [eax + 0x434]
mov eax, 0x631b90
mov edx, 0x5c5200
call fcn.005bfca0
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 4]
lea ecx, [eax + 0x4b0]
mov eax, 0x631b90
mov edx, 0x5c5200
call fcn.005bfca0
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 4]
lea ecx, [eax + 0x520]
mov eax, 0x631b94
mov edx, 0x5c5214
call fcn.005bfca0
mov eax, dword [ebp - 0x10]
call fcn.004052b4
mov dl, 1
mov eax, 0x5c5230
call fcn.005bed70
xor eax, eax
call fcn.005c0b70
xor eax, eax
call fcn.005c0efc
xor eax, eax
call fcn.005c128c
mov dl, 1
mov eax, 0x5c5260
call fcn.005bed70
call fcn.005c1618
mov dl, 1
mov eax, 0x5c529c
call fcn.005bed70
call fcn.005c17c4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5c3829
lea eax, [ebp - 0xb4]
mov edx, 0xe
call fcn.004072e8
lea eax, [ebp - 0x7c]
call fcn.004072e0
lea eax, [ebp - 0x78]
call fcn.004072e0
lea eax, [ebp - 0x74]
call fcn.004072e0
lea eax, [ebp - 0x70]
mov edx, 0x14
call fcn.004072e8
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.004072e8
ret