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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff80
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 0x6224bd
mov byte [ebp - 0x51], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x508]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x621f8e
inc eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x2c], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x508]
mov edx, dword [ebp - 0x2c]
call fcn.0041e8c0
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
cmp byte [eax + 0x30], 0
je 0x621f82
mov eax, dword [ebp - 0x64]
cmp byte [eax + 0x10], 0
je 0x621431
mov byte [ebp - 0x51], 1
mov eax, dword [ebp - 0x64]
cmp byte [eax + 0x10], 0
je 0x6214a8
mov eax, dword [ebp - 4]
cmp byte [eax + 0x468], 0
jne 0x6214a8
mov eax, dword [ebp - 4]
cmp byte [eax + 0x466], 0
jne 0x6214a8
mov eax, dword [ebp - 4]
cmp byte [eax + 0x469], 0
jne 0x6214a8
mov eax, dword [ebp - 0x24]
mov edx, dword [0x44124c]
call fcn.00403f3c
test al, al
je 0x6214a8
mov eax, dword [ebp - 4]
cmp byte [eax + 0x46a], 0
jne 0x6214a8
mov eax, dword [ebp - 4]
cmp dword [eax + 0x46c], 0
jge 0x6214a8
mov eax, dword [ebp - 0x64]
inc dword [eax + 0x14]
mov eax, dword [ebp - 0x64]
cmp dword [eax + 0x14], 0xa
jl 0x62149f
mov eax, dword [ebp - 0x64]
xor edx, edx
mov dword [eax + 0x14], edx
mov eax, dword [ebp - 4]
inc dword [eax + 0x28c]
lea edx, [ebp - 0x80]
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0x1c]
call fcn.0042ba08
cmp dword [ebp - 0x80], 0
jne 0x6214ce
cmp dword [ebp - 0x7c], 0
jne 0x6214ce
cmp dword [ebp - 0x78], 0
jne 0x6214ce
cmp dword [ebp - 0x74], 0
je 0x6214d2
xor eax, eax
jmp 0x6214d4
mov al, 1
test al, al
jne 0x621f82
mov eax, dword [ebp - 4]
cmp dword [eax + 0x410], 0
jne 0x621f82
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0x1c]
cmp dword [eax + 0x50], 0
je 0x621502
cmp byte [ebp - 0x25], 0
jne 0x621f82
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4f6], 0
jne 0x621f82
mov eax, dword [ebp - 0x64]
cmp byte [eax + 0x31], 0
je 0x621901
mov eax, dword [ebp - 0x64]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
call fcn.00625cf0
test al, al
je 0x621901
mov eax, dword [ebp - 4]
cmp byte [eax + 0x468], 0
jne 0x621901
mov eax, dword [ebp - 4]
cmp dword [eax + 0x46c], 0xffffffff
jne 0x621901
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x68], eax
xor edx, edx
push ebp
push 0x6218fa
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x83f1a4]
cmp byte [eax], 0
je 0x6215f4
mov eax, dword [ebp - 0x68]
call fcn.0042ba2c
mov ecx, eax
mov dl, 1
mov eax, dword [0x54d900]
call fcn.0054e154
mov dword [ebp - 0x18], eax
push 0x3f800000
mov eax, dword [0x83fbec]
mov eax, dword [eax]
call fcn.0056f064
mov ecx, eax
mov dl, 1
mov eax, dword [0x54d7f4]
call fcn.0054dc9c
mov dword [ebp - 0x20], eax
mov eax, 0xffffff
call fcn.0056f064
mov ecx, eax
mov dl, 1
mov eax, dword [0x54d72c]
call fcn.0054df9c
mov dword [ebp - 0x1c], eax
mov edx, dword [0x83fe04]
mov edx, dword [edx]
mov eax, dword [ebp - 0x18]
call fcn.0054e1f4
mov eax, dword [0x83ffa4]
fld qword [eax]
add esp, 0xfffffffc
fstp dword [esp]
wait
mov eax, dword [ebp - 0x20]
call fcn.0054dd78
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x4e4]
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x14]
call fcn.0042b084
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4e0]
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x14]
call fcn.0042af68
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4dc]
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x10]
call fcn.0042ac68
mov dword [ebp - 0x44], 0x989680
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x50], 0xfff0bdc0
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 4]
dec eax
test eax, eax
jl 0x621739
inc eax
mov dword [ebp - 0x6c], eax
xor ebx, ebx
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov eax, dword [eax + ebx*8]
cmp eax, 0xfffff
je 0x62172f
mov edx, dword [ebp - 0x64]
mov edx, dword [edx]
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0061d2f0
mov esi, eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov edx, dword [eax + ebx*8 + 4]
mov eax, dword [ebp - 4]
call fcn.0061d3f4
mov edi, eax
mov eax, dword [ebp - 0x64]
cmp dword [eax + 4], 4
jne 0x6216b5
cmp ebx, 1
je 0x6216a9
cmp ebx, 2
jne 0x6216aa
dec esi
cmp ebx, 2
je 0x6216b4
cmp ebx, 3
jne 0x6216b5
dec edi
mov eax, dword [0x83f1a4]
cmp byte [eax], 0
je 0x6216e8
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4e8]
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.00621360
pop ecx
jmp 0x62170f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4e8]
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 - 0x68]
pop ecx
call fcn.0042b5dc
cmp esi, dword [ebp - 0x44]
jge 0x621717
mov dword [ebp - 0x44], esi
cmp edi, dword [ebp - 0x48]
jge 0x62171f
mov dword [ebp - 0x48], edi
cmp esi, dword [ebp - 0x4c]
jle 0x621727
mov dword [ebp - 0x4c], esi
cmp edi, dword [ebp - 0x50]
jle 0x62172f
mov dword [ebp - 0x50], edi
inc ebx
dec dword [ebp - 0x6c]
jne 0x62165f
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4ec], 0
je 0x6218ca
mov esi, dword [ebp - 0x4c]
add esi, dword [ebp - 0x44]
sar esi, 1
jns 0x621756
adc esi, 0
mov edi, dword [ebp - 0x50]
add edi, dword [ebp - 0x48]
sar edi, 1
jns 0x621763
adc edi, 0
mov eax, dword [0x83f1a4]
cmp byte [eax], 0
je 0x621808
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4e8]
mov edx, eax
add edx, dword [ebp - 0x48]
push edx
mov edx, dword [ebp - 0x48]
sub edx, eax
inc edx
mov ecx, esi
sub ecx, eax
inc ecx
add eax, esi
xchg ecx, eax
call fcn.00621360
pop ecx
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4e8]
mov edx, eax
add edx, edi
push edx
mov edx, edi
sub edx, eax
inc edx
mov ecx, dword [ebp - 0x44]
sub ecx, eax
inc ecx
add eax, dword [ebp - 0x44]
xchg ecx, eax
call fcn.00621360
pop ecx
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4e8]
mov edx, eax
add edx, edi
push edx
mov edx, edi
sub edx, eax
inc edx
mov ecx, dword [ebp - 0x4c]
sub ecx, eax
inc ecx
add eax, dword [ebp - 0x4c]
xchg ecx, eax
call fcn.00621360
pop ecx
push ebp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4e8]
mov edx, eax
add edx, dword [ebp - 0x50]
push edx
mov edx, dword [ebp - 0x50]
sub edx, eax
inc edx
mov ecx, esi
sub ecx, eax
inc ecx
add esi, eax
mov eax, esi
xchg ecx, eax
call fcn.00621360
pop ecx
jmp 0x6218ca
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4e8]
mov edx, eax
add edx, esi
push edx
mov edx, eax
add edx, dword [ebp - 0x48]
push edx
mov ecx, dword [ebp - 0x48]
sub ecx, eax
inc ecx
mov edx, esi
sub edx, eax
inc edx
mov eax, dword [ebp - 0x68]
call fcn.0042b5dc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4e8]
mov edx, eax
add edx, dword [ebp - 0x44]
push edx
mov edx, eax
add edx, edi
push edx
mov ecx, edi
sub ecx, eax
inc ecx
mov edx, dword [ebp - 0x44]
sub edx, eax
inc edx
mov eax, dword [ebp - 0x68]
call fcn.0042b5dc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4e8]
add eax, dword [ebp - 0x4c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4e8]
add eax, edi
push eax
mov eax, dword [ebp - 4]
mov ecx, edi
sub ecx, dword [eax + 0x4e8]
inc ecx
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x4c]
sub edx, dword [eax + 0x4e8]
inc edx
mov eax, dword [ebp - 0x68]
call fcn.0042b5dc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4e8]
add eax, esi
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4e8]
add eax, dword [ebp - 0x50]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x50]
sub ecx, dword [eax + 0x4e8]
inc ecx
mov eax, dword [ebp - 4]
mov edx, esi
sub edx, dword [eax + 0x4e8]
inc edx
mov eax, dword [ebp - 0x68]
call fcn.0042b5dc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x621901
mov eax, dword [0x83f1a4]
cmp byte [eax], 0
je 0x6218f9
mov eax, dword [ebp - 0x18]
call fcn.00403db0
mov eax, dword [ebp - 0x20]
call fcn.00403db0
mov eax, dword [ebp - 0x1c]
call fcn.00403db0
ret
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x498]
cmp eax, dword [ebp - 0x30]
jne 0x621cb7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c8]
call fcn.00630698
test al, al
jne 0x621cb7
mov eax, dword [ebp - 4]
cmp byte [eax + 0x46a], 0
jne 0x621cb7
mov eax, dword [ebp - 4]
cmp byte [eax + 0x468], 0
jne 0x621cb7
mov eax, dword [ebp - 4]
cmp byte [eax + 0x469], 0
jne 0x621cb7
mov eax, dword [ebp - 4]
cmp byte [eax + 0x466], 0
jne 0x621cb7
mov eax, dword [ebp - 4]
cmp byte [eax + 0x2c2], 0
jne 0x621cb7
mov eax, dword [ebp - 4]
cmp byte [eax + 0x2b0], 0
je 0x621995
mov eax, dword [ebp - 4]
cmp dword [eax + 0x3d8], 0
jne 0x621f82
call sub.kernel32.dll_GetTickCount
mov ebx, eax
mov eax, dword [ebp - 0x64]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
call fcn.00625cf0
test al, al
je 0x621b88
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0x10]
mov dl, 4
call fcn.0042ad48
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov edx, dword [eax]
mov eax, dword [ebp - 4]
call fcn.0061d2f0
mov esi, eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 4]
call fcn.0061d3f4
mov edi, eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 4]
call fcn.0061d2f0
dec eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov edx, dword [eax + 0x14]
mov eax, dword [ebp - 4]
call fcn.0061d3f4
dec eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x414]
sub eax, 0x1e
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x414]
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 + 0x418]
sub eax, 0x1e
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x418]
mov edx, dword [ebp - 4]
add eax, dword [edx + 0x4c]
add eax, 0x1e
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x64]
mov dword [edx + 0x18], eax
cmp edi, dword [ebp - 0x10]
jle 0x621aa1
cmp edi, dword [ebp - 8]
jge 0x621aa1
cmp esi, dword [ebp - 0xc]
jge 0x621aa1
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x14]
jle 0x621aa1
mov eax, dword [ebp - 0x30]
push eax
push 0x6211b4
push edi
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x34]
call fcn.005dccfc
push eax
push edi
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.005dccf4
push eax
call sub.gdi32.dll_LineDDA
cmp esi, dword [ebp - 0x14]
jle 0x621adf
cmp esi, dword [ebp - 0xc]
jge 0x621adf
cmp edi, dword [ebp - 8]
jge 0x621adf
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x10]
jle 0x621adf
mov eax, dword [ebp - 0x30]
push eax
push 0x6211b4
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x38]
call fcn.005dccfc
push eax
push esi
mov edx, dword [ebp - 0x10]
mov eax, edi
call fcn.005dccf4
push eax
push esi
call sub.gdi32.dll_LineDDA
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x10]
jle 0x621b29
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 8]
jge 0x621b29
cmp esi, dword [ebp - 0xc]
jge 0x621b29
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x14]
jle 0x621b29
mov eax, dword [ebp - 0x30]
push eax
push 0x6211b4
mov eax, dword [ebp - 0x38]
push eax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x34]
call fcn.005dccfc
push eax
mov eax, dword [ebp - 0x38]
push eax
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.005dccf4
push eax
call sub.gdi32.dll_LineDDA
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x14]
jle 0x621c18
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0xc]
jge 0x621c18
cmp edi, dword [ebp - 8]
jge 0x621c18
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0x10]
jle 0x621c18
mov eax, dword [ebp - 0x30]
push eax
push 0x6211b4
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x38]
call fcn.005dccfc
push eax
mov eax, dword [ebp - 0x34]
push eax
mov edx, dword [ebp - 0x10]
mov eax, edi
call fcn.005dccf4
push eax
mov eax, dword [ebp - 0x34]
push eax
call sub.gdi32.dll_LineDDA
jmp 0x621c18
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x418]
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 + 0x330]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x334]
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 + 0x28c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d4]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d8]
push eax
mov eax, dword [ebp - 4]
push dword [eax + 0x3f4]
push dword [eax + 0x3f0]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x414]
mov eax, dword [ebp - 0x64]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c8]
call fcn.0062f504
mov eax, dword [ebp - 4]
cmp dword [eax + 0xc], 0xa8
jne 0x621c8a
mov eax, dword [ebp - 0x64]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
call fcn.00625cf0
test al, al
je 0x621c8a
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 4]
call fcn.0061d2f0
dec eax
push eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov edx, dword [eax + 0x14]
mov eax, dword [ebp - 4]
call fcn.0061d3f4
dec eax
push eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 4]
call fcn.0061d3f4
push eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov edx, dword [eax]
mov eax, dword [ebp - 4]
call fcn.0061d2f0
mov edx, eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0x1c]
pop ecx
call fcn.00621218
call sub.kernel32.dll_GetTickCount
mov eax, dword [ebp - 4]
cmp dword [eax + 0x2f8], 0
jge 0x621f82
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50c]
mov edx, 0xd2
call fcn.0044270c
jmp 0x621f82
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 0x64]
mov dword [edx + 0x18], eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax + 0x10]
mov dl, 4
call fcn.0042ad48
mov eax, dword [ebp - 0x64]
cmp dword [eax + 4], 0
jle 0x621f82
mov eax, dword [ebp - 0x64]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
call fcn.00625cf0
test al, al
je 0x621e07
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov edx, dword [eax]
mov eax, dword [ebp - 4]
call fcn.0061d2f0
mov esi, eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 4]
call fcn.0061d3f4
mov edi, eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 4]
call fcn.0061d2f0
dec eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov edx, dword [eax + 0x14]
mov eax, dword [ebp - 4]
call fcn.0061d3f4
dec eax
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x2c], 0
jne 0x621d51
mov eax, dword [ebp - 0x64]
xor edx, edx
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 0x30]
push eax
push 0x6211b4
push edi
mov eax, dword [ebp - 0x34]
push eax
push edi
push esi
call sub.gdi32.dll_LineDDA
cmp dword [ebp - 0x2c], 0
jne 0x621d74
mov eax, dword [ebp - 0x64]
xor edx, edx
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 0x30]
push eax
push 0x6211b4
mov eax, dword [ebp - 0x38]
push eax
push esi
push edi
push esi
call sub.gdi32.dll_LineDDA
cmp dword [ebp - 0x2c], 0
jne 0x621d97
mov eax, dword [ebp - 0x64]
xor edx, edx
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 0x30]
push eax
push 0x6211b4
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x38]
push eax
push esi
call sub.gdi32.dll_LineDDA
cmp dword [ebp - 0x2c], 0
jne 0x621dc0
mov eax, dword [ebp - 0x64]
xor edx, edx
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 0x30]
push eax
push 0x6211b4
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x34]
push eax
push edi
mov eax, dword [ebp - 0x34]
push eax
call sub.gdi32.dll_LineDDA
mov eax, dword [ebp - 4]
cmp dword [eax + 0xc], 0xa8
jne 0x621f82
mov eax, dword [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0x1c]
mov ecx, edi
mov edx, esi
call fcn.00621218
jmp 0x621f82
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [ebp - 0x40], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x3c], edx
mov ebx, 1
jmp 0x621f04
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
cmp dword [eax + ebx*8], 0xfffff
jne 0x621e9e
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov edx, dword [eax + ebx*8 - 8]
mov eax, dword [ebp - 4]
call fcn.0061d2f0
mov esi, eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov edx, dword [eax + ebx*8 - 4]
mov eax, dword [ebp - 4]
call fcn.0061d3f4
mov edi, eax
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 4]
call fcn.0061d2f0
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 4]
call fcn.0061d3f4
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x30]
push eax
push 0x6211b4
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x34]
push eax
push edi
push esi
call sub.gdi32.dll_LineDDA
inc ebx
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov edx, dword [eax + ebx*8]
mov dword [ebp - 0x40], edx
mov edx, dword [eax + ebx*8 + 4]
mov dword [ebp - 0x3c], edx
jmp 0x621f03
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov edx, dword [eax + ebx*8 - 8]
mov eax, dword [ebp - 4]
call fcn.0061d2f0
mov esi, eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov edx, dword [eax + ebx*8 - 4]
mov eax, dword [ebp - 4]
call fcn.0061d3f4
mov edi, eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov edx, dword [eax + ebx*8]
mov eax, dword [ebp - 4]
call fcn.0061d2f0
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov edx, dword [eax + ebx*8 + 4]
mov eax, dword [ebp - 4]
call fcn.0061d3f4
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x30]
push eax
push 0x6211b4
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x34]
push eax
push edi
push esi
call sub.gdi32.dll_LineDDA
inc ebx
mov eax, dword [ebp - 0x64]
cmp ebx, dword [eax + 4]
jl 0x621e21
mov eax, dword [ebp - 4]
cmp byte [eax + 0x466], 0
jne 0x621f82
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x64]
mov edx, dword [edx]
mov edx, dword [edx + eax*8 - 8]
mov eax, dword [ebp - 4]
call fcn.0061d2f0
mov esi, eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 4]
mov edx, dword [ebp - 0x64]
mov edx, dword [edx]
mov edx, dword [edx + eax*8 - 4]
mov eax, dword [ebp - 4]
call fcn.0061d3f4
mov edi, eax
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 4]
call fcn.0061d2f0
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 4]
call fcn.0061d3f4
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x30]
push eax
push 0x6211b4
mov eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x34]
push eax
push edi
push esi
call sub.gdi32.dll_LineDDA
inc dword [ebp - 0x2c]
dec dword [ebp - 0x60]
jne 0x6213fd
mov eax, dword [ebp - 4]
cmp dword [eax + 0x3d4], 0
jne 0x621fbe
mov eax, dword [ebp - 4]
cmp dword [eax + 0x3d8], 0
jne 0x621fbe
cmp byte [ebp - 0x51], 0
jne 0x621fbe
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50c]
xor edx, edx
call fcn.004426fc
jmp 0x621fdd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50c]
cmp byte [eax + 0x40], 0
jne 0x621fdd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50c]
mov dl, 1
call fcn.004426fc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3d4]
test eax, eax
jle 0x6224a8
cmp eax, 2
jle 0x62200b
mov eax, dword [ebp - 4]
mov byte [eax + 0x60c], 1
mov eax, dword [ebp - 4]
dec dword [eax + 0x3d4]
jmp 0x62244d
cmp eax, 2
jne 0x6223f2
mov eax, dword [ebp - 4]
mov byte [eax + 0x60c], 1
mov eax, dword [ebp - 4]
cmp byte [eax + 0x60d], 0
je 0x62244d
mov eax, dword [ebp - 4]
cmp byte [eax + 0x5dc], 0
je 0x622133
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 0x622133
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0xd0]
call fcn.00633ef4
test al, al
jne 0x622133
mov eax, dword [ebp - 4]
cmp dword [eax + 0x330], 0
jl 0x622133
mov eax, dword [ebp - 4]
cmp dword [eax + 0x334], 0
jl 0x622133
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 + 0x330]
mov ecx, dword [ebp - 4]
add edx, dword [ecx + 0x338]
cmp eax, edx
jl 0x622133
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 + 0x334]
mov ecx, dword [ebp - 4]
add edx, dword [ecx + 0x33c]
cmp eax, edx
jl 0x622133
mov eax, dword [ebp - 4]
cmp dword [eax + 0x340], 0
jle 0x622133
mov eax, dword [ebp - 4]
cmp dword [eax + 0x344], 0
jle 0x622133
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x340]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x338]
jge 0x622133
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x344]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x33c]
jge 0x622133
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
mov edx, dword [ebp - 4]
imul dword [edx + 0x33c]
cmp eax, 0x3d090
jg 0x622137
xor eax, eax
jmp 0x622139
mov al, 1
mov byte [ebp - 0x59], al
cmp byte [ebp - 0x59], 0
je 0x6223e7
mov eax, dword [ebp - 4]
add eax, 0x5e0
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x414]
mov edx, dword [ebp - 0x70]
mov dword [edx], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x418]
mov edx, dword [ebp - 0x70]
mov dword [edx + 4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x340]
mov edx, dword [ebp - 0x70]
mov dword [edx + 8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x344]
mov edx, dword [ebp - 0x70]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x330]
mov edx, dword [ebp - 0x70]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x334]
mov edx, dword [ebp - 0x70]
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x338]
mov edx, dword [ebp - 0x70]
mov dword [edx + 0x18], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x33c]
mov edx, dword [ebp - 0x70]
mov dword [edx + 0x1c], eax
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x269]
mov edx, dword [ebp - 0x70]
mov byte [edx + 0x20], al
mov eax, dword [ebp - 4]
cmp dword [eax + 0x598], 0
je 0x62224f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x598]
mov edx, dword [eax]
call dword [edx + 0xc]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x5f8]
jne 0x622215
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x598]
mov edx, dword [eax]
call dword [edx + 8]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x5fc]
je 0x62224f
xor eax, eax
push ebp
push 0x62223a
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
add eax, 0x598
call fcn.004114e4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x622244
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x598], edx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x598], 0
jne 0x622285
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5fc]
push eax
push 5
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x5f8]
mov dl, 1
mov eax, dword [0x62b544]
call fcn.00633c54
mov edx, dword [ebp - 4]
mov dword [edx + 0x598], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5f4]
push eax
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5f8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5fc]
push eax
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0xd0]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x5f0]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x598]
call fcn.00637a00
mov eax, dword [ebp - 4]
cmp dword [eax + 0x59c], 0
je 0x622341
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x59c]
mov edx, dword [eax]
call dword [edx + 0xc]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x5e8]
jne 0x622307
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x59c]
mov edx, dword [eax]
call dword [edx + 8]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x5ec]
je 0x622341
xor eax, eax
push ebp
push 0x62232c
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
add eax, 0x59c
call fcn.004114e4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x622336
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x59c], edx
mov eax, dword [ebp - 4]
cmp dword [eax + 0x59c], 0
jne 0x622377
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5ec]
push eax
push 5
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x5e8]
mov dl, 1
mov eax, dword [0x62b544]
call fcn.00633c54
mov edx, dword [ebp - 4]
mov dword [edx + 0x59c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x598]
mov edx, dword [ebp - 4]
mov dword [edx + 0x604], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x59c]
mov edx, dword [ebp - 4]
mov dword [edx + 0x608], eax
mov eax, dword [ebp - 4]
mov byte [eax + 0x60d], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x60c], 0
mov cl, 1
mov dl, 1
mov eax, dword [0x619a88]
call fcn.00426eb8
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 4]
add eax, 0x5e0
mov edx, dword [ebp - 0x58]
mov dword [edx + 0x30], eax
mov dl, 3
mov eax, dword [ebp - 0x58]
call fcn.004270b8
mov eax, dword [ebp - 0x58]
mov byte [eax + 0xf], 1
mov eax, dword [ebp - 0x58]
call fcn.00427240
mov eax, dword [ebp - 4]
dec dword [eax + 0x3d4]
jmp 0x62244d
mov eax, dword [ebp - 4]
cmp byte [eax + 0x60d], 0
je 0x62244d
mov eax, dword [ebp - 4]
cmp dword [eax + 0x598], 0
je 0x622444
xor eax, eax
push ebp
push 0x62242f
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
add eax, 0x598
call fcn.004114e4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x622439
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x598], edx
mov eax, dword [ebp - 4]
dec dword [eax + 0x3d4]
mov eax, dword [ebp - 4]
cmp dword [eax + 0x3d4], 0
jne 0x6224a8
xor eax, eax
push ebp
push 0x62247c
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 0x622486
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50c]
cmp dword [eax + 0x30], 0x32
jae 0x6224a8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50c]
mov edx, 0xd2
call fcn.0044270c
mov eax, dword [ebp - 4]
cmp dword [eax + 0x3d8], 0
jle 0x6224bd
mov eax, dword [ebp - 4]
dec dword [eax + 0x3d8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret