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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff58
push ebx
push esi
push edi
mov byte [ebp - 0x25], cl
mov dword [ebp - 0x24], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x118]
test al, al
je 0x5ba970
mov byte [ebp - 0x55], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x518]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x5ba2c3
inc eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x518]
mov edx, dword [ebp - 0x2c]
call fcn.0041d8a0
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x7c]
cmp byte [eax + 0x30], 0
je 0x5ba2b7
mov eax, dword [ebp - 0x7c]
cmp byte [eax + 0x10], 0
je 0x5b94a8
mov byte [ebp - 0x55], 1
mov eax, dword [ebp - 0x7c]
cmp byte [eax + 0x10], 0
je 0x5b951f
mov eax, dword [ebp - 4]
cmp byte [eax + 0x478], 0
jne 0x5b951f
mov eax, dword [ebp - 4]
cmp byte [eax + 0x476], 0
jne 0x5b951f
mov eax, dword [ebp - 4]
cmp byte [eax + 0x479], 0
jne 0x5b951f
mov eax, dword [ebp - 0x24]
mov edx, dword [0x43d728]
call fcn.00403eb0
test al, al
je 0x5b951f
mov eax, dword [ebp - 4]
cmp byte [eax + 0x47a], 0
jne 0x5b951f
mov eax, dword [ebp - 4]
cmp dword [eax + 0x640], 0
jge 0x5b951f
mov eax, dword [ebp - 0x7c]
inc dword [eax + 0x14]
mov eax, dword [ebp - 0x7c]
cmp dword [eax + 0x14], 0xa
jl 0x5b9516
mov eax, dword [ebp - 0x7c]
xor edx, edx
mov dword [eax + 0x14], edx
mov eax, dword [ebp - 4]
inc dword [eax + 0x294]
lea edx, [ebp - 0x98]
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 0x1c]
call fcn.0042a650
cmp dword [ebp - 0x98], 0
jne 0x5b9554
cmp dword [ebp - 0x94], 0
jne 0x5b9554
cmp dword [ebp - 0x90], 0
jne 0x5b9554
cmp dword [ebp - 0x8c], 0
je 0x5b9558
xor eax, eax
jmp 0x5b955a
mov al, 1
test al, al
jne 0x5ba2b7
mov eax, dword [ebp - 4]
cmp dword [eax + 0x418], 0
jne 0x5ba2b7
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 0x1c]
cmp dword [eax + 0x50], 0
je 0x5b9588
cmp byte [ebp - 0x25], 0
jne 0x5ba2b7
mov eax, dword [ebp - 4]
cmp byte [eax + 0x506], 0
jne 0x5ba2b7
mov eax, dword [ebp - 0x7c]
cmp byte [eax + 0x31], 0
je 0x5b99b3
mov eax, dword [ebp - 0x7c]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
call fcn.005be16c
test al, al
je 0x5b99b3
mov eax, dword [ebp - 4]
cmp byte [eax + 0x478], 0
jne 0x5b99b3
mov eax, dword [ebp - 4]
cmp dword [eax + 0x640], 0xffffffff
jne 0x5b99b3
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x80], eax
xor edx, edx
push ebp
push 0x5b99ac
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x670b7c]
cmp byte [eax], 0
je 0x5b967a
mov eax, dword [ebp - 0x80]
call fcn.0042a674
mov ecx, eax
mov dl, 1
mov eax, dword [0x4adab8]
call fcn.004ae30c
mov dword [ebp - 0x18], eax
push 0x3f800000
mov eax, dword [0x67144c]
mov eax, dword [eax]
call fcn.005c3200
mov ecx, eax
mov dl, 1
mov eax, dword [0x4ad9ac]
call fcn.004ade54
mov dword [ebp - 0x20], eax
mov eax, 0xffffff
call fcn.005c3200
mov ecx, eax
mov dl, 1
mov eax, dword [0x4ad8e4]
call fcn.004ae154
mov dword [ebp - 0x1c], eax
mov edx, dword [0x671620]
mov edx, dword [edx]
mov eax, dword [ebp - 0x18]
call fcn.004ae3ac
mov eax, dword [0x67178c]
fld qword [eax]
add esp, 0xfffffffc
fstp dword [esp]
wait
mov eax, dword [ebp - 0x20]
call fcn.004adf30
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x4f4]
mov eax, dword [ebp - 0x80]
mov eax, dword [eax + 0x14]
call fcn.00429df8
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4f0]
mov eax, dword [ebp - 0x80]
mov eax, dword [eax + 0x14]
call fcn.00429cdc
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4ec]
mov eax, dword [ebp - 0x80]
mov eax, dword [eax + 0x10]
call fcn.004299fc
mov dword [ebp - 0x48], 0x989680
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x54], 0xfff0bdc0
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 4]
dec eax
test eax, eax
jl 0x5b97c5
inc eax
mov dword [ebp - 0x84], eax
xor ebx, ebx
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov eax, dword [eax + ebx*8]
cmp eax, 0xfffff
je 0x5b97b8
mov edx, dword [ebp - 0x7c]
mov edx, dword [edx]
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.005b372c
mov esi, eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov edx, dword [eax + ebx*8 + 4]
mov eax, dword [ebp - 4]
call fcn.005b38d0
mov edi, eax
mov eax, dword [ebp - 0x7c]
cmp dword [eax + 4], 4
jne 0x5b973e
cmp ebx, 1
je 0x5b9732
cmp ebx, 2
jne 0x5b9733
dec esi
cmp ebx, 2
je 0x5b973d
cmp ebx, 3
jne 0x5b973e
dec edi
mov eax, dword [0x670b7c]
cmp byte [eax], 0
je 0x5b9771
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4f8]
mov edx, eax
add edx, edi
push edx
mov edx, edi
sub edx, eax
inc edx
push edx
mov edx, esi
sub edx, eax
inc edx
mov ecx, eax
add ecx, esi
mov eax, edx
pop edx
call fcn.005b93d4
pop ecx
jmp 0x5b9798
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4f8]
mov edx, eax
add edx, esi
push edx
mov edx, eax
add edx, edi
push edx
mov edx, edi
sub edx, eax
inc edx
push edx
mov edx, esi
sub edx, eax
inc edx
mov eax, dword [ebp - 0x80]
pop ecx
call fcn.0042a2cc
cmp esi, dword [ebp - 0x48]
jge 0x5b97a0
mov dword [ebp - 0x48], esi
cmp edi, dword [ebp - 0x4c]
jge 0x5b97a8
mov dword [ebp - 0x4c], edi
cmp esi, dword [ebp - 0x50]
jle 0x5b97b0
mov dword [ebp - 0x50], esi
cmp edi, dword [ebp - 0x54]
jle 0x5b97b8
mov dword [ebp - 0x54], edi
inc ebx
dec dword [ebp - 0x84]
jne 0x5b96e8
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4fc], 0
je 0x5b997c
mov esi, dword [ebp - 0x50]
add esi, dword [ebp - 0x48]
sar esi, 1
jns 0x5b97e2
adc esi, 0
mov edi, dword [ebp - 0x54]
add edi, dword [ebp - 0x4c]
sar edi, 1
jns 0x5b97ef
adc edi, 0
mov eax, dword [0x670b7c]
cmp byte [eax], 0
je 0x5b9894
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4f8]
mov edx, eax
add edx, dword [ebp - 0x4c]
push edx
mov edx, dword [ebp - 0x4c]
sub edx, eax
inc edx
mov ecx, esi
sub ecx, eax
inc ecx
add eax, esi
xchg ecx, eax
call fcn.005b93d4
pop ecx
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4f8]
mov edx, eax
add edx, edi
push edx
mov edx, edi
sub edx, eax
inc edx
mov ecx, dword [ebp - 0x48]
sub ecx, eax
inc ecx
add eax, dword [ebp - 0x48]
xchg ecx, eax
call fcn.005b93d4
pop ecx
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4f8]
mov edx, eax
add edx, edi
push edx
mov edx, edi
sub edx, eax
inc edx
mov ecx, dword [ebp - 0x50]
sub ecx, eax
inc ecx
add eax, dword [ebp - 0x50]
xchg ecx, eax
call fcn.005b93d4
pop ecx
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4f8]
mov edx, eax
add edx, dword [ebp - 0x54]
push edx
mov edx, dword [ebp - 0x54]
sub edx, eax
inc edx
mov ecx, esi
sub ecx, eax
inc ecx
add esi, eax
mov eax, esi
xchg ecx, eax
call fcn.005b93d4
pop ecx
jmp 0x5b997c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4f8]
add eax, esi
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4f8]
add eax, dword [ebp - 0x4c]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x4c]
sub ecx, dword [eax + 0x4f8]
inc ecx
mov eax, dword [ebp - 4]
mov edx, esi
sub edx, dword [eax + 0x4f8]
inc edx
mov eax, dword [ebp - 0x80]
call fcn.0042a2cc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4f8]
add eax, dword [ebp - 0x48]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4f8]
add eax, edi
push eax
mov eax, dword [ebp - 4]
mov ecx, edi
sub ecx, dword [eax + 0x4f8]
inc ecx
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x48]
sub edx, dword [eax + 0x4f8]
inc edx
mov eax, dword [ebp - 0x80]
call fcn.0042a2cc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4f8]
add eax, dword [ebp - 0x50]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4f8]
add eax, edi
push eax
mov eax, dword [ebp - 4]
mov ecx, edi
sub ecx, dword [eax + 0x4f8]
inc ecx
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x50]
sub edx, dword [eax + 0x4f8]
inc edx
mov eax, dword [ebp - 0x80]
call fcn.0042a2cc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4f8]
add eax, esi
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4f8]
add eax, dword [ebp - 0x54]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x54]
sub ecx, dword [eax + 0x4f8]
inc ecx
mov eax, dword [ebp - 4]
mov edx, esi
sub edx, dword [eax + 0x4f8]
inc edx
mov eax, dword [ebp - 0x80]
call fcn.0042a2cc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5b99b3
mov eax, dword [0x670b7c]
cmp byte [eax], 0
je 0x5b99ab
mov eax, dword [ebp - 0x18]
call fcn.00403d24
mov eax, dword [ebp - 0x20]
call fcn.00403d24
mov eax, dword [ebp - 0x1c]
call fcn.00403d24
ret
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4a4]
cmp eax, dword [ebp - 0x30]
jne 0x5b9eab
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d8]
call fcn.0059b3bc
test al, al
jne 0x5b9eab
mov eax, dword [ebp - 4]
cmp byte [eax + 0x47a], 0
jne 0x5b9eab
mov eax, dword [ebp - 4]
cmp byte [eax + 0x478], 0
jne 0x5b9eab
mov eax, dword [ebp - 4]
cmp byte [eax + 0x479], 0
jne 0x5b9eab
mov eax, dword [ebp - 4]
cmp byte [eax + 0x476], 0
jne 0x5b9eab
mov eax, dword [ebp - 4]
cmp byte [eax + 0x63f], 0
jne 0x5b9eab
mov eax, dword [ebp - 4]
cmp byte [eax + 0x2b8], 0
je 0x5b9a47
mov eax, dword [ebp - 4]
cmp dword [eax + 0x3e0], 0
jne 0x5ba2b7
call sub.kernel32.dll_GetTickCount
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x7c]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
call fcn.005be16c
test al, al
je 0x5b9d7c
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0x10]
mov dl, 4
call fcn.00429abc
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.005b372c
mov ebx, eax
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.005b38d0
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov edx, dword [eax]
mov eax, dword [ebp - 4]
call fcn.005b372c
mov edx, eax
mov eax, ebx
call fcn.0055e92c
mov esi, eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 4]
call fcn.005b38d0
mov edx, eax
mov eax, dword [ebp - 0x34]
call fcn.0055e92c
mov edi, eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 4]
call fcn.005b372c
mov edx, eax
dec edx
mov eax, ebx
call fcn.0055e92c
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov edx, dword [eax + 0x14]
mov eax, dword [ebp - 4]
call fcn.005b38d0
mov edx, eax
dec edx
mov eax, dword [ebp - 0x34]
call fcn.0055e92c
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x41c], 0
jle 0x5b9b2b
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x41c]
mov eax, dword [ebp - 4]
add edx, dword [eax + 0x348]
dec edx
mov eax, dword [ebp - 0x38]
call fcn.0055e934
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x420], 0
jle 0x5b9b55
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x420]
mov eax, dword [ebp - 4]
add edx, dword [eax + 0x34c]
dec edx
mov eax, dword [ebp - 0x3c]
call fcn.0055e934
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x558]
jne 0x5b9ba0
mov eax, dword [ebp - 4]
fld qword [eax + 0x3f8]
fcomp dword [0x5ba978]
fnstsw ax
sahf
je 0x5b9ba0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x434]
cmp eax, dword [ebp - 0x38]
jle 0x5b9ba0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x41c]
mov edx, dword [ebp - 4]
add eax, dword [edx + 0x348]
dec eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x55c]
jne 0x5b9beb
mov eax, dword [ebp - 4]
fld qword [eax + 0x3f8]
fcomp dword [0x5ba978]
fnstsw ax
sahf
je 0x5b9beb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x438]
cmp eax, dword [ebp - 0x3c]
jle 0x5b9beb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x420]
mov edx, dword [ebp - 4]
add eax, dword [edx + 0x34c]
dec eax
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x38]
mov eax, esi
call fcn.0055e934
mov esi, eax
mov edx, dword [ebp - 0x3c]
mov eax, edi
call fcn.0055e934
mov edi, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x41c]
sub eax, 0x1e
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x41c]
mov edx, dword [ebp - 4]
add eax, dword [edx + 0x48]
add eax, 0x1e
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x420]
sub eax, 0x1e
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x420]
mov edx, dword [ebp - 4]
add eax, dword [edx + 0x4c]
add eax, 0x1e
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x7c]
mov dword [edx + 0x18], eax
cmp edi, dword [ebp - 0x10]
jle 0x5b9c95
cmp edi, dword [ebp - 8]
jge 0x5b9c95
cmp esi, dword [ebp - 0xc]
jge 0x5b9c95
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x14]
jle 0x5b9c95
mov eax, dword [ebp - 0x30]
push eax
push 0x5b9228
push edi
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x38]
call fcn.0055e934
push eax
push edi
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.0055e92c
push eax
call sub.gdi32.dll_LineDDA
cmp esi, dword [ebp - 0x14]
jle 0x5b9cd3
cmp esi, dword [ebp - 0xc]
jge 0x5b9cd3
cmp edi, dword [ebp - 8]
jge 0x5b9cd3
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x10]
jle 0x5b9cd3
mov eax, dword [ebp - 0x30]
push eax
push 0x5b9228
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x3c]
call fcn.0055e934
push eax
push esi
mov edx, dword [ebp - 0x10]
mov eax, edi
call fcn.0055e92c
push eax
push esi
call sub.gdi32.dll_LineDDA
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x10]
jle 0x5b9d1d
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 8]
jge 0x5b9d1d
cmp esi, dword [ebp - 0xc]
jge 0x5b9d1d
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x14]
jle 0x5b9d1d
mov eax, dword [ebp - 0x30]
push eax
push 0x5b9228
mov eax, dword [ebp - 0x3c]
push eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x38]
call fcn.0055e934
push eax
mov eax, dword [ebp - 0x3c]
push eax
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.0055e92c
push eax
call sub.gdi32.dll_LineDDA
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x14]
jle 0x5b9e0c
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0xc]
jge 0x5b9e0c
cmp edi, dword [ebp - 8]
jge 0x5b9e0c
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x10]
jle 0x5b9e0c
mov eax, dword [ebp - 0x30]
push eax
push 0x5b9228
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x3c]
call fcn.0055e934
push eax
mov eax, dword [ebp - 0x38]
push eax
mov edx, dword [ebp - 0x10]
mov eax, edi
call fcn.0055e92c
push eax
mov eax, dword [ebp - 0x38]
push eax
call sub.gdi32.dll_LineDDA
jmp 0x5b9e0c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x420]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x33c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x340]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x344]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x294]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4e4]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4e8]
push eax
mov eax, dword [ebp - 4]
push dword [eax + 0x3fc]
push dword [eax + 0x3f8]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x41c]
mov eax, dword [ebp - 0x7c]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d8]
call fcn.0059a228
mov eax, dword [ebp - 4]
cmp dword [eax + 0xc], 0xa8
jne 0x5b9e7e
mov eax, dword [ebp - 0x7c]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
call fcn.005be16c
test al, al
je 0x5b9e7e
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 4]
call fcn.005b372c
dec eax
push eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov edx, dword [eax + 0x14]
mov eax, dword [ebp - 4]
call fcn.005b38d0
dec eax
push eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 4]
call fcn.005b38d0
push eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov edx, dword [eax]
mov eax, dword [ebp - 4]
call fcn.005b372c
mov edx, eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 0x1c]
pop ecx
call fcn.005b928c
call sub.kernel32.dll_GetTickCount
mov eax, dword [ebp - 4]
cmp dword [eax + 0x300], 0
jge 0x5ba2b7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x51c]
mov edx, 0xd2
call fcn.0043ebe8
jmp 0x5ba2b7
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x7c]
mov dword [edx + 0x18], eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0x10]
mov dl, 4
call fcn.00429abc
mov eax, dword [ebp - 0x7c]
cmp dword [eax + 4], 0
jle 0x5ba2b7
mov eax, dword [ebp - 0x7c]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
call fcn.005be16c
test al, al
je 0x5ba13c
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.005b372c
mov ebx, eax
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.005b38d0
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov edx, dword [eax]
mov eax, dword [ebp - 4]
call fcn.005b372c
mov edx, eax
mov eax, ebx
call fcn.0055e92c
mov esi, eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 4]
call fcn.005b38d0
mov edx, eax
mov eax, dword [ebp - 0x34]
call fcn.0055e92c
mov edi, eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 4]
call fcn.005b372c
mov edx, eax
dec edx
mov eax, ebx
call fcn.0055e92c
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov edx, dword [eax + 0x14]
mov eax, dword [ebp - 4]
call fcn.005b38d0
mov edx, eax
dec edx
mov eax, dword [ebp - 0x34]
call fcn.0055e92c
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x41c], 0
jle 0x5b9fa0
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x41c]
mov eax, dword [ebp - 4]
add edx, dword [eax + 0x348]
dec edx
mov eax, dword [ebp - 0x38]
call fcn.0055e934
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x420], 0
jle 0x5b9fca
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x420]
mov eax, dword [ebp - 4]
add edx, dword [eax + 0x34c]
dec edx
mov eax, dword [ebp - 0x3c]
call fcn.0055e934
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x558]
jne 0x5ba015
mov eax, dword [ebp - 4]
fld qword [eax + 0x3f8]
fcomp dword [0x5ba978]
fnstsw ax
sahf
je 0x5ba015
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x434]
cmp eax, dword [ebp - 0x38]
jle 0x5ba015
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x41c]
mov edx, dword [ebp - 4]
add eax, dword [edx + 0x348]
dec eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x55c]
jne 0x5ba060
mov eax, dword [ebp - 4]
fld qword [eax + 0x3f8]
fcomp dword [0x5ba978]
fnstsw ax
sahf
je 0x5ba060
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x438]
cmp eax, dword [ebp - 0x3c]
jle 0x5ba060
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x420]
mov edx, dword [ebp - 4]
add eax, dword [edx + 0x34c]
dec eax
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x38]
mov eax, esi
call fcn.0055e934
mov esi, eax
mov edx, dword [ebp - 0x3c]
mov eax, edi
call fcn.0055e934
mov edi, eax
cmp dword [ebp - 0x2c], 0
jne 0x5ba086
mov eax, dword [ebp - 0x7c]
xor edx, edx
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 0x30]
push eax
push 0x5b9228
push edi
mov eax, dword [ebp - 0x38]
push eax
push edi
push esi
call sub.gdi32.dll_LineDDA
cmp dword [ebp - 0x2c], 0
jne 0x5ba0a9
mov eax, dword [ebp - 0x7c]
xor edx, edx
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 0x30]
push eax
push 0x5b9228
mov eax, dword [ebp - 0x3c]
push eax
push esi
push edi
push esi
call sub.gdi32.dll_LineDDA
cmp dword [ebp - 0x2c], 0
jne 0x5ba0cc
mov eax, dword [ebp - 0x7c]
xor edx, edx
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 0x30]
push eax
push 0x5b9228
mov eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x3c]
push eax
push esi
call sub.gdi32.dll_LineDDA
cmp dword [ebp - 0x2c], 0
jne 0x5ba0f5
mov eax, dword [ebp - 0x7c]
xor edx, edx
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 0x30]
push eax
push 0x5b9228
mov eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x38]
push eax
push edi
mov eax, dword [ebp - 0x38]
push eax
call sub.gdi32.dll_LineDDA
mov eax, dword [ebp - 4]
cmp dword [eax + 0xc], 0xa8
jne 0x5ba2b7
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 0x1c]
mov ecx, edi
mov edx, esi
call fcn.005b928c
jmp 0x5ba2b7
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [ebp - 0x44], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x40], edx
mov ebx, 1
jmp 0x5ba239
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
cmp dword [eax + ebx*8], 0xfffff
jne 0x5ba1d3
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov edx, dword [eax + ebx*8 - 8]
mov eax, dword [ebp - 4]
call fcn.005b372c
mov esi, eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov edx, dword [eax + ebx*8 - 4]
mov eax, dword [ebp - 4]
call fcn.005b38d0
mov edi, eax
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 4]
call fcn.005b372c
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 4]
call fcn.005b38d0
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x30]
push eax
push 0x5b9228
mov eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x38]
push eax
push edi
push esi
call sub.gdi32.dll_LineDDA
inc ebx
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov edx, dword [eax + ebx*8]
mov dword [ebp - 0x44], edx
mov edx, dword [eax + ebx*8 + 4]
mov dword [ebp - 0x40], edx
jmp 0x5ba238
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov edx, dword [eax + ebx*8 - 8]
mov eax, dword [ebp - 4]
call fcn.005b372c
mov esi, eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov edx, dword [eax + ebx*8 - 4]
mov eax, dword [ebp - 4]
call fcn.005b38d0
mov edi, eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov edx, dword [eax + ebx*8]
mov eax, dword [ebp - 4]
call fcn.005b372c
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov edx, dword [eax + ebx*8 + 4]
mov eax, dword [ebp - 4]
call fcn.005b38d0
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x30]
push eax
push 0x5b9228
mov eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x38]
push eax
push edi
push esi
call sub.gdi32.dll_LineDDA
inc ebx
mov eax, dword [ebp - 0x7c]
cmp ebx, dword [eax + 4]
jl 0x5ba156
mov eax, dword [ebp - 4]
cmp byte [eax + 0x476], 0
jne 0x5ba2b7
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x7c]
mov edx, dword [edx]
mov edx, dword [edx + eax*8 - 8]
mov eax, dword [ebp - 4]
call fcn.005b372c
mov esi, eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x7c]
mov edx, dword [edx]
mov edx, dword [edx + eax*8 - 4]
mov eax, dword [ebp - 4]
call fcn.005b38d0
mov edi, eax
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 4]
call fcn.005b372c
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 4]
call fcn.005b38d0
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x30]
push eax
push 0x5b9228
mov eax, dword [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0x38]
push eax
push edi
push esi
call sub.gdi32.dll_LineDDA
inc dword [ebp - 0x2c]
dec dword [ebp - 0x78]
jne 0x5b9474
mov eax, dword [ebp - 4]
cmp dword [eax + 0x3dc], 0
jne 0x5ba2f3
mov eax, dword [ebp - 4]
cmp dword [eax + 0x3e0], 0
jne 0x5ba2f3
cmp byte [ebp - 0x55], 0
jne 0x5ba2f3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x51c]
xor edx, edx
call fcn.0043ebd8
jmp 0x5ba312
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x51c]
cmp byte [eax + 0x40], 0
jne 0x5ba312
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x51c]
mov dl, 1
call fcn.0043ebd8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3dc]
test eax, eax
jle 0x5ba95b
cmp eax, 2
jle 0x5ba340
mov eax, dword [ebp - 4]
mov byte [eax + 0x62c], 1
mov eax, dword [ebp - 4]
dec dword [eax + 0x3dc]
jmp 0x5ba900
cmp eax, 2
jne 0x5ba851
mov eax, dword [ebp - 4]
mov byte [eax + 0x62c], 1
mov eax, dword [ebp - 4]
cmp byte [eax + 0x62d], 0
je 0x5ba900
mov eax, dword [ebp - 4]
cmp byte [eax + 0x5fd], 0
je 0x5ba468
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [eax]
call dword [edx + 0x10]
cmp al, 5
jne 0x5ba468
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0xd0]
call fcn.0059ef30
test al, al
jne 0x5ba468
mov eax, dword [ebp - 4]
cmp dword [eax + 0x338], 0
jl 0x5ba468
mov eax, dword [ebp - 4]
cmp dword [eax + 0x33c], 0
jl 0x5ba468
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [eax]
call dword [edx + 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x338]
mov ecx, dword [ebp - 4]
add edx, dword [ecx + 0x340]
cmp eax, edx
jl 0x5ba468
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [eax]
call dword [edx + 8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x33c]
mov ecx, dword [ebp - 4]
add edx, dword [ecx + 0x344]
cmp eax, edx
jl 0x5ba468
mov eax, dword [ebp - 4]
cmp dword [eax + 0x348], 0
jle 0x5ba468
mov eax, dword [ebp - 4]
cmp dword [eax + 0x34c], 0
jle 0x5ba468
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x340]
jge 0x5ba468
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x344]
jge 0x5ba468
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x340]
mov edx, dword [ebp - 4]
imul dword [edx + 0x344]
cmp eax, 0x3d090
jg 0x5ba46c
xor eax, eax
jmp 0x5ba46e
mov al, 1
mov byte [ebp - 0x61], al
cmp byte [ebp - 0x61], 0
je 0x5ba843
mov eax, dword [ebp - 4]
add eax, 0x600
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x41c]
mov edx, dword [ebp - 0x88]
mov dword [edx], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x420]
mov edx, dword [ebp - 0x88]
mov dword [edx + 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x348]
mov edx, dword [ebp - 0x88]
mov dword [edx + 8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34c]
mov edx, dword [ebp - 0x88]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
mov edx, dword [ebp - 0x88]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x33c]
mov edx, dword [ebp - 0x88]
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x340]
mov edx, dword [ebp - 0x88]
mov dword [edx + 0x18], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x344]
mov edx, dword [ebp - 0x88]
mov dword [edx + 0x1c], eax
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x271]
mov edx, dword [ebp - 0x88]
mov byte [edx + 0x20], al
mov eax, dword [ebp - 4]
cmp dword [eax + 0x5a8], 0
je 0x5ba5a2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5a8]
mov edx, dword [eax]
call dword [edx + 0xc]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x618]
jne 0x5ba568
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5a8]
mov edx, dword [eax]
call dword [edx + 8]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x61c]
je 0x5ba5a2
xor eax, eax
push ebp
push 0x5ba58d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
add eax, 0x5a8
call fcn.004107e4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5ba597
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x5a8], edx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x5ac], 0
je 0x5ba5e8
xor eax, eax
push ebp
push 0x5ba5d3
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
add eax, 0x5ac
call fcn.004107e4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5ba5dd
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x5ac], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x610]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x614]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x618]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x61c]
mov dword [ebp - 0x74], eax
cmp dword [ebp - 0x70], 0
jle 0x5ba6c5
cmp dword [ebp - 0x74], 0
jle 0x5ba6c5
mov eax, dword [ebp - 0x70]
imul dword [ebp - 0x74]
cdq
cmp edx, 0
jne 0x5ba645
cmp eax, 0x2faf080
jbe 0x5ba6c5
jmp 0x5ba647
jle 0x5ba6c5
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [eax]
call dword [edx + 0x10]
cmp al, 5
jne 0x5ba6c5
mov eax, dword [ebp - 0x6c]
add eax, dword [ebp - 0x74]
dec eax
push eax
lea eax, [ebp - 0xa8]
push eax
mov ecx, dword [ebp - 0x68]
add ecx, dword [ebp - 0x70]
dec ecx
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
call fcn.0041c264
lea eax, [ebp - 0xa8]
push eax
push 0
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov ecx, eax
mov dl, 1
mov eax, dword [0x595e7c]
call fcn.005a9568
mov edx, dword [ebp - 4]
mov dword [edx + 0x5ac], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5ac]
mov edx, dword [ebp - 4]
mov dword [edx + 0x624], eax
mov eax, dword [ebp - 4]
mov byte [eax + 0x621], 1
jmp 0x5ba737
mov eax, dword [ebp - 4]
mov byte [eax + 0x621], 0
mov eax, dword [ebp - 4]
cmp dword [eax + 0x5a8], 0
jne 0x5ba6f9
mov eax, dword [ebp - 0x74]
push eax
push 5
mov ecx, dword [ebp - 0x70]
mov dl, 1
mov eax, dword [0x595da4]
call fcn.0059ec88
mov edx, dword [ebp - 4]
mov dword [edx + 0x5a8], eax
mov eax, dword [ebp - 0x6c]
push eax
push 0
push 0
mov eax, dword [ebp - 0x70]
push eax
mov eax, dword [ebp - 0x74]
push eax
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x5a8]
mov ecx, dword [ebp - 0x68]
call fcn.005a26dc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5a8]
mov edx, dword [ebp - 4]
mov dword [edx + 0x624], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x5b0], 0
je 0x5ba7af
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5b0]
mov edx, dword [eax]
call dword [edx + 0xc]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x608]
jne 0x5ba775
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5b0]
mov edx, dword [eax]
call dword [edx + 8]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x60c]
je 0x5ba7af
xor eax, eax
push ebp
push 0x5ba79a
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
add eax, 0x5b0
call fcn.004107e4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5ba7a4
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x5b0], edx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x5b0], 0
jne 0x5ba7e5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x60c]
push eax
push 5
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x608]
mov dl, 1
mov eax, dword [0x595da4]
call fcn.0059ec88
mov edx, dword [ebp - 4]
mov dword [edx + 0x5b0], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5b0]
mov edx, dword [ebp - 4]
mov dword [edx + 0x628], eax
mov eax, dword [ebp - 4]
mov byte [eax + 0x62c], 0
mov cl, 1
mov dl, 1
mov eax, dword [0x5afd60]
call fcn.00425d0c
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 4]
add eax, 0x600
mov edx, dword [ebp - 0x60]
mov dword [edx + 0x30], eax
mov dl, 3
mov eax, dword [ebp - 0x60]
call fcn.00425f0c
mov eax, dword [ebp - 0x60]
mov byte [eax + 0xf], 1
mov eax, dword [ebp - 4]
mov byte [eax + 0x62d], 0
mov eax, dword [ebp - 0x60]
call fcn.00426094
mov eax, dword [ebp - 4]
dec dword [eax + 0x3dc]
jmp 0x5ba900
mov eax, dword [ebp - 4]
cmp byte [eax + 0x62d], 0
je 0x5ba900
mov eax, dword [ebp - 4]
mov byte [eax + 0x621], 0
mov eax, dword [ebp - 4]
cmp dword [eax + 0x5a8], 0
je 0x5ba8b1
xor eax, eax
push ebp
push 0x5ba89c
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
add eax, 0x5a8
call fcn.004107e4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5ba8a6
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x5a8], edx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x5ac], 0
je 0x5ba8f7
xor eax, eax
push ebp
push 0x5ba8e2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
add eax, 0x5ac
call fcn.004107e4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5ba8ec
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x5ac], edx
mov eax, dword [ebp - 4]
dec dword [eax + 0x3dc]
mov eax, dword [ebp - 4]
cmp dword [eax + 0x3dc], 0
jne 0x5ba95b
xor eax, eax
push ebp
push 0x5ba92f
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x88]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5ba939
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x51c]
cmp dword [eax + 0x30], 0x32
jae 0x5ba95b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x51c]
mov edx, 0xd2
call fcn.0043ebe8
mov eax, dword [ebp - 4]
cmp dword [eax + 0x3e0], 0
jle 0x5ba970
mov eax, dword [ebp - 4]
dec dword [eax + 0x3e0]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret