Function at 0x588810
Capabilities:
Check http status code

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff74
push ebx
push esi
push edi
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
mov dword [ebp - 0x14], 0xfffffffc
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x93c]
dec eax
test eax, eax
jl 0x589919
inc eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x18], 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x938]
mov edx, dword [ebp - 0x18]
mov edx, dword [eax + edx*4]
mov eax, dword [ebp - 8]
call fcn.00578500
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
mov eax, dword [ebp - 8]
call fcn.0061d2f0
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x80]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 8]
call fcn.0061d3f4
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x80]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 8]
call fcn.0061d2f0
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x80]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 8]
call fcn.0061d3f4
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x80]
mov edx, dword [eax + 8]
inc edx
mov eax, dword [ebp - 8]
call fcn.0061d2f0
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x80]
mov edx, dword [eax + 0xc]
inc edx
mov eax, dword [ebp - 8]
call fcn.0061d3f4
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 8]
push dword [eax + 0x3fc]
push dword [eax + 0x3f8]
lea ecx, [ebp - 0x1c]
mov eax, dword [ebp - 4]
mov edx, eax
mov eax, dword [ebp - 8]
call fcn.00594f48
mov eax, dword [ebp - 8]
push dword [eax + 0x3f4]
push dword [eax + 0x3f0]
mov eax, dword [ebp - 4]
mov edx, eax
mov eax, dword [ebp - 8]
call fcn.00596780
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x5c], 0
je 0x588953
mov eax, dword [ebp - 0x5c]
add dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x5c]
add dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x5c]
add dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x5c]
add dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x5c]
add dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x5c]
add dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x80]
cmp byte [eax + 0x10], 3
jne 0x588986
cmp dword [ebp - 0x5c], 0
jle 0x588986
mov eax, dword [ebp - 8]
fld qword [eax + 0x3f0]
fcomp dword [0x589928]
fnstsw ax
sahf
jne 0x588986
sub dword [ebp - 0x24], 2
sub dword [ebp - 0x28], 2
sub dword [ebp - 0x2c], 2
sub dword [ebp - 0x30], 2
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x40], eax
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x3c]
lea edx, [ebp - 0x38]
lea eax, [ebp - 0x34]
call fcn.005dcd68
xor eax, eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], 0x408f4000
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x414]
push ebx
mov eax, dword [ebp - 8]
mov esi, dword [eax + 0x418]
push esi
mov eax, dword [ebp - 8]
add ebx, dword [eax + 0x41c]
push ebx
mov eax, dword [ebp - 8]
add esi, dword [eax + 0x420]
push esi
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
call fcn.0062c7cc
test al, al
jne 0x588a2a
push ebp
call fcn.005883f0
pop ecx
test al, al
jne 0x588a2a
push ebp
call fcn.005884d0
pop ecx
test al, al
jne 0x588a2a
push ebp
call fcn.005885c0
pop ecx
test al, al
jne 0x588a2a
push ebp
call fcn.0058872c
pop ecx
test al, al
je 0x58990d
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x588a58
mov eax, dword [ebp + 8]
mov dword [eax], 1
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x588a86
mov eax, dword [ebp + 8]
mov dword [eax], 2
mov eax, dword [ebp - 0x80]
mov bl, byte [eax + 0x10]
cmp bl, 1
je 0x588bf8
cmp bl, 7
je 0x588bf8
cmp bl, 0xb
je 0x588bf8
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov edx, ebx
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x588ad1
mov eax, dword [ebp + 8]
mov dword [eax], 4
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x588aff
mov eax, dword [ebp + 8]
mov dword [eax], 5
mov eax, dword [ebp - 0x80]
cmp byte [eax + 0x10], 8
jne 0x588b18
mov eax, dword [ebp - 0x80]
cmp byte [eax + 0x196], 0
jne 0x588bf8
mov eax, dword [ebp - 0x20]
add eax, dword [ebp - 0x28]
sar eax, 1
jns 0x588b25
adc eax, 0
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x588b50
mov eax, dword [ebp + 8]
mov dword [eax], 6
mov eax, dword [ebp - 0x20]
add eax, dword [ebp - 0x28]
sar eax, 1
jns 0x588b5d
adc eax, 0
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x588b88
mov eax, dword [ebp + 8]
mov dword [eax], 7
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov ecx, dword [ebp - 0x1c]
add ecx, dword [ebp - 0x24]
sar ecx, 1
jns 0x588ba5
adc ecx, 0
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x588bc0
mov eax, dword [ebp + 8]
mov dword [eax], 8
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov ecx, dword [ebp - 0x1c]
add ecx, dword [ebp - 0x24]
sar ecx, 1
jns 0x588bdd
adc ecx, 0
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x588bf8
mov eax, dword [ebp + 8]
mov dword [eax], 9
mov eax, dword [ebp - 0x80]
cmp byte [eax + 0x10], 0xa
jne 0x588e32
mov eax, dword [ebp - 4]
cmp byte [eax + 0x40], 0
jne 0x588e32
mov eax, dword [ebp - 4]
cmp byte [eax + 0x19d], 0
jne 0x588e32
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x114]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x118]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.00581194
test al, al
jne 0x588d22
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x48]
mov eax, dword [ebp - 4]
mov edx, eax
mov eax, dword [ebp - 8]
call fcn.00581244
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 8]
call fcn.0061d2f0
mov dword [ebp - 0x48], eax
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 8]
call fcn.0061d3f4
mov dword [ebp - 0x44], eax
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 8]
call fcn.0061d2f0
mov dword [ebp - 0x50], eax
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 8]
call fcn.0061d3f4
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x5c]
add dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x5c]
add dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x5c]
add dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x5c]
add dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x44]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x588cf4
mov eax, dword [ebp + 8]
mov dword [eax], 0xb
mov eax, dword [ebp - 0x4c]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x588d22
mov eax, dword [ebp + 8]
mov dword [eax], 0xc
mov eax, dword [ebp - 4]
cmp byte [eax + 0x139], 0
je 0x588e32
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x13c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x140]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.00581194
test al, al
jne 0x588e32
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x48]
mov eax, dword [ebp - 4]
mov edx, eax
mov eax, dword [ebp - 8]
call fcn.005814cc
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 8]
call fcn.0061d2f0
mov dword [ebp - 0x48], eax
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 8]
call fcn.0061d3f4
mov dword [ebp - 0x44], eax
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 8]
call fcn.0061d2f0
mov dword [ebp - 0x50], eax
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 8]
call fcn.0061d3f4
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x5c]
add dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x5c]
add dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x5c]
add dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x5c]
add dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x44]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x588e04
mov eax, dword [ebp + 8]
mov dword [eax], 0xe
mov eax, dword [ebp - 0x4c]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x588e32
mov eax, dword [ebp + 8]
mov dword [eax], 0xf
mov eax, dword [ebp - 0x80]
cmp byte [eax + 0x10], 0xa
jne 0x588ed0
mov eax, dword [ebp - 4]
cmp byte [eax + 0x40], 0
jne 0x588ed0
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
mov eax, dword [ebp - 0x80]
add edx, dword [eax + 0x114]
mov eax, dword [ebp - 8]
call fcn.0061d2f0
mov edi, eax
mov eax, dword [ebp - 0x80]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x80]
add edx, dword [eax + 0x118]
mov eax, dword [ebp - 8]
call fcn.0061d3f4
mov esi, eax
add edi, dword [ebp - 0x5c]
add esi, dword [ebp - 0x5c]
xor eax, eax
push ebp
push 0x588ec9
push dword fs:[eax]
mov dword fs:[eax], esp
push esi
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov ecx, edi
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x588ebb
mov eax, dword [ebp + 8]
mov dword [eax], 0xa
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x588ed0
ret
mov eax, dword [ebp - 0x80]
cmp byte [eax + 0x10], 0xa
jne 0x588f7e
mov eax, dword [ebp - 4]
cmp byte [eax + 0x40], 0
jne 0x588f7e
mov eax, dword [ebp - 4]
cmp byte [eax + 0x139], 0
je 0x588f7e
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
mov eax, dword [ebp - 0x80]
add edx, dword [eax + 0x13c]
mov eax, dword [ebp - 8]
call fcn.0061d2f0
mov edi, eax
mov eax, dword [ebp - 0x80]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x80]
add edx, dword [eax + 0x140]
mov eax, dword [ebp - 8]
call fcn.0061d3f4
mov esi, eax
add edi, dword [ebp - 0x5c]
add esi, dword [ebp - 0x5c]
xor eax, eax
push ebp
push 0x588f77
push dword fs:[eax]
mov dword fs:[eax], esp
push esi
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov ecx, edi
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x588f69
mov eax, dword [ebp + 8]
mov dword [eax], 0xd
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x588f7e
ret
mov eax, dword [ebp - 0x80]
cmp byte [eax + 0x10], 3
jne 0x589408
mov eax, dword [ebp - 4]
cmp byte [eax + 0x1dc], 0
je 0x589408
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
sub eax, dword [edx + 8]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jle 0x589408
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0xc]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jle 0x589408
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp - 4]
mov esi, dword [eax + 8]
push esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
push eax
mov edx, esi
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
mov eax, ebx
call fcn.005dccfc
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x114]
sub edx, eax
push edx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
call fcn.005dccfc
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x118]
sub edx, eax
push edx
mov ecx, ebx
mov dl, 1
mov eax, dword [ebp - 8]
call fcn.00581194
test al, al
jne 0x589055
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
sub eax, dword [edx + 8]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jle 0x589055
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0xc]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jg 0x589059
xor eax, eax
jmp 0x58905b
mov al, 1
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x118]
push eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 4]
add edx, dword [eax + 0xc]
sar edx, 1
jns 0x58907a
adc edx, 0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, dword [ebp - 4]
add eax, dword [ecx + 8]
sar eax, 1
jns 0x58908c
adc eax, 0
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x114]
call fcn.0062e28c
fstp qword [ebp - 0x88]
wait
mov eax, 5
call fcn.00644418
mov dword [ebp - 0x8c], eax
fild dword [ebp - 0x8c]
fcomp qword [ebp - 0x88]
fnstsw ax
sahf
jbe 0x5891d0
mov eax, dword [ebp - 0x80]
mov edx, dword [eax + 0x114]
mov eax, dword [ebp - 8]
call fcn.0061d2f0
mov edi, eax
mov eax, dword [ebp - 0x80]
mov edx, dword [eax + 0x118]
mov eax, dword [ebp - 8]
call fcn.0061d3f4
mov esi, eax
add edi, dword [ebp - 0x5c]
add esi, dword [ebp - 0x5c]
push esi
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov ecx, edi
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x589121
mov eax, dword [ebp + 8]
mov dword [eax], 0x12
jmp 0x5892ca
test bl, bl
je 0x5892ca
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x114]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x118]
push eax
mov eax, dword [ebp - 4]
push dword [eax + 0x134]
push dword [eax + 0x130]
lea eax, [ebp - 0x58]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 4]
add ecx, dword [eax + 0xc]
sar ecx, 1
jns 0x589163
adc ecx, 0
mov eax, dword [ebp - 4]
mov edx, dword [eax]
mov eax, dword [ebp - 4]
add edx, dword [eax + 8]
sar edx, 1
jns 0x589175
adc edx, 0
mov eax, dword [ebp - 8]
call fcn.00579540
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 8]
call fcn.0061d2f0
mov edi, eax
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 8]
call fcn.0061d3f4
mov esi, eax
add edi, dword [ebp - 0x5c]
add esi, dword [ebp - 0x5c]
push esi
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov ecx, edi
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x5892ca
mov eax, dword [ebp + 8]
mov dword [eax], 0x13
jmp 0x5892ca
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x114]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x118]
push eax
mov eax, dword [ebp - 4]
push dword [eax + 0x134]
push dword [eax + 0x130]
lea eax, [ebp - 0x58]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 4]
add ecx, dword [eax + 0xc]
sar ecx, 1
jns 0x58920a
adc ecx, 0
mov eax, dword [ebp - 4]
mov edx, dword [eax]
mov eax, dword [ebp - 4]
add edx, dword [eax + 8]
sar edx, 1
jns 0x58921c
adc edx, 0
mov eax, dword [ebp - 8]
call fcn.00579540
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 8]
call fcn.0061d2f0
mov edi, eax
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 8]
call fcn.0061d3f4
mov esi, eax
add edi, dword [ebp - 0x5c]
add esi, dword [ebp - 0x5c]
test bl, bl
je 0x589274
push esi
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov ecx, edi
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x589274
mov eax, dword [ebp + 8]
mov dword [eax], 0x13
jmp 0x5892ca
mov eax, dword [ebp - 0x80]
mov edx, dword [eax + 0x114]
mov eax, dword [ebp - 8]
call fcn.0061d2f0
mov edi, eax
mov eax, dword [ebp - 0x80]
mov edx, dword [eax + 0x118]
mov eax, dword [ebp - 8]
call fcn.0061d3f4
mov esi, eax
add edi, dword [ebp - 0x5c]
add esi, dword [ebp - 0x5c]
push esi
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov ecx, edi
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x5892ca
mov eax, dword [ebp + 8]
mov dword [eax], 0x12
mov eax, dword [ebp + 8]
cmp dword [eax], 0
jne 0x589408
mov eax, dword [ebp - 0x80]
cmp byte [eax + 0x1e4], 0
je 0x589408
mov eax, dword [ebp - 0x80]
mov edx, dword [eax + 0x1e0]
mov eax, dword [ebp - 8]
call fcn.00584a8c
fstp qword [ebp - 0x78]
wait
mov eax, dword [ebp - 0x80]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x80]
sub eax, dword [edx]
cdq
xor eax, edx
sub eax, edx
mov edx, eax
dec edx
xor eax, eax
call fcn.0043280c
mov dword [ebp - 0x8c], eax
fild dword [ebp - 0x8c]
fdiv qword [ebp - 0x78]
call fcn.00403004
mov edi, eax
mov eax, dword [ebp - 0x80]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x80]
sub eax, dword [edx + 4]
cdq
xor eax, edx
sub eax, edx
mov edx, eax
dec edx
xor eax, eax
call fcn.0043280c
mov dword [ebp - 0x8c], eax
fild dword [ebp - 0x8c]
fdiv qword [ebp - 0x78]
call fcn.00403004
mov edx, dword [ebp - 0x80]
mov ebx, dword [edx + 0x114]
mov edx, edi
sar edx, 1
jns 0x58936c
adc edx, 0
sub ebx, edx
mov edx, dword [ebp - 0x80]
mov esi, dword [edx + 0x118]
mov edx, eax
sar edx, 1
jns 0x589380
adc edx, 0
sub esi, edx
add edi, ebx
add eax, esi
mov dword [ebp - 0x6c], eax
push esi
push edi
mov eax, dword [ebp - 0x6c]
push eax
push 1
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
call fcn.0061d544
push eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.0061d4f8
mov ecx, ebx
pop edx
call fcn.00589a94
fcomp dword [0x58992c]
fnstsw ax
sahf
ja 0x589408
mov eax, dword [ebp - 0x80]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp - 0x80]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp - 0x80]
mov eax, dword [eax + 0xc]
push eax
push 1
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
call fcn.0061d544
push eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.0061d4f8
mov edx, dword [ebp - 0x80]
mov ecx, dword [edx]
pop edx
call fcn.00589a94
fcomp dword [0x58992c]
fnstsw ax
sahf
jbe 0x589408
mov eax, dword [ebp + 8]
mov dword [eax], 0x14
mov edx, dword [ebp - 0x80]
cmp byte [edx + 0x10], 2
jne 0x5895f7
mov edx, dword [ebp - 4]
cmp byte [edx + 0x41], 0
je 0x5895f7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1e8]
test eax, eax
je 0x589436
dec eax
jne 0x5895f7
mov eax, dword [ebp - 4]
cmp byte [eax + 0x19d], 0
je 0x5895f7
mov edx, dword [ebp - 4]
xor ecx, ecx
mov eax, dword [ebp - 8]
call fcn.00588284
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call fcn.005dccfc
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 4]
sub eax, dword [edx]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [ebp - 4]
imul dword [edx + 0x114]
mov dword [ebp - 0x8c], eax
fild dword [ebp - 0x8c]
fdiv dword [0x589930]
call fcn.00403004
add ebx, eax
mov edx, ebx
mov eax, dword [ebp - 8]
call fcn.0061d2f0
mov edi, eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
call fcn.005dccfc
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
sub eax, dword [edx + 4]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [ebp - 4]
imul dword [edx + 0x118]
mov dword [ebp - 0x8c], eax
fild dword [ebp - 0x8c]
fdiv dword [0x589930]
call fcn.00403004
add ebx, eax
mov edx, ebx
mov eax, dword [ebp - 8]
call fcn.0061d3f4
mov esi, eax
add edi, dword [ebp - 0x5c]
add esi, dword [ebp - 0x5c]
push esi
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov ecx, edi
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x589525
mov eax, dword [ebp + 8]
mov dword [eax], 0x15
mov eax, dword [ebp - 4]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call fcn.005dccfc
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 4]
sub eax, dword [edx]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [ebp - 4]
imul dword [edx + 0x13c]
mov dword [ebp - 0x8c], eax
fild dword [ebp - 0x8c]
fdiv dword [0x589930]
call fcn.00403004
add ebx, eax
mov edx, ebx
mov eax, dword [ebp - 8]
call fcn.0061d2f0
mov edi, eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
call fcn.005dccfc
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
sub eax, dword [edx + 4]
cdq
xor eax, edx
sub eax, edx
mov edx, dword [ebp - 4]
imul dword [edx + 0x140]
mov dword [ebp - 0x8c], eax
fild dword [ebp - 0x8c]
fdiv dword [0x589930]
call fcn.00403004
add ebx, eax
mov edx, ebx
mov eax, dword [ebp - 8]
call fcn.0061d3f4
mov esi, eax
add edi, dword [ebp - 0x5c]
add esi, dword [ebp - 0x5c]
push esi
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov ecx, edi
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x5895f7
mov eax, dword [ebp + 8]
mov dword [eax], 0x16
mov eax, dword [ebp - 0x80]
cmp byte [eax + 0x10], 9
jne 0x589611
mov eax, dword [ebp + 8]
cmp dword [eax], 0
jle 0x589611
mov eax, dword [ebp + 8]
mov dword [eax], 3
mov eax, dword [ebp - 0x80]
test byte [eax + 0xac], 4
jne 0x58962e
mov eax, dword [ebp + 8]
cmp dword [eax], 0
jle 0x58962e
mov eax, dword [ebp + 8]
mov dword [eax], 3
mov eax, dword [ebp + 8]
cmp dword [eax], 0
jne 0x58967a
mov eax, dword [ebp - 8]
cmp byte [eax + 0x714], 0
jne 0x58967a
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
call fcn.0061d544
push eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.0061d4f8
mov ecx, eax
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 8]
call fcn.0057b690
fcomp dword [0x589934]
fnstsw ax
sahf
jae 0x58967a
mov eax, dword [ebp + 8]
mov dword [eax], 3
mov eax, dword [ebp + 8]
cmp dword [eax], 0
jle 0x5897e3
mov eax, dword [ebp + 8]
cmp dword [eax], 3
je 0x5897e3
mov eax, dword [ebp + 8]
cmp dword [eax], 0x12
je 0x5897e3
mov eax, dword [ebp + 8]
cmp dword [eax], 0x13
je 0x5897e3
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
call fcn.0061d544
push eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.0061d4f8
mov ecx, eax
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 8]
call fcn.0057b690
fcomp dword [0x589934]
fnstsw ax
sahf
jae 0x5897e3
mov eax, dword [ebp - 0x20]
add eax, dword [ebp - 0x28]
sar eax, 1
jns 0x5896ea
adc eax, 0
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov ecx, dword [ebp - 0x1c]
add ecx, dword [ebp - 0x24]
sar ecx, 1
jns 0x589704
adc ecx, 0
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x58971f
mov eax, dword [ebp + 8]
mov dword [eax], 3
mov eax, dword [ebp + 8]
cmp dword [eax], 3
je 0x589780
mov eax, dword [ebp - 0x20]
add eax, dword [ebp - 0x28]
sar eax, 1
jns 0x589734
adc eax, 0
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x1c]
cdq
xor eax, edx
sub eax, edx
test eax, eax
jns 0x589753
add eax, 3
sar eax, 2
mov ecx, dword [ebp - 0x1c]
add ecx, dword [ebp - 0x24]
sar ecx, 1
jns 0x589763
adc ecx, 0
sub ecx, eax
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x589780
mov eax, dword [ebp + 8]
mov dword [eax], 3
mov eax, dword [ebp + 8]
cmp dword [eax], 3
je 0x5897e3
mov eax, dword [ebp - 0x20]
add eax, dword [ebp - 0x28]
sar eax, 1
jns 0x589795
adc eax, 0
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x1c]
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
test ecx, ecx
jns 0x5897b6
add ecx, 3
sar ecx, 2
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x24]
sar eax, 1
jns 0x5897c6
adc eax, 0
add ecx, eax
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x5897e3
mov eax, dword [ebp + 8]
mov dword [eax], 3
mov eax, dword [ebp + 8]
cmp dword [eax], 3
je 0x5897f7
mov eax, dword [ebp + 8]
cmp dword [eax], 0
jne 0x5898fd
mov eax, dword [ebp - 0x80]
cmp byte [eax + 0x10], 1
jne 0x5898fd
mov eax, dword [ebp - 0x80]
cmp dword [eax + 0x198], 0xc8
je 0x5898fd
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x48]
mov eax, dword [ebp - 4]
mov edx, eax
mov eax, dword [ebp - 8]
call fcn.00588078
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 8]
call fcn.0061d3f4
add eax, dword [ebp - 0x5c]
push eax
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 8]
call fcn.0061d2f0
add eax, dword [ebp - 0x5c]
lea ecx, [ebp - 0x88]
pop edx
call fcn.0041d20c
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x44], eax
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 8]
call fcn.0061d3f4
add eax, dword [ebp - 0x5c]
push eax
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 8]
call fcn.0061d2f0
add eax, dword [ebp - 0x5c]
lea ecx, [ebp - 0x88]
pop edx
call fcn.0041d20c
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x44]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x5898cf
mov eax, dword [ebp + 8]
mov dword [eax], 0x10
mov eax, dword [ebp - 0x4c]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov eax, dword [ebp - 0x80]
mov dl, byte [eax + 0x10]
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 8]
call fcn.00578d74
test al, al
je 0x5898fd
mov eax, dword [ebp + 8]
mov dword [eax], 0x11
mov eax, dword [ebp + 8]
cmp dword [eax], 0
je 0x58990d
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
jmp 0x589919
inc dword [ebp - 0x18]
dec dword [ebp - 0x7c]
jne 0x588850
mov eax, dword [ebp - 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4