Function at 0x4933a0
Capabilities:
Check http status code
Encode data using xor
Encrypt data using speck

Disassembly:
sub esp, 0x360
push ebx
push ebp
push esi
mov esi, dword [esp + 0x370]
mov ebp, esi
imul ebp, ebp, 0x148
mov eax, dword [ebp + 0x85c270]
test eax, eax
push edi
mov dword [esp + 0x18], ebp
je 0x4933d5
mov eax, dword [ebp + 0x85c380]
test eax, eax
jns 0x493524
mov eax, dword [esp + 0x380]
test eax, eax
je 0x493524
cmp eax, 0xffffffff
mov edi, dword [esp + 0x37c]
mov ebx, dword [esp + 0x378]
je 0x493410
push 0
push 0xffffffffffffffff
push edi
push ebx
push esi
mov dword [0x8ccc44], 0x40000000
call fcn.004933a0
add esp, 0x14
push edi
push ebx
push esi
call fcn.004918a0
add esp, 0xc
test esi, esi
jne 0x4934b8
mov dword [0x85c384], 0xffffffff
mov ebx, 0x270f
mov edi, 1
mov esi, 0x86401e
lea esp, [esp]
test byte [esi - 6], 1
jne 0x493489
movsx eax, word [esi]
mov ecx, dword [0x85c2b0]
shl eax, 5
sub ecx, dword [eax + 0x862b6c]
mov edx, dword [0x85c270]
sub edx, dword [eax + 0x862b68]
jns 0x493468
neg edx
test ecx, ecx
jge 0x49346e
neg ecx
cmp edx, ecx
lea eax, [ecx + edx*2]
jg 0x493478
lea eax, [edx + ecx*2]
cdq
sub eax, edx
sar eax, 1
cmp eax, ebx
jge 0x493489
mov ebx, eax
mov dword [0x85c384], edi
add esi, 0x1c
inc edi
cmp esi, 0x86411a
jl 0x493440
cmp dword [0x85c384], 0xffffffff
jne 0x4934b8
mov dword [0x85c270], 0
mov eax, 0x1b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x360
ret
cmp dword [esp + 0x380], 0xffffffff
je 0x4934a8
mov ecx, dword [0x85c158]
xor eax, eax
cmp ecx, 1
mov ecx, dword [ebp + 0x85c270]
setg al
lea eax, [eax*8 + 7]
mov dword [ebp + 0x85c380], eax
cmp ecx, dword [ebp + 0x85c274]
jge 0x4934f2
mov eax, 0x700
jmp 0x493513
mov edx, dword [ebp + 0x85c2b4]
mov edi, dword [ebp + 0x85c2b0]
xor eax, eax
sub edx, 5
cmp edi, edx
setg al
dec eax
and eax, 0xfffffe00
add eax, 0xd00
mov dword [ebp + 0x85c380], eax
mov dword [esp + 0x380], 0
mov esi, dword [0x8ebfd8]
add esi, 0x128
mov ecx, 7
lea edi, [esp + 0x234]
rep movsd dword es:[edi], dword [esi]
push ecx
mov ecx, dword [0x8ebfdc]
mov eax, esp
xor edx, edx
mov dword [eax], ecx
mov eax, ecx
cmp eax, edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x58], edx
je 0x49355c
inc dword [eax + 4]
call fcn.004ae810
mov al, byte [0x8ccb2c]
add esp, 4
test al, al
mov byte [esp + 0x17], 0
jne 0x49357c
mov byte [esp + 0x17], 1
call fcn.00492310
mov eax, dword [0x8cb570]
test eax, eax
mov byte [esp + 0x1f], 0
jne 0x4935a6
mov byte [esp + 0x1f], 1
xor ebx, ebx
call fcn.004b27e0
inc ebx
cmp ebx, 3
jl 0x493591
and dword [0x85c164], 0xffff7fff
mov eax, dword [0x8ebfd8]
push 0x461c4000
push 0x42c80000
call fcn.00412840
call fcn.00491700
mov eax, 0x3e8
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0xf0], eax
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], eax
cmp dword [esp + 0x380], 1
mov ecx, 0xffff
jmp 0x4935f0
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
jne 0x4936e1
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x85c380]
test eax, eax
je 0x4936e1
mov eax, dword [esp + 0x54]
test eax, eax
je 0x4936e1
mov eax, dword [0x85c158]
lea ecx, [eax + 1]
mov eax, 5
cdq
idiv ecx
xor ebp, ebp
test eax, eax
jle 0x4936e1
mov ebx, dword [sym.imp.MSVCR71.dll_rand]
mov esi, dword [esp + 0x18]
mov edi, dword [esi + 0x85c380]
and edi, 0xf00
je 0x4936e1
call ebx
mov ecx, eax
and ecx, 0x80000003
jns 0x493663
dec ecx
or ecx, 0xfffffffc
inc ecx
add ecx, 8
mov edx, 1
shl edx, cl
mov ecx, dword [esi + 0x85c380]
not edx
and ecx, edx
mov eax, ecx
cmp eax, edi
mov dword [esi + 0x85c380], ecx
je 0x493652
cmp edi, 0xf00
jne 0x4936c7
mov eax, dword [esi + 0x85c270]
cmp eax, dword [esi + 0x85c274]
jge 0x4936a0
mov eax, 0x700
jmp 0x4936c1
mov ecx, dword [esi + 0x85c2b4]
mov edx, dword [esi + 0x85c2b0]
xor eax, eax
sub ecx, 5
cmp edx, ecx
setg al
dec eax
and eax, 0xfffffe00
add eax, 0xd00
mov dword [esi + 0x85c380], eax
mov edx, dword [0x85c158]
lea ecx, [edx + 1]
mov eax, 5
cdq
idiv ecx
inc ebp
cmp ebp, eax
jl 0x493640
mov edx, dword [esp + 0x18]
mov ebx, dword [edx + 0x85c270]
test ebx, ebx
mov dword [esp + 0x50], ebx
je 0x493710
mov ecx, dword [edx + 0x85c2b0]
mov eax, ebx
imul eax, eax, 0x125
lea eax, [eax + ecx + 0x770f10]
cmp byte [eax], 0x11
je 0x493710
mov byte [eax], 0x11
lea eax, [edx + 0x85c2f0]
xor edi, edi
mov esi, eax
lea ebx, [ebx]
mov eax, dword [esi]
cmp eax, 0xffffffff
je 0x493762
cmp eax, dword [esp + 0x38]
jge 0x493731
mov dword [esp + 0x38], eax
cmp eax, dword [esp + 0x28]
jle 0x49373b
mov dword [esp + 0x28], eax
mov ecx, dword [esi + 0x40]
cmp ecx, dword [esp + 0x3c]
jge 0x493748
mov dword [esp + 0x3c], ecx
cmp ecx, dword [esp + 0x24]
jle 0x493752
mov dword [esp + 0x24], ecx
imul eax, eax, 0x125
cmp byte [eax + ecx + 0x770f10], 0x11
je 0x49376b
inc edi
add esi, 4
cmp edi, 0x10
jl 0x493720
mov esi, dword [edx + 0x85c274]
mov edi, dword [edx + 0x85c2b0]
mov ecx, dword [edx + 0x85c2b4]
mov ebp, ebx
sub ebp, esi
mov eax, ebp
cdq
xor eax, edx
sub eax, edx
cmp eax, 9
jge 0x49379b
mov eax, edi
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 9
jl 0x4937db
test ebp, ebp
jle 0x4937a6
mov eax, 1
jmp 0x4937ae
xor eax, eax
test ebp, ebp
setge al
dec eax
mov esi, dword [esp + 0x50]
lea edx, [eax + eax*2]
mov eax, edi
sub esi, edx
sub eax, ecx
test eax, eax
mov ebx, esi
jle 0x4937c8
mov eax, 1
jmp 0x4937d2
xor ecx, ecx
test eax, eax
setge cl
dec ecx
mov eax, ecx
mov ecx, edi
lea edx, [eax + eax]
sub ecx, edx
mov edi, ecx
lea eax, [ebx + esi]
cdq
sub eax, edx
sar eax, 1
add eax, 4
mov dword [esp + 0x28], eax
lea eax, [edi + ecx]
cdq
sub eax, edx
sar eax, 1
add eax, 4
mov dword [esp + 0x24], eax
xor eax, eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], eax
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1d4], eax
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x1dc], eax
mov dword [esp + 0x110], ecx
mov dword [esp + 0x1e8], edx
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x114], ecx
mov dword [esp + 0x1ec], edx
mov dword [esp + 0x158], eax
mov dword [esp + 0x118], ecx
mov dword [esp + 0x1f0], edx
mov dword [esp + 0x15c], eax
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x1f4], edx
mov dword [esp + 0x160], eax
mov dword [esp + 0x120], ecx
mov dword [esp + 0x1f8], edx
mov dword [esp + 0x164], eax
mov dword [esp + 0x124], ecx
mov dword [esp + 0x1fc], edx
mov dword [esp + 0x168], eax
mov dword [esp + 0x128], ecx
mov dword [esp + 0x200], edx
mov dword [esp + 0x16c], eax
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x204], edx
mov dword [esp + 0x170], eax
mov dword [esp + 0x130], ecx
mov dword [esp + 0x208], edx
mov dword [esp + 0x174], eax
mov dword [esp + 0x134], ecx
mov dword [esp + 0x20c], edx
mov dword [esp + 0x178], eax
mov dword [esp + 0x138], ecx
mov dword [esp + 0x210], edx
mov dword [esp + 0x17c], eax
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x214], edx
mov dword [esp + 0x180], eax
mov dword [esp + 0x140], ecx
mov dword [esp + 0x218], edx
mov dword [esp + 0x184], eax
mov dword [esp + 0x144], ecx
mov dword [esp + 0x21c], edx
mov dword [esp + 0x188], eax
mov dword [esp + 0x148], ecx
mov dword [esp + 0x220], edx
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x224], edx
mov dword [esp + 0x18c], eax
mov dword [esp + 0x150], ecx
mov dword [esp + 0x228], edx
mov dword [esp + 0x190], eax
mov dword [esp + 0x194], eax
or esi, 0xffffffff
mov dword [esp + 0x198], eax
xor edi, edi
mov al, byte [esp + 0x384]
test al, al
mov ebp, 0x8cccd0
je 0x493aa4
mov edx, dword [0x8eed78]
mov ecx, 0x8eed78
call dword [edx + 0x18]
test al, al
jne 0x493a1e
push edi
push str.The_audio_manager_has_not_been_properly_initialized_yet
mov eax, 1
call fcn.004887a0
add esp, 8
jmp 0x493aa4
mov al, byte [0x8eaeff]
test al, al
jne 0x493aa4
sub esp, 0x64
lea eax, [esp + 0x2b4]
mov ebx, esp
mov dword [esp + 0x314], ebp
mov dword [esp + 0x2b4], 0x13
mov dword [esp + 0x2bc], 0x29
mov dword [esp + 0x2c0], edi
mov dword [esp + 0x2c4], esi
mov dword [esp + 0x2c8], esi
mov dword [esp + 0x2cc], esi
mov dword [esp + 0x2d0], edi
mov dword [esp + 0x2d4], esi
mov dword [esp + 0x2dc], 0x3f800000
mov dword [esp + 0x2ec], edi
call fcn.00498530
mov edi, 0x8e87b4
call fcn.004a1410
mov dword [esp + 0x2b0], ebp
xor edi, edi
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x493b05
mov esi, dword [0x8e871c]
test esi, esi
je 0x493ae5
fild dword [esi + 0x38]
push 0
push 0x427c0000
fmul dword [0x715920]
call fcn.005f275c
fild dword [esi + 0x34]
push eax
fmul dword [0x715920]
call fcn.005f275c
push eax
push esi
call fcn.004bc130
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x85c270]
test ecx, ecx
je 0x4947d8
mov ecx, dword [eax + 0x85c380]
test ecx, ecx
js 0x4947d8
mov ecx, dword [esp + 0x28]
lea eax, [ecx - 9]
cmp eax, ecx
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x3c], eax
jg 0x494157
mov ecx, dword [esp + 0x24]
imul eax, eax, 0x125
add ecx, 0xfffffff8
add eax, 0x7b30a0
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x48], 0
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x24]
mov dword [esp + 0x44], eax
jg 0x49412b
or eax, 0xffffffff
mov esi, 2
mov word [esp + 0xb0], ax
mov word [esp + 0xb2], ax
mov word [esp + 0xb6], ax
mov word [esp + 0xba], ax
mov word [esp + 0xbe], ax
mov word [esp + 0xc0], si
mov word [esp + 0xc2], ax
mov word [esp + 0xc6], ax
mov word [esp + 0xc8], si
mov esi, dword [esp + 0x28]
mov word [esp + 0xce], ax
mov word [esp + 0xd2], ax
mov word [esp + 0xda], ax
mov word [esp + 0xde], ax
mov word [esp + 0xe2], ax
mov word [esp + 0xe6], ax
mov word [esp + 0xea], ax
mov word [esp + 0xec], ax
mov word [esp + 0xee], ax
mov edx, 5
mov ecx, 4
lea eax, [esi - 9]
sub esi, eax
mov eax, dword [esp + 0x3c]
mov word [esp + 0xb8], dx
mov word [esp + 0xca], dx
mov edx, 3
mov word [esp + 0xb4], cx
mov word [esp + 0xd6], cx
mov ecx, dword [esp + 0x44]
mov word [esp + 0xd0], dx
mov word [esp + 0xd4], dx
lea edx, [ecx + eax]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff7
sub ecx, eax
mov word [esp + 0xbc], 1
mov word [esp + 0xc4], 0xa
mov word [esp + 0xcc], 7
mov word [esp + 0xd8], 0xb
mov word [esp + 0xdc], 6
mov word [esp + 0xe0], 0
mov word [esp + 0xe4], 9
mov word [esp + 0xe8], 8
mov dword [esp + 0xac], esi
mov dword [esp + 0x9c], edx
mov dword [esp + 0x4c], ecx
lea ebx, [ebx]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x44]
cmp byte [eax + ecx - 0x125], 4
mov dword [esp + 0x10], 0
jg 0x493cd2
mov dword [esp + 0x10], 1
cmp byte [eax + ecx], 4
jg 0x493cdd
or dword [esp + 0x10], 2
cmp byte [eax + ecx - 0x126], 4
jg 0x493cec
or dword [esp + 0x10], 4
cmp byte [eax + ecx - 1], 4
jg 0x493cf8
or dword [esp + 0x10], 8
mov eax, dword [esp + 0x48]
imul eax, dword [0x7280a0]
cdq
idiv esi
mov ebx, dword [0x7280a8]
mov ebp, eax
mov eax, dword [0x85c26c]
cdq
sub eax, edx
mov edi, eax
sar edi, 1
mov eax, edi
sub eax, ebx
add eax, ebp
mov dword [esp + 0xa0], eax
mov eax, dword [0x85c268]
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esp + 0x4c]
imul eax, dword [0x7280a4]
cdq
idiv esi
sar ecx, 1
mov edx, ecx
sub edx, eax
mov eax, dword [0x7280ac]
lea edx, [edx + eax - 0x10]
mov eax, dword [esp + 0x10]
test eax, eax
mov dword [esp + 0x50], edx
je 0x4940c5
cmp eax, 0xf
jge 0x4940c5
cmp word [esp + eax*4 + 0xb0], 0xffff
je 0x4940c5
mov eax, dword [esp + 0x48]
dec eax
imul eax, dword [0x7280a0]
cdq
idiv esi
mov ebx, eax
mov eax, dword [0x7280a8]
sub ebx, eax
sub ebp, eax
mov eax, dword [esp + 0x4c]
add ebx, edi
add ebp, edi
dec eax
imul eax, dword [0x7280a4]
cdq
idiv esi
sub eax, dword [0x7280ac]
sub ecx, eax
mov eax, dword [esp + 0x20]
sub ecx, 0x10
test eax, eax
mov edi, ecx
mov dword [esp + 0xfc], edi
jne 0x4940fe
mov eax, dword [esp + 0x10]
dec eax
cmp eax, 0xd
ja case.default.0x493dd1
jmp dword [eax*4 + 0x494da0]
mov eax, dword [str.coast_insideUL.dds]
mov ecx, dword [0x70c784]
mov edx, dword [0x70c788]
mov dword [esp + 0x58], eax
mov eax, dword [0x70c78c]
mov dword [esp + 0x5c], ecx
mov cx, word [0x70c790]
mov dword [esp + 0x60], edx
mov dl, byte [0x70c792]
mov dword [esp + 0x64], eax
mov word [esp + 0x68], cx
mov byte [esp + 0x6a], dl
jmp case.default.0x493dd1
mov ecx, 6
mov esi, str.coast_horizontalUpper.dds
lea edi, [esp + 0x58]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov esi, dword [esp + 0xac]
mov edi, dword [esp + 0xfc]
jmp case.default.0x493dd1
mov eax, dword [str.coast_insideLL.dds]
mov ecx, dword [0x70c7ac]
mov edx, dword [0x70c7b0]
mov dword [esp + 0x58], eax
mov eax, dword [0x70c7b4]
mov dword [esp + 0x5c], ecx
mov cx, word [0x70c7b8]
mov dword [esp + 0x60], edx
mov dl, byte [0x70c7ba]
mov dword [esp + 0x64], eax
mov word [esp + 0x68], cx
mov byte [esp + 0x6a], dl
jmp case.default.0x493dd1
mov eax, dword [str.coast_vertLeft.dds]
mov ecx, dword [0x70c70c]
mov edx, dword [0x70c710]
mov dword [esp + 0x58], eax
mov eax, dword [0x70c714]
mov dword [esp + 0x5c], ecx
mov cx, word [0x70c718]
mov dword [esp + 0x60], edx
mov dl, byte [0x70c71a]
mov dword [esp + 0x64], eax
mov word [esp + 0x68], cx
mov byte [esp + 0x6a], dl
jmp case.default.0x493dd1
mov eax, dword [str.coast_insideUR.dds]
mov ecx, dword [0x70c770]
mov edx, dword [0x70c774]
mov dword [esp + 0x58], eax
mov eax, dword [0x70c778]
mov dword [esp + 0x5c], ecx
mov cx, word [0x70c77c]
mov dword [esp + 0x60], edx
mov dl, byte [0x70c77e]
mov dword [esp + 0x64], eax
mov word [esp + 0x68], cx
mov byte [esp + 0x6a], dl
jmp case.default.0x493dd1
mov eax, dword [str.coast_outsideLR.dds]
mov ecx, dword [0x70c748]
mov edx, dword [0x70c74c]
mov dword [esp + 0x58], eax
mov eax, dword [0x70c750]
mov dword [esp + 0x5c], ecx
mov ecx, dword [0x70c754]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ecx
jmp case.default.0x493dd1
mov eax, dword [0x70c798]
mov ecx, dword [0x70c79c]
mov edx, dword [str.coast_insideLR.dds]
mov dword [esp + 0x5c], eax
mov ax, word [0x70c7a4]
mov dword [esp + 0x60], ecx
mov cl, byte [0x70c7a6]
mov dword [esp + 0x58], edx
mov edx, dword [0x70c7a0]
mov word [esp + 0x68], ax
mov byte [esp + 0x6a], cl
jmp 0x494052
mov edx, dword [str.coast_vertRight.dds]
mov eax, dword [0x70c6f8]
mov ecx, dword [0x70c6fc]
mov dword [esp + 0x58], edx
mov edx, dword [0x70c700]
mov dword [esp + 0x5c], eax
mov eax, dword [0x70c704]
jmp 0x49404a
mov ecx, dword [str.coast_outsideLL.dds]
mov edx, dword [0x70c75c]
mov eax, dword [0x70c760]
mov dword [esp + 0x58], ecx
mov ecx, dword [0x70c764]
mov dword [esp + 0x5c], edx
mov edx, dword [0x70c768]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
jmp case.default.0x493dd1
mov ecx, 6
mov esi, str.coast_horizontalLower.dds
lea edi, [esp + 0x58]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov esi, dword [esp + 0xac]
mov edi, dword [esp + 0xfc]
jmp case.default.0x493dd1
mov eax, dword [str.coast_outsideUR.dds]
mov ecx, dword [0x70c720]
mov edx, dword [0x70c724]
mov dword [esp + 0x58], eax
mov eax, dword [0x70c728]
mov dword [esp + 0x5c], ecx
mov ecx, dword [0x70c72c]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ecx
jmp case.default.0x493dd1
mov edx, dword [str.coast_outsideUL.dds]
mov eax, dword [0x70c734]
mov ecx, dword [0x70c738]
mov dword [esp + 0x58], edx
mov edx, dword [0x70c73c]
mov dword [esp + 0x5c], eax
mov eax, dword [0x70c740]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], edx
lea ecx, [esp + 0xa4]
push ecx
lea edx, [esp + 0xac]
push edx
mov eax, 0x40
push 0
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
lea eax, [esp + 0x64]
push 0
push eax
call fcn.004ceb00
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0xbc]
add esp, 0x14
push 0
push 0xffffffffffffffff
sub edi, ecx
sub ebp, ebx
add edi, 4
push edi
add ebp, 4
push ebp
add ecx, 0xfffffffe
push ecx
mov ecx, dword [esp + 0xb8]
add ebx, 0xfffffffe
push ebx
push ecx
push edx
push 0
push 0
push eax
call fcn.004af500
add esp, 0x2c
jmp 0x4940cd
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x4940fe
cmp dword [esp + 0x10], 0xf
jne 0x4940fe
test byte [esp + 0x9c], 1
je 0x4940fe
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0xa0]
mov edx, dword [0x8e873c]
push 0
push 0x427c0000
push eax
push ecx
push edx
call fcn.004bc130
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x24]
inc eax
inc edi
inc edx
cmp eax, ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x4c], edi
mov dword [esp + 0x9c], edx
jle 0x493cb0
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x28]
inc eax
inc esi
add edx, 0x125
cmp eax, ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x48], esi
mov dword [esp + 0x38], edx
jle 0x493b42
mov eax, dword [esp + 0x374]
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x40]
or ecx, 0xffffffff
imul eax, eax, 0x52
mov dword [esp + 0x10], ecx
mov dword [esp + 0xa0], eax
cmp ecx, 0xffffffff
jne 0x4941cc
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0x85c2f0]
push 0x80008000
push ecx
push ecx
mov ecx, dword [eax + 0x85c330]
lea eax, [eax + 0x85c2f0]
push ecx
push edx
mov eax, 0x270f
call fcn.0045fe40
shl eax, 5
mov esi, dword [eax + 0x862b68]
mov ebp, dword [eax + 0x862b6c]
mov eax, dword [esp + 0x2c]
mov cl, byte [eax + 0x85c380]
add esp, 0x14
test cl, 1
jne 0x4945f1
jmp 0x4941ee
mov edx, dword [esp + 0xa0]
lea eax, [edx + ecx]
shl eax, 2
mov esi, dword [eax + 0x85c2f0]
cmp esi, 0xffffffff
je 0x4945f1
mov ebp, dword [eax + 0x85c330]
mov ecx, dword [esp + 0x28]
lea eax, [ecx - 9]
cmp esi, eax
jl 0x4945f1
cmp esi, ecx
jg 0x4945f1
mov ecx, dword [esp + 0x24]
lea eax, [ecx - 9]
cmp ebp, eax
jl 0x4945f1
cmp ebp, ecx
jg 0x4945f1
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x85c380]
test al, 2
je 0x494247
test byte [esp + 0x10], 1
je 0x494247
mov ecx, esi
imul ecx, ecx, 0x125
cmp byte [ecx + ebp + 0x770f10], 0x11
jne 0x4943e3
test al, 8
je 0x494268
test byte [esp + 0x10], 1
jne 0x494268
mov edx, esi
imul edx, edx, 0x125
cmp byte [edx + ebp + 0x770f10], 0x11
jne 0x4945f1
test al, 0x10
jne 0x4945f1
mov eax, 0x864114
mov ecx, dword [eax - 4]
test ecx, ecx
jne 0x49428c
mov edx, dword [eax]
mov ecx, ebp
imul ecx, ecx, 0x1ce
add ecx, esi
cmp edx, ecx
je 0x494296
add eax, 0xc
cmp eax, 0x864d14
jl 0x494275
mov edx, esi
imul edx, edx, 0x125
lea eax, [edx + ebp]
movsx ebx, byte [eax + 0x770f10]
test ebx, ebx
jg 0x4942f1
mov cl, byte [eax + 0x7b30a0]
cmp cl, 5
jle 0x4942f1
lea eax, [ebp + ebp*2]
lea eax, [eax + esi*2]
cdq
mov edi, 5
idiv edi
test edx, edx
jne 0x4942f1
mov edx, esi
imul edx, edx, 7
lea eax, [ebp + ebp*4]
add eax, edx
cdq
mov edi, 9
idiv edi
mov ebx, edx
add ebx, 0x13
cmp cl, 9
jge 0x4942f1
cmp ebx, 0x16
jne 0x4942f1
mov ebx, 0x17
mov eax, dword [esp + 0x374]
push eax
mov eax, ebx
mov ecx, ebp
mov edx, esi
call fcn.00492000
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x30], eax
mov ecx, edi
add ecx, 0xfffffff7
mov eax, esi
sub eax, ecx
imul eax, dword [0x7280a0]
cdq
sub edi, ecx
idiv edi
add esp, 4
mov ecx, eax
mov eax, dword [0x85c26c]
cdq
sub eax, edx
mov edx, dword [esp + 0x24]
sar eax, 1
add ecx, eax
sub ecx, dword [0x7280a8]
add edx, 0xfffffff7
mov eax, ebp
sub eax, edx
imul eax, dword [0x7280a4]
cdq
idiv edi
mov edi, eax
mov eax, dword [0x85c268]
cdq
sub eax, edx
mov edx, dword [0x7280ac]
sar eax, 1
sub eax, edi
lea edi, [eax + edx - 0x10]
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x494389
mov eax, dword [esp + 0x2c]
push 0
push 0x42960000
push edi
push ecx
mov ecx, dword [eax*4 + 0x8e8730]
push ecx
call fcn.004bc130
jmp 0x4943db
cmp dword [esp + 0x20], 1
jne 0x4943db
mov al, byte [0x86bb48]
test al, al
je 0x4943db
xor eax, eax
cmp ebx, 0x13
setl al
push 0
push 0xffffffffffffffff
push 4
push 0xff3b250e
dec eax
and eax, 0xffffffe2
add eax, 0x64
push eax
mov dword [0x85c11c], eax
mov eax, esi
cdq
mov esi, 3
idiv esi
mov eax, dword [0x8cb570]
lea edx, [edi + edx*4 + 8]
push edx
push ecx
push 0x86bb48
call fcn.004b0b40
add esp, 0x20
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x34]
cmp edi, 0xffffffff
je 0x4945e5
mov eax, dword [esp + 0x10]
test eax, eax
jle 0x4945e5
mov eax, dword [esp + 0x18]
test byte [eax + 0x85c380], 2
jne 0x4945e5
mov esi, ebx
mov ebp, edi
neg esi
neg ebp
mov eax, esi
mov ecx, ebp
call fcn.004dcb20
test ebp, ebp
mov ecx, eax
jge 0x494422
neg ebp
test esi, esi
jge 0x494428
neg esi
cmp ebp, esi
lea eax, [esi + ebp*2]
jg 0x494433
lea eax, [ebp + esi*2]
cdq
sub eax, edx
mov ebp, eax
mov eax, dword [esp + 0x20]
sar ebp, 1
test eax, eax
jne 0x4945e5
cmp ebp, 0x32
jl 0x4945e5
mov edx, 0x40000000
sub edx, ecx
mov dword [esp + 0x2c], edx
fild dword [esp + 0x2c]
lea eax, [esp + 0x34c]
fmul qword [0x715728]
fstp dword [esp + 0x2c]
mov esi, dword [esp + 0x2c]
push esi
push 0
push 0
call fcn.004dc670
add esp, 0xc
push 0
mov ecx, dword [0x8e8740]
push 0xffffffffffffffff
push 0x32
push eax
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
push eax
mov eax, edi
cdq
sub eax, edx
push 0
sar eax, 1
push eax
call fcn.004bc350
cmp ebp, 0x64
jle 0x4945e5
push esi
push 0
push 0
lea eax, [esp + 0x2ec]
call fcn.004dc670
mov ecx, eax
mov eax, 0x55555556
imul ebx
add esp, 0xc
push 0
push 0xffffffffffffffff
push 0x32
push ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, 0x55555556
imul edi
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push 0
push ecx
mov ecx, dword [0x8e8744]
call fcn.004bc350
push esi
push 0
push 0
lea eax, [esp + 0x310]
call fcn.004dc670
add esp, 0xc
push 0
mov edx, eax
push 0xffffffffffffffff
push 0x32
push edx
lea ecx, [ebx + ebx]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
lea ecx, [edi + edi]
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push 0
push ecx
mov ecx, dword [0x8e8744]
call fcn.004bc350
cmp ebp, 0xc8
jle 0x4945e5
push esi
push 0
push 0
lea eax, [esp + 0x2c8]
call fcn.004dc670
add esp, 0xc
push 0
mov edx, eax
push 0xffffffffffffffff
push 0x32
push edx
mov eax, 0x2aaaaaab
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, 0x2aaaaaab
imul edi
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push 0
push ecx
mov ecx, dword [0x8e8744]
call fcn.004bc350
push esi
push 0
push 0
lea eax, [esp + 0x334]
call fcn.004dc670
add esp, 0xc
push 0
mov edx, eax
push 0xffffffffffffffff
push 0x32
push edx
lea ebx, [ebx + ebx*4]
mov eax, 0x2aaaaaab
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
lea edi, [edi + edi*4]
mov eax, 0x2aaaaaab
imul edi
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push 0
push ecx
mov ecx, dword [0x8e8744]
call fcn.004bc350
xor edi, edi
xor ebx, ebx
mov dword [esp + 0x34], edi
mov dword [esp + 0x40], ebx
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, 0x10
mov dword [esp + 0x10], ecx
jl 0x494177
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x20], 1
mov esi, dword [eax + 0x85c270]
mov ebp, dword [eax + 0x85c2b0]
jne 0x4947c1
mov ebx, dword [eax + 0x85c380]
test bl, 4
jne 0x494711
push 0x80000000
push 0x270f
push 0xffffffffffffffff
push ebp
push esi
call fcn.0045fc10
mov edi, eax
mov ecx, edi
shl ecx, 5
mov edx, dword [ecx + 0x862b68]
mov eax, ebp
mov ebp, dword [ecx + 0x862b6c]
add esp, 0x14
sub eax, ebp
sub esi, edx
call fcn.004dca00
sub esp, 0xc
test bh, 0xf
je 0x494699
lea edx, [edi + edi*2]
lea eax, [edx*4 + 0x8ddd08]
mov edx, dword [eax]
mov ecx, esp
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [ecx + 4], edx
push str.Search_in_the_vicinity_of__CITYNAME
mov esi, 0x8ebf58
mov dword [ecx + 8], eax
call fcn.004f7660
add esp, 0x10
jmp 0x4946c8
lea ecx, [edi + edi*2]
lea edx, [ecx*4 + 0x8ddd08]
mov esi, dword [edx]
mov ecx, esp
mov dword [ecx], esi
mov esi, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [ecx + 4], esi
push eax
push str.Search__DIRECTION_of__CITYNAME
mov esi, 0x8ebf58
mov dword [ecx + 8], edx
call fcn.004f7660
add esp, 0x14
mov eax, dword [0x85c11c]
mov ecx, dword [0x85c268]
push 0
push 0xffffffffffffffff
push 4
push 0xff3b250e
push eax
mov eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
sub ecx, eax
mov eax, dword [0x85c26c]
cdq
sub eax, edx
add ecx, 0xe
push ecx
sar eax, 1
push eax
mov eax, dword [0x8cb570]
push 0x86bb48
call fcn.004b0b40
mov eax, dword [esp + 0x38]
add esp, 0x20
xor edi, edi
mov ecx, dword [eax + 0x85c270]
test ecx, ecx
je 0x49472e
mov ecx, edi
mov edx, 0x100
shl edx, cl
test dword [eax + 0x85c380], edx
je 0x494768
mov esi, dword [edi*4 + 0x8e8720]
test esi, esi
je 0x494768
fild dword [esi + 0x38]
push 0
push 0x427c0000
fmul dword [0x715920]
call fcn.005f275c
fild dword [esi + 0x34]
push eax
fmul dword [0x715920]
call fcn.005f275c
push eax
push esi
call fcn.004bc130
mov eax, dword [esp + 0x18]
inc edi
cmp edi, 4
jl 0x494713
mov eax, dword [esp + 0x374]
push eax
mov eax, 0x11
xor ecx, ecx
xor edx, edx
mov byte [0x86bb48], 0
call fcn.00492000
mov eax, dword [0x85c26c]
add esp, 4
push 0
push 0xffffffffffffffff
push 4
cdq
push 0xffffffffffffffff
sub eax, edx
push 0x64
sar eax, 1
push 0xc
push eax
mov eax, dword [0x8cb56c]
push 0x86bb48
mov dword [0x85c11c], 0x64
call fcn.004b0b40
add esp, 0x20
mov eax, dword [esp + 0x20]
inc eax
cmp eax, 2
mov dword [esp + 0x20], eax
jl 0x493aa8
jmp 0x494885
mov edi, 0x8e8720
lea ecx, [ecx]
mov esi, dword [edi]
test esi, esi
je 0x494811
fild dword [esi + 0x38]
push 0
push 0x427c0000
fmul dword [0x715920]
call fcn.005f275c
fild dword [esi + 0x34]
push eax
fmul dword [0x715920]
call fcn.005f275c
push eax
push esi
call fcn.004bc130
add edi, 4
cmp edi, 0x8e8730
jl 0x4947e0
push str.none
mov esi, 0x8ebf58
call fcn.004f7660
mov edi, 0x86bb48
add esp, 4
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x494834
mov eax, dword [0x85c268]
mov ecx, dword [0x70c6f0]
cdq
sub eax, edx
push 0
push 0xffffffffffffffff
mov dword [edi], ecx
mov ecx, eax
mov eax, dword [0x85c26c]
push 4
cdq
push 0xffffffffffffffff
sar ecx, 1
sub eax, edx
push 0x64
add ecx, 0xffffffd0
sar eax, 1
push ecx
push eax
mov eax, dword [0x8cb56c]
push 0x86bb48
mov dword [0x85c11c], 0x64
call fcn.004b0b40
add esp, 0x20
mov ebp, dword [esp + 0xf0]
cmp ebp, 0x7d00
mov ecx, 0x3e8
mov edi, 1
jle 0x4948b7
mov edi, edi
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
cdq
xor eax, edx
sub eax, edx
add edi, edi
cmp eax, 0x7d00
jg 0x4948a0
mov edx, ecx
mov ecx, 0x3fffffff
call fcn.00495330
mov esi, eax
imul esi, edi
mov eax, esi
xor ecx, ecx
call fcn.004dcac0
mov edi, eax
mov eax, esi
mov ecx, 0x40000000
neg edi
call fcn.004dcac0
mov esi, eax
neg esi
cmp ebp, 0x7d00
mov ecx, 0x3e8
mov ebx, 1
jle 0x49490e
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
cdq
xor eax, edx
sub eax, edx
add ebx, ebx
cmp eax, 0x7d00
jg 0x4948f7
push 0x2aaaaaaa
push 0
push 0
mov edx, ecx
push 0
xor ecx, ecx
call fcn.00495330
imul eax, ebx
push eax
push esi
push edi
call fcn.004ad540
mov esi, dword [esp + 0x39c]
add esp, 0x1c
cmp esi, 1
jne 0x49494e
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x49494e
mov dword [0x8ccc44], 0x40000000
mov eax, dword [0x8ccbe8]
mov cl, byte [eax + 0xc]
test cl, cl
je 0x494a9f
push 1
push eax
call fcn.004b2b90
mov edx, dword [0x8ccbe8]
cmp dword [edx + 8], 0xf
jne 0x4949d6
push str.Previous
mov esi, 0x8ebf58
call fcn.004f7660
mov eax, dword [0x85c268]
mov ecx, dword [0x85c26c]
add esp, 4
cdq
push 0
sub eax, edx
push 0xffffffffffffffff
sar eax, 1
push 4
add eax, 0x10
push 0xffffffffffffffff
push 0x43
push eax
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push 0x86bb48
xor eax, eax
mov dword [0x85c11c], 0x43
call fcn.004b0b40
mov esi, dword [esp + 0x3a0]
add esp, 0x20
mov ecx, dword [0x8ccbe8]
cmp dword [ecx + 8], 0x10
jne 0x494a48
push str.Next
mov esi, 0x8ebf58
call fcn.004f7660
mov eax, dword [0x85c268]
mov ecx, dword [0x85c26c]
add esp, 4
cdq
push 0
sub eax, edx
push 0xffffffffffffffff
sar eax, 1
push 4
add eax, 0x10
push 0xffffffffffffffff
push 0x43
push eax
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
push ecx
push 0x86bb48
xor eax, eax
mov dword [0x85c11c], 0x43
call fcn.004b0b40
mov esi, dword [esp + 0x3a0]
add esp, 0x20
mov edi, dword [0x8ccbe8]
push 0
call fcn.004b2e50
cmp eax, 0x200
mov dword [esp + 0x30], eax
jne 0x494a6b
mov eax, 0x125
mov dword [esp + 0x30], eax
jmp 0x494ad5
cmp eax, 0x201
jne 0x494a7d
mov eax, 0x127
mov dword [esp + 0x30], eax
jmp 0x494ad5
cmp eax, 0x125
jg 0x494a90
je 0x494ad5
mov ecx, eax
dec ecx
je 0x494ad5
sub ecx, 0x1a
jmp 0x494a95
cmp eax, 0x127
je 0x494ad5
xor eax, eax
mov dword [esp + 0x30], eax
jmp 0x494ad5
mov ecx, dword [0x85c26c]
mov eax, dword [0x85c268]
add ecx, 0xffffffd6
push 0xf
push ecx
add eax, 0xffffffd6
xor cl, cl
mov word [0x86e330], 0
call fcn.0042feb0
push 0
push 0
push 0
call fcn.004d1a40
mov eax, dword [esp + 0x44]
add esp, 0x14
cmp esi, 1
je 0x494adf
cmp esi, 0xffffffff
jne 0x494af4
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x494cf7
cmp esi, 0xffffffff
je 0x494ccf
mov edx, dword [0x8ccbe8]
mov cl, byte [edx + 0xc]
test cl, cl
jne 0x494ccf
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
call fcn.0042e1a0
add esp, 4
cmp eax, 0x20f
mov dword [esp + 0x30], eax
je 0x494b30
cmp eax, 0x1b
je 0x494b30
cmp eax, 1
jne 0x494cd7
mov al, byte [esp + 0x1f]
test al, al
je 0x494b65
mov edi, 0x8cb568
lea ecx, [ecx]
mov esi, dword [edi]
test esi, esi
je 0x494b5a
call fcn.00509910
push esi
call sub.MSVCR71.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [edi], 0
add edi, 4
cmp edi, 0x8cb574
jl 0x494b40
call fcn.004ae970
mov al, byte [esp + 0x17]
test al, al
je 0x494b77
call fcn.004932e0
mov ebx, dword [0x8ebfd8]
fld dword [esp + 0x248]
lea edx, [ebx + 0x128]
mov ecx, 7
mov esi, edx
lea edi, [esp + 0xf4]
rep movsd dword es:[edi], dword [esi]
fld dword [esp + 0x108]
fucompp
fnstsw ax
test ah, 0x44
jp 0x494bc1
fld dword [esp + 0x244]
fld dword [esp + 0x104]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x494c2c
fld dword [0x715554]
mov ecx, 7
fld dword [esp + 0x244]
mov esi, edx
fucompp
lea edi, [esp + 0xf4]
rep movsd dword es:[edi], dword [esi]
fnstsw ax
test ah, 0x44
jnp 0x494bf5
mov eax, dword [esp + 0x244]
mov dword [esp + 0x104], eax
fld dword [0x715554]
fld dword [esp + 0x248]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x494c19
mov ecx, dword [esp + 0x248]
mov dword [esp + 0x108], ecx
lea edx, [esp + 0xf4]
mov ecx, ebx
call fcn.004cdb50
call fcn.004adca0
lea esi, [esp + 0x19c]
mov edi, 0x11
mov ecx, dword [esi - 4]
sub esi, 4
test ecx, ecx
je 0x494c4d
dec dword [ecx + 4]
jne 0x494c4d
mov edx, dword [ecx]
push 1
call dword [edx]
dec edi
jne 0x494c38
lea esi, [esp + 0x22c]
mov edi, 0x11
lea esp, [esp]
mov ecx, dword [esi - 4]
sub esi, 4
test ecx, ecx
je 0x494c75
dec dword [ecx + 4]
jne 0x494c75
mov eax, dword [ecx]
push 1
call dword [eax]
dec edi
jne 0x494c60
lea esi, [esp + 0x154]
mov edi, 0x11
mov ecx, dword [esi - 4]
sub esi, 4
test ecx, ecx
je 0x494c99
dec dword [ecx + 4]
jne 0x494c99
mov edx, dword [ecx]
push 1
call dword [edx]
dec edi
jne 0x494c84
lea esi, [esp + 0x1e4]
mov edi, 0x11
mov ecx, dword [esi - 4]
sub esi, 4
test ecx, ecx
je 0x494cbd
dec dword [ecx + 4]
jne 0x494cbd
mov eax, dword [ecx]
push 1
call dword [eax]
dec edi
jne 0x494ca8
mov eax, dword [esp + 0x30]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x360
ret
test eax, eax
jne 0x494b30
cmp esi, 0xffffffff
je 0x494b30
mov al, byte [0x8ccc27]
test al, al
jne 0x494b30
xor edi, edi
or esi, 0xffffffff
jmp 0x4939e0
mov dword [esp + 0x54], 1
lea esi, [esp + 0x19c]
mov edi, 0x11
jmp 0x494d10
mov ecx, dword [esi - 4]
sub esi, 4
test ecx, ecx
je 0x494d25
dec dword [ecx + 4]
jne 0x494d25
mov eax, dword [ecx]
push 1
call dword [eax]
dec edi
jne 0x494d10
lea esi, [esp + 0x22c]
mov edi, 0x11
mov ecx, dword [esi - 4]
sub esi, 4
test ecx, ecx
je 0x494d49
dec dword [ecx + 4]
jne 0x494d49
mov edx, dword [ecx]
push 1
call dword [edx]
dec edi
jne 0x494d34
lea esi, [esp + 0x154]
mov edi, 0x11
mov ecx, dword [esi - 4]
sub esi, 4
test ecx, ecx
je 0x494d6d
dec dword [ecx + 4]
jne 0x494d6d
mov eax, dword [ecx]
push 1
call dword [eax]
dec edi
jne 0x494d58
lea esi, [esp + 0x1e4]
mov edi, 0x11
lea esp, [esp]
mov ecx, dword [esi - 4]
sub esi, 4
test ecx, ecx
je 0x494d95
dec dword [ecx + 4]
jne 0x494d95
mov edx, dword [ecx]
push 1
call dword [edx]
dec edi
jne 0x494d80
jmp 0x4935d0