Function at 0x57f4b4
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff84
push esi
xor ecx, ecx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x580115
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.00485e50
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 0
je 0x57f50b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x20]
mov edx, dword [ebp - 8]
mov si, 0xfff6
call fcn.00403bb0
mov eax, dword [0x5ab6c4]
cmp dword [eax], 0
je 0x5800e2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x20]
mov edx, dword [0x5ab4b4]
cmp eax, dword [edx]
jne 0x5800e2
mov eax, dword [0x5ac38c]
cmp byte [eax], 0
je 0x57f62d
mov eax, dword [0x5ac0c4]
mov eax, dword [eax]
cmp dword [eax + 8], 0
jle 0x57f62d
mov eax, dword [0x5ac0c4]
mov eax, dword [eax]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x57f62d
inc eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x10], 0
mov eax, dword [0x5ac0c4]
mov eax, dword [eax]
mov edx, dword [ebp - 0x10]
call fcn.0041b11c
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x57f621
mov eax, dword [0x5abc1c]
cmp byte [eax], 0
je 0x57f5ad
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x10]
call fcn.004b79dc
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
je 0x57f5ad
mov eax, dword [ebp - 0x28]
cmp byte [eax + 5], 0
je 0x57f621
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
mov eax, dword [0x5ab4b4]
mov eax, dword [eax]
call fcn.004cdd18
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x24]
sub eax, dword [edx]
cdq
xor eax, edx
sub eax, edx
cmp eax, 9
jge 0x57f621
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x24]
sub eax, dword [edx + 4]
cdq
xor eax, edx
sub eax, edx
cmp eax, 7
jge 0x57f621
push 0xf0caa6
push 0
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x10]
push eax
mov ecx, dword [ebp - 0x30]
sub ecx, 0x14
mov edx, dword [ebp - 0x2c]
sub edx, 0x10
mov eax, dword [ebp - 8]
call fcn.00508508
inc dword [ebp - 0x10]
dec dword [ebp - 0x3c]
jne 0x57f56a
mov eax, dword [0x5ab4b4]
mov eax, dword [eax]
mov eax, dword [eax + 0x40]
cmp dword [eax + 8], 0
jle 0x57fb0e
mov eax, dword [0x5ab4b4]
mov eax, dword [eax]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x57fb0e
inc eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x10], 0
mov eax, dword [0x5ab4b4]
mov eax, dword [eax]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp - 0x10]
call fcn.0041b11c
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x5b], 1
jle 0x57f841
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x2c], 0
jne 0x57f841
mov eax, dword [0x5ac0d0]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x14]
jne 0x57f772
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov edx, dword [0x5ac0d0]
mov edx, dword [edx]
sub eax, dword [edx + 8]
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jg 0x57f841
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov edx, dword [0x5ac0d0]
mov edx, dword [edx]
sub eax, dword [edx + 0xc]
cdq
xor eax, edx
sub eax, edx
cmp eax, 7
jg 0x57f841
lea edx, [ebp - 0x54]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x53]
call fcn.0040959c
push dword [ebp - 0x54]
push 0x58012c
lea edx, [ebp - 0x58]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x5b]
call fcn.0040959c
push dword [ebp - 0x58]
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.00404b08
push 0xffffff
push 0
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [0x5abad8]
mov eax, dword [eax]
call fcn.00469d4c
mov edx, dword [ebp - 0x20]
call fcn.004284f0
sar eax, 1
jns 0x57f741
adc eax, 0
mov edx, dword [ebp - 0x14]
mov edx, dword [edx + 0xd4]
sub edx, eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0xd8]
sub ecx, 0x16
mov eax, dword [ebp - 8]
call fcn.00508508
mov eax, dword [ebp - 8]
call fcn.00486030
call fcn.00484e10
jmp 0x57f841
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x12], 0x32
je 0x57f841
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x14]
sub eax, dword [edx + 8]
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jg 0x57f841
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x14]
sub eax, dword [edx + 0xc]
cdq
xor eax, edx
sub eax, edx
cmp eax, 7
jg 0x57f841
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x53]
call fcn.0040959c
push dword [ebp - 0x5c]
push 0x58012c
lea edx, [ebp - 0x60]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x5b]
call fcn.0040959c
push dword [ebp - 0x60]
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.00404b08
push 0xffffff
push 0
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [0x5abad8]
mov eax, dword [eax]
call fcn.00469d4c
mov edx, dword [ebp - 0x20]
call fcn.004284f0
sar eax, 1
jns 0x57f815
adc eax, 0
mov edx, dword [ebp - 0x14]
mov edx, dword [edx + 0xd4]
sub edx, eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0xd8]
sub ecx, 0x16
mov eax, dword [ebp - 8]
call fcn.00508508
mov eax, dword [ebp - 8]
call fcn.00486030
call fcn.00484e10
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x2c], 0
jne 0x57fb02
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x14]
sub eax, dword [edx + 8]
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jg 0x57fb02
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x14]
sub eax, dword [edx + 0xc]
cdq
xor eax, edx
sub eax, edx
cmp eax, 7
jg 0x57fb02
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x12], 0x32
jne 0x57f8c3
mov eax, dword [ebp - 0x14]
mov ax, word [eax + 0x1a]
add eax, 0xffffffe0
cmp ax, 0x57
ja 0x57f8ad
and eax, 0x7f
bt dword [0x580130], eax
jb 0x57fb02
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x33c], 0
jne 0x57fb02
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x12], 0x5f
je 0x57fb02
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x199], 0
je 0x57f8ff
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x14]
sub eax, dword [edx + 0x19c]
mov edx, dword [ebp - 0x14]
cmp eax, dword [edx + 0x1a0]
jbe 0x57f8ff
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x199], 0
mov eax, dword [0x5ac220]
mov eax, dword [eax]
xor edx, edx
call fcn.00492fa8
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x57f9ad
lea edx, [ebp - 0x70]
mov eax, dword [ebp - 0x1c]
call fcn.00486068
lea eax, [ebp - 0x70]
push eax
mov eax, dword [ebp - 0x1c]
push eax
push 1
mov eax, dword [ebp - 0x1c]
call fcn.004862c8
sar eax, 1
jns 0x57f93e
adc eax, 0
mov edx, dword [ebp - 0x14]
mov edx, dword [edx + 0xd4]
sub edx, eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0xd8]
sub ecx, 0xa
mov eax, dword [ebp - 8]
call fcn.004858d4
mov eax, dword [ebp - 0x14]
cmp word [eax + 0x262], 0
jbe 0x57f9ad
lea edx, [ebp - 0x70]
mov eax, dword [ebp - 0x1c]
call fcn.00486068
lea eax, [ebp - 0x70]
push eax
mov eax, dword [ebp - 0x1c]
push eax
push 1
mov eax, dword [ebp - 0x1c]
call fcn.004862c8
sar eax, 1
jns 0x57f98e
adc eax, 0
mov edx, dword [ebp - 0x14]
mov edx, dword [edx + 0xd4]
sub edx, eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0xd8]
sub ecx, 7
mov eax, dword [ebp - 8]
call fcn.004858d4
mov eax, dword [ebp - 0x14]
mov al, byte [eax + 0x12]
sub al, 0xc
je 0x57f9bf
sub al, 0xc
je 0x57f9bf
sub al, 0x1a
jne 0x57f9d2
mov eax, dword [0x5ac368]
mov eax, dword [eax]
xor edx, edx
call fcn.00492fa8
mov dword [ebp - 0x1c], eax
jmp 0x57f9e6
mov eax, dword [0x5ac220]
mov eax, dword [eax]
mov edx, 1
call fcn.00492fa8
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x57fa5c
lea edx, [ebp - 0x50]
mov eax, dword [ebp - 0x1c]
call fcn.00486068
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0x5b], 0
jle 0x57fa24
mov eax, dword [ebp - 0x48]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x74], eax
fild dword [ebp - 0x74]
mov eax, dword [ebp - 0x14]
fild dword [eax + 0x5b]
fdivp st(1)
mov eax, dword [ebp - 0x14]
fild dword [eax + 0x53]
fmulp st(1)
call fcn.00402c48
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x50]
push eax
mov eax, dword [ebp - 0x1c]
push eax
push 1
mov eax, dword [ebp - 0x1c]
call fcn.004862c8
sar eax, 1
jns 0x57fa3d
adc eax, 0
mov edx, dword [ebp - 0x14]
mov edx, dword [edx + 0xd4]
sub edx, eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0xd8]
sub ecx, 0xa
mov eax, dword [ebp - 8]
call fcn.004858d4
mov eax, dword [ebp - 0x14]
cmp word [eax + 0x262], 0
jbe 0x57fb02
mov eax, dword [0x5ac368]
mov eax, dword [eax]
mov edx, 9
call fcn.00492fa8
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x57fb02
lea edx, [ebp - 0x50]
mov eax, dword [ebp - 0x1c]
call fcn.00486068
mov eax, dword [ebp - 0x48]
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x74], eax
fild dword [ebp - 0x74]
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0x262]
mov dword [ebp - 0x78], eax
fild dword [ebp - 0x78]
fdivp st(1)
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 0x260]
mov dword [ebp - 0x7c], eax
fild dword [ebp - 0x7c]
fmulp st(1)
call fcn.00402c48
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x50]
push eax
mov eax, dword [ebp - 0x1c]
push eax
push 0
mov eax, dword [ebp - 0x1c]
call fcn.004862c8
sar eax, 1
jns 0x57fae3
adc eax, 0
mov edx, dword [ebp - 0x14]
mov edx, dword [edx + 0xd4]
sub edx, eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0xd8]
sub ecx, 7
mov eax, dword [ebp - 8]
call fcn.004858d4
inc dword [ebp - 0x10]
dec dword [ebp - 0x3c]
jne 0x57f662
mov eax, dword [0x5abc68]
cmp byte [eax], 0
je 0x57fc8e
mov eax, dword [0x5ab4b4]
mov eax, dword [eax]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x57fc8e
inc eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x10], 0
mov eax, dword [0x5ab4b4]
mov eax, dword [eax]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp - 0x10]
call fcn.0041b11c
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x57fc82
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x2c], 0
jne 0x57fc82
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0xd4], 0
je 0x57fc82
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0xd8], 0
je 0x57fc82
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x12], 0
je 0x57fbb1
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x12], 1
je 0x57fbb1
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x12], 0x96
je 0x57fbb1
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x12], 0x32
jne 0x57fc82
mov eax, dword [0x5ab828]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x14]
je 0x57fc82
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x14]
sub eax, dword [edx + 8]
cdq
xor eax, edx
sub eax, edx
cmp eax, 9
jge 0x57fc82
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x14]
sub eax, dword [edx + 0xc]
cdq
xor eax, edx
sub eax, edx
cmp eax, 7
jge 0x57fc82
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x12], 0x32
jne 0x57fc2e
mov eax, dword [ebp - 0x14]
mov ax, word [eax + 0x1a]
add eax, 0xffffffe0
cmp ax, 0x3f
ja 0x57fc20
and eax, 0x7f
bt dword [0x58013c], eax
jb 0x57fc82
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x33c], 0
jne 0x57fc82
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x14]
jne 0x57fc44
mov eax, dword [0x5ab774]
cmp byte [eax], 0
jne 0x57fc82
lea eax, [ebp - 0x18]
mov edx, dword [ebp - 0x14]
mov edx, dword [edx + 0x34]
call fcn.00404820
push ebp
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xd8]
add eax, 0x1e
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x38]
push eax
push 0
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0xd4]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x14]
call fcn.0057f394
pop ecx
inc dword [ebp - 0x10]
dec dword [ebp - 0x3c]
jne 0x57fb3d
mov eax, dword [ebp - 8]
call fcn.00486030
call fcn.00484e10
mov eax, dword [0x5ab828]
cmp dword [eax], 0
je 0x57fdb4
mov edx, dword [0x5ab828]
mov edx, dword [edx]
mov eax, dword [0x5ab4b4]
mov eax, dword [eax]
call fcn.004ce898
test al, al
je 0x57fdb4
mov eax, dword [0x5ab828]
mov eax, dword [eax]
cmp byte [eax + 0x12], 0x32
jne 0x57fd4e
mov eax, dword [0x5ab828]
mov eax, dword [eax]
cmp byte [eax + 0x33c], 0
jne 0x57fdb4
mov eax, dword [0x5ab828]
mov eax, dword [eax]
push dword [eax + 0x30]
push 0x58014c
mov eax, dword [0x5ab828]
mov eax, dword [eax]
push dword [eax + 0x34]
lea eax, [ebp - 0x18]
mov edx, 3
call fcn.00404b08
push ebp
mov eax, dword [0x5ab828]
mov eax, dword [eax]
mov eax, dword [eax + 0xd8]
add eax, 0x1e
push eax
mov eax, dword [0x5ab828]
mov eax, dword [eax]
mov eax, dword [eax + 0x38]
push eax
push 0
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [0x5ab828]
mov eax, dword [eax]
mov ecx, dword [eax + 0xd4]
mov eax, dword [0x5ab828]
mov eax, dword [eax]
mov edx, dword [ebp - 8]
call fcn.0057f394
pop ecx
jmp 0x57fdb4
mov eax, dword [0x5ab828]
mov eax, dword [eax]
push dword [eax + 0x30]
push 0x58014c
mov eax, dword [0x5ab828]
mov eax, dword [eax]
push dword [eax + 0x34]
lea eax, [ebp - 0x18]
mov edx, 3
call fcn.00404b08
push ebp
mov eax, dword [0x5ab828]
mov eax, dword [eax]
mov eax, dword [eax + 0xd8]
add eax, 0x1e
push eax
mov eax, dword [0x5ab828]
mov eax, dword [eax]
mov eax, dword [eax + 0x38]
push eax
push 0
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [0x5ab828]
mov eax, dword [eax]
mov ecx, dword [eax + 0xd4]
mov eax, dword [0x5ab828]
mov eax, dword [eax]
mov edx, dword [ebp - 8]
call fcn.0057f394
pop ecx
mov eax, dword [0x5ab774]
cmp byte [eax], 0
je 0x57fe24
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
push dword [eax + 0x30]
push 0x58014c
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
push dword [eax + 0x34]
lea eax, [ebp - 0x18]
mov edx, 3
call fcn.00404b08
push ebp
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 0xd8]
add eax, 0x1e
push eax
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov eax, dword [eax + 0x38]
push eax
push 0
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov ecx, dword [eax + 0xd4]
mov eax, dword [0x5ab6c4]
mov eax, dword [eax]
mov edx, dword [ebp - 8]
call fcn.0057f394
pop ecx
mov eax, dword [0x5ab4b4]
mov eax, dword [eax]
mov eax, dword [eax + 0x40]
cmp dword [eax + 8], 0
jle 0x58002d
mov eax, dword [0x5ab4b4]
mov eax, dword [eax]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x58002d
inc eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x10], 0
mov eax, dword [0x5ab4b4]
mov eax, dword [eax]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp - 0x10]
call fcn.0041b11c
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x270], 0
je 0x57feed
mov dword [ebp - 0x38], 0x30
push 0x580158
mov eax, dword [ebp - 0x14]
push dword [eax + 0x34]
push 0x580164
lea eax, [ebp - 0x34]
mov edx, 3
call fcn.00404b08
mov cl, 0xad
mov dl, 0xd7
mov al, 0xef
call fcn.00407908
push eax
push 0
mov eax, dword [ebp - 0x34]
push eax
mov eax, dword [0x5abad8]
mov eax, dword [eax]
call fcn.00469d4c
mov edx, dword [ebp - 0x34]
call fcn.004284f0
sar eax, 1
jns 0x57fecb
adc eax, 0
mov edx, dword [ebp - 0x14]
mov edx, dword [edx + 0xd4]
sub edx, eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0xd8]
add ecx, dword [ebp - 0x38]
sub ecx, 0xa
mov eax, dword [ebp - 8]
call fcn.00508508
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0xa8], 0
je 0x580014
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 0x14]
sub eax, dword [edx + 0xd0]
cmp eax, 0xfa0
jae 0x580014
mov eax, dword [ebp - 0x14]
cmp dword [eax + 0xdc], 0
jle 0x580021
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xdc]
dec eax
test eax, eax
jl 0x580021
inc eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0xc], 0
mov eax, dword [ebp - 0x14]
cmp byte [eax + 0x2c], 0
je 0x57ffaa
push 0x808080
push 0
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + eax*4 + 0xa8]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xdc]
shl eax, 4
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0xd8]
sub ecx, eax
imul eax, dword [ebp - 0xc], 0xe
add ecx, eax
sub ecx, 0x14
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + eax*4 + 0xbc]
sar eax, 1
jns 0x57ff95
adc eax, 0
mov edx, dword [ebp - 0x14]
mov edx, dword [edx + 0xd4]
sub edx, eax
mov eax, dword [ebp - 8]
call fcn.00508508
jmp 0x580006
push 0xffffff
push 0
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + eax*4 + 0xa8]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xdc]
shl eax, 4
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0xd8]
sub ecx, eax
imul eax, dword [ebp - 0xc], 0xe
add ecx, eax
sub ecx, 0x14
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + eax*4 + 0xbc]
sar eax, 1
jns 0x57fff3
adc eax, 0
mov edx, dword [ebp - 0x14]
mov edx, dword [edx + 0xd4]
sub edx, eax
mov eax, dword [ebp - 8]
call fcn.00508508
inc dword [ebp - 0xc]
dec dword [ebp - 0x40]
jne 0x57ff43
jmp 0x580021
mov eax, dword [ebp - 0x14]
add eax, 0xa8
call fcn.00404788
inc dword [ebp - 0x10]
dec dword [ebp - 0x3c]
jne 0x57fe59
mov eax, dword [0x5ac364]
test byte [eax], 4
je 0x58004f
push 0xffffff
push 0
push 0x580178
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.00508508
mov eax, dword [ebp - 8]
call fcn.00486030
call fcn.00484e10
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [0x5ac364]
cmp dword [eax], 0
je 0x5800c1
mov edx, dword [0x5ac364]
mov edx, dword [edx]
add edx, 0x96
dec edx
mov eax, dword [0x5aba48]
mov eax, dword [eax]
call fcn.00492fa8
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x5800c1
mov eax, dword [ebp - 0x1c]
call fcn.004862c8
add dword [ebp - 0x10], eax
lea edx, [ebp - 0x70]
mov eax, dword [ebp - 0x1c]
call fcn.00486068
lea eax, [ebp - 0x70]
push eax
mov eax, dword [ebp - 0x1c]
push eax
push 1
mov edx, 0x320
sub edx, dword [ebp - 0x10]
xor ecx, ecx
mov eax, dword [ebp - 8]
call fcn.004858d4
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00580454
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00580ba0
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.005805c4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x58011c
lea eax, [ebp - 0x60]
mov edx, 4
call fcn.004047ac
lea eax, [ebp - 0x34]
call fcn.00404788
lea eax, [ebp - 0x20]
call fcn.00404788
lea eax, [ebp - 0x18]
call fcn.00404788
ret