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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x1b
push 0
push 0
dec ecx
jne 0x567c98
push ecx
push ebx
push esi
push edi
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x20]
mov edx, dword [0x50acfc]
call fcn.00405e14
xor eax, eax
push ebp
push 0x568d34
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x25], 0
xor eax, eax
mov dword [ebp - 0x38], eax
xor eax, eax
mov dword [ebp - 0x3c], eax
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp byte [eax + 0x184], 0
je 0x567cfc
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050e610
test al, al
je 0x567cfc
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00520894
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp byte [eax + 0x150], 0
je 0x567d1c
mov eax, dword [ebp - 0x24]
call fcn.005658b0
mov byte [ebp - 0x25], al
jmp 0x568cfb
lea ecx, [ebp - 0xc]
mov eax, dword [ebp - 0x24]
mov edx, dword [eax + 0x164]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov eax, dword [eax + 0x368]
mov ebx, dword [eax]
call dword [ebx + 0xc]
lea eax, [ebp - 0x7c]
mov ecx, dword [ebp - 0xc]
mov edx, 0x568d50
call fcn.004054c0
mov eax, dword [ebp - 0x7c]
call fcn.004b8ff8
lea eax, [ebp - 0x80]
push eax
mov ecx, 4
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.004056a0
mov eax, dword [ebp - 0x80]
mov edx, 0x568d64
call fcn.004055d0
jne 0x56810e
mov eax, dword [0x586a98]
mov eax, dword [eax]
add eax, 0x14c
call fcn.004051a8
mov eax, dword [0x586a98]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0x16c], edx
mov eax, dword [0x586a98]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0x170], edx
mov eax, dword [0x586a98]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0x164], edx
mov eax, dword [0x586a98]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0x168], edx
mov eax, dword [0x586a98]
mov eax, dword [eax]
add eax, 0x148
call fcn.004051a8
mov eax, dword [0x586a98]
mov eax, dword [eax]
add eax, 0x218
call fcn.004051a8
mov dl, 1
mov eax, dword [0x41bb74]
call fcn.004041b0
mov dword [ebp - 0x40], eax
xor eax, eax
push ebp
push 0x5680f7
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x10]
push eax
mov ecx, 0x568d74
mov edx, 0x568d80
mov eax, dword [ebp - 0xc]
call fcn.0044091c
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0x40]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x5680e1
inc eax
mov dword [ebp - 0x44], eax
xor ebx, ebx
lea ecx, [ebp - 0x84]
mov edx, ebx
mov eax, dword [ebp - 0x40]
mov esi, dword [eax]
call dword [esi + 0xc]
mov edx, dword [ebp - 0x84]
mov eax, 0x568d8c
call fcn.00405784
mov esi, eax
test esi, esi
je 0x5680d7
lea eax, [ebp - 0xc]
push eax
lea ecx, [ebp - 0x88]
mov edx, ebx
mov eax, dword [ebp - 0x40]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x88]
mov ecx, esi
dec ecx
mov edx, 1
call fcn.004056a0
mov eax, dword [ebp - 0xc]
mov edx, 0x568d98
call fcn.004055d0
jne 0x567f92
lea eax, [ebp - 0xc]
push eax
lea ecx, [ebp - 0x8c]
mov edx, ebx
mov eax, dword [ebp - 0x40]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x8c]
lea edx, [esi + 1]
mov ecx, 0x7fffffff
call fcn.004056a0
mov edx, dword [ebp - 0xc]
mov eax, 0x568da4
call fcn.00405784
mov esi, eax
test esi, esi
je 0x5680d7
mov eax, dword [0x586a98]
mov eax, dword [eax]
add eax, 0x14c
push eax
mov ecx, esi
dec ecx
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.004056a0
lea eax, [ebp - 0xc]
push eax
lea edx, [esi + 1]
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0xc]
call fcn.004056a0
mov edx, dword [ebp - 0xc]
mov eax, 0x568da4
call fcn.00405784
mov esi, eax
test esi, esi
je 0x5680d7
lea eax, [ebp - 0x90]
push eax
mov ecx, esi
dec ecx
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.004056a0
mov eax, dword [ebp - 0x90]
xor edx, edx
call fcn.0040a188
mov edx, dword [0x586a98]
mov edx, dword [edx]
mov dword [edx + 0x164], eax
lea eax, [ebp - 0x94]
push eax
lea edx, [esi + 1]
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0xc]
call fcn.004056a0
mov eax, dword [ebp - 0x94]
xor edx, edx
call fcn.0040a188
mov edx, dword [0x586a98]
mov edx, dword [edx]
mov dword [edx + 0x168], eax
jmp 0x5680d7
mov eax, dword [ebp - 0xc]
mov edx, 0x568db0
call fcn.004055d0
jne 0x567fe1
lea eax, [ebp - 0xc]
push eax
lea ecx, [ebp - 0x98]
mov edx, ebx
mov eax, dword [ebp - 0x40]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x98]
lea edx, [esi + 1]
mov ecx, 0x7fffffff
call fcn.004056a0
mov eax, dword [0x586a98]
mov eax, dword [eax]
add eax, 0x218
mov edx, dword [ebp - 0xc]
call fcn.004051fc
jmp 0x5680d7
mov eax, dword [ebp - 0xc]
mov edx, 0x568dc0
call fcn.004055d0
jne 0x568098
lea eax, [ebp - 0xc]
push eax
lea ecx, [ebp - 0x9c]
mov edx, ebx
mov eax, dword [ebp - 0x40]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x9c]
lea edx, [esi + 1]
mov ecx, 0x7fffffff
call fcn.004056a0
mov edx, dword [ebp - 0xc]
mov eax, 0x568da4
call fcn.00405784
mov esi, eax
test esi, esi
je 0x5680d7
lea eax, [ebp - 0xa0]
push eax
mov ecx, esi
dec ecx
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.004056a0
mov eax, dword [ebp - 0xa0]
xor edx, edx
call fcn.0040a188
mov edx, dword [0x586a98]
mov edx, dword [edx]
mov dword [edx + 0x16c], eax
lea eax, [ebp - 0xa4]
push eax
lea edx, [esi + 1]
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0xc]
call fcn.004056a0
mov eax, dword [ebp - 0xa4]
xor edx, edx
call fcn.0040a188
mov edx, dword [0x586a98]
mov edx, dword [edx]
mov dword [edx + 0x170], eax
jmp 0x5680d7
mov eax, dword [ebp - 0xc]
mov edx, 0x568dcc
call fcn.004055d0
jne 0x5680d7
mov eax, dword [0x586a98]
mov eax, dword [eax]
add eax, 0x148
push eax
lea ecx, [ebp - 0xa8]
mov edx, ebx
mov eax, dword [ebp - 0x40]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0xa8]
lea edx, [esi + 1]
mov ecx, 0x7fffffff
call fcn.004056a0
inc ebx
dec dword [ebp - 0x44]
jne 0x567e3f
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5680fe
mov eax, dword [ebp - 0x40]
call fcn.004041e0
ret
lea eax, [ebp - 0xac]
push eax
mov ecx, 5
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.004056a0
mov eax, dword [ebp - 0xac]
mov edx, 0x568ddc
call fcn.004055d0
jne 0x568305
lea eax, [ebp - 0xc]
push eax
mov ecx, 0x7fffffff
mov edx, 6
mov eax, dword [ebp - 0xc]
call fcn.004056a0
mov edx, dword [ebp - 0xc]
mov eax, 0x568dec
call fcn.00405784
mov esi, eax
test esi, esi
jle 0x56817c
lea eax, [ebp - 4]
push eax
mov ecx, esi
dec ecx
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.004056a0
jmp 0x568187
lea eax, [ebp - 4]
mov edx, dword [ebp - 0xc]
call fcn.00405240
lea ecx, [ebp - 0x78]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
call fcn.0050d68c
test al, al
je 0x568cfb
lea eax, [ebp - 8]
push eax
lea edx, [esi + 1]
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0xc]
call fcn.004056a0
mov edx, dword [ebp - 8]
mov eax, 0x568df8
call fcn.00405784
mov esi, eax
test esi, esi
jle 0x56823d
lea eax, [ebp - 8]
push eax
mov ecx, esi
dec ecx
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.004056a0
mov edx, dword [ebp - 8]
mov eax, 0x568da4
call fcn.00405784
mov esi, eax
test esi, esi
jle 0x56823d
lea eax, [ebp - 0xb0]
push eax
mov ecx, esi
dec ecx
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.004056a0
mov eax, dword [ebp - 0xb0]
xor edx, edx
call fcn.0040a188
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0xb4]
push eax
lea edx, [esi + 1]
mov ecx, 0x7fffffff
mov eax, dword [ebp - 8]
call fcn.004056a0
mov eax, dword [ebp - 0xb4]
xor edx, edx
call fcn.0040a188
mov dword [ebp - 0x3c], eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050fbe4
mov word [ebp - 0x2a], ax
call fcn.004b9988
mov esi, eax
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov byte [eax + 0x92], 0
mov eax, dword [0x5865d0]
mov eax, dword [eax]
or ecx, 0xffffffff
mov edx, dword [ebp - 0x74]
call fcn.00511928
jmp 0x5682bb
push 0x64
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp byte [eax + 0x92], 0
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050fbe4
cmp ax, word [ebp - 0x2a]
je 0x5682ad
push 0x1f4
call sub.kernel32.dll_Sleep_2
mov byte [ebp - 0x25], 1
jmp 0x5682c4
call fcn.004b9988
sub eax, esi
cmp eax, 0x7d0
ja 0x5682c4
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0xd], 0
je 0x568276
cmp byte [ebp - 0x25], 0
je 0x568cfb
cmp dword [ebp - 0x38], 0
jle 0x568cfb
cmp dword [ebp - 0x3c], 0
jle 0x568cfb
mov eax, dword [ebp - 0x3c]
push eax
push 4
push 0
push 0
push 0
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x24]
call fcn.00522bb0
jmp 0x568cfb
xor edi, edi
mov edx, dword [ebp - 0xc]
mov eax, 0x568dec
call fcn.00405784
mov esi, eax
test esi, esi
jle 0x5683e7
lea eax, [ebp - 4]
push eax
mov ecx, esi
dec ecx
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.004056a0
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
call fcn.00515954
mov edi, eax
test edi, edi
jle 0x5683e7
lea eax, [ebp - 8]
push eax
lea edx, [esi + 1]
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0xc]
call fcn.004056a0
mov edx, dword [ebp - 8]
mov eax, 0x568df8
call fcn.00405784
mov esi, eax
test esi, esi
jle 0x5683e7
lea eax, [ebp - 8]
push eax
mov ecx, esi
dec ecx
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.004056a0
mov edx, dword [ebp - 8]
mov eax, 0x568da4
call fcn.00405784
mov esi, eax
test esi, esi
jle 0x5683e7
lea eax, [ebp - 0xb8]
push eax
mov ecx, esi
dec ecx
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.004056a0
mov eax, dword [ebp - 0xb8]
xor edx, edx
call fcn.0040a188
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0xbc]
push eax
lea edx, [esi + 1]
mov ecx, 0x7fffffff
mov eax, dword [ebp - 8]
call fcn.004056a0
mov eax, dword [ebp - 0xbc]
xor edx, edx
call fcn.0040a188
mov dword [ebp - 0x3c], eax
test edi, edi
jne 0x568404
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [ebp - 0xc]
call fcn.00515954
mov edi, eax
test edi, edi
je 0x568cfb
mov eax, dword [0x586404]
mov eax, dword [eax]
mov eax, dword [eax + 0x5d0]
sub eax, 0x32
jne 0x568558
call fcn.0040339c
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050e874
cmp eax, 0x14
jge 0x568447
mov eax, 2
call fcn.004033c4
mov ebx, eax
add ebx, 0xe9
jmp 0x5684f0
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050e874
cmp eax, 0x32
jge 0x56846f
mov eax, 4
call fcn.004033c4
mov ebx, eax
add ebx, 0xe9
jmp 0x5684f0
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050e874
cmp eax, 0x46
jge 0x568494
mov eax, 5
call fcn.004033c4
mov ebx, eax
add ebx, 0xe9
jmp 0x5684f0
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050e874
cmp eax, 0x5a
jge 0x5684b9
mov eax, 6
call fcn.004033c4
mov ebx, eax
add ebx, 0xe9
jmp 0x5684f0
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050e874
cmp eax, 0x64
jge 0x5684de
mov eax, 7
call fcn.004033c4
mov ebx, eax
add ebx, 0xe9
jmp 0x5684f0
mov eax, 8
call fcn.004033c4
mov ebx, eax
add ebx, 0xe9
push 0x568e04
lea ecx, [ebp - 0xc4]
mov edx, 2
mov eax, ebx
call fcn.0040a0f4
push dword [ebp - 0xc4]
push 0x568e1c
lea eax, [ebp - 0xc0]
mov edx, 3
call fcn.0040553c
mov edx, dword [ebp - 0xc0]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00512050
push 0x3e8
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp byte [eax + 0x5cd], 0
je 0x568558
push 0x3e8
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050edd8
mov word [ebp - 0x28], ax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050fbe4
mov word [ebp - 0x2a], ax
call fcn.004b9988
mov esi, eax
xor ebx, ebx
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov byte [eax + 0x5e], 0
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov byte [eax + 0x17d], 0
push 0
push 0
lea edx, [ebp - 0x30]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 5
call fcn.00517b54
test al, al
je 0x5685d5
mov eax, dword [ebp - 0x30]
call fcn.005243a0
mov edx, dword [0x586a98]
mov edx, dword [edx]
mov word [edx + 0x268], ax
mov eax, dword [ebp - 0x30]
call fcn.004041e0
mov edx, edi
mov eax, dword [0x5865d0]
mov eax, dword [eax]
xor ecx, ecx
call fcn.00511884
jmp 0x56885b
push 0xc8
call sub.kernel32.dll_Sleep_2
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0xb0], 0
jg 0x568cfb
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp byte [eax + 0x17d], 0
je 0x5686f6
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov word [eax + 0x268], 0
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp byte [eax + 0x184], 0
je 0x568662
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050e610
test al, al
je 0x568662
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00520894
test al, al
jne 0x56866a
mov eax, dword [ebp - 0x24]
call fcn.0055db70
jmp 0x56866a
mov eax, dword [ebp - 0x24]
call fcn.0055db70
push 0x1f4
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050edd8
mov word [ebp - 0x28], ax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050fbe4
mov word [ebp - 0x2a], ax
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov byte [eax + 0x17d], 0
call fcn.004b9988
mov esi, eax
xor ebx, ebx
push 0
push 0
lea edx, [ebp - 0x30]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 5
call fcn.00517b54
test al, al
je 0x5686e6
mov eax, dword [ebp - 0x30]
call fcn.005243a0
mov edx, dword [0x586a98]
mov edx, dword [edx]
mov word [edx + 0x268], ax
mov eax, dword [ebp - 0x30]
call fcn.004041e0
mov edx, edi
mov eax, dword [0x5865d0]
mov eax, dword [eax]
xor ecx, ecx
call fcn.00511884
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050e4d4
test al, al
jne 0x56879d
call fcn.004b9988
sub eax, esi
cmp eax, 0x1f4
jbe 0x568762
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050edd8
cmp ax, word [ebp - 0x28]
jne 0x56873c
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050fbe4
cmp ax, word [ebp - 0x2a]
je 0x568762
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050edd8
test ax, ax
je 0x568759
sub ax, 0x64
je 0x568759
sub ax, 0x64
jne 0x568762
mov byte [ebp - 0x25], 1
jmp 0x568868
call fcn.004b9988
sub eax, esi
cmp eax, 0x3e8
jbe 0x56879d
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050edd8
cmp ax, word [ebp - 0x28]
jne 0x568794
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050fbe4
cmp ax, word [ebp - 0x2a]
je 0x56879d
mov byte [ebp - 0x25], 1
jmp 0x568868
call fcn.004b9988
sub eax, esi
cmp eax, 0x7d0
jbe 0x5687e2
push 0x18
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.00511cb0
push eax
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.00511c88
mov edx, eax
mov eax, dword [0x586a98]
mov eax, dword [eax]
pop ecx
call fcn.00514740
test eax, eax
jle 0x5687e2
mov byte [ebp - 0x25], 1
jmp 0x568868
call fcn.004b9988
sub eax, esi
cmp eax, 0x7530
ja 0x568868
call fcn.004b9988
sub eax, esi
cmp eax, 0x1770
jbe 0x568813
test ebx, ebx
jne 0x568813
mov edx, edi
mov eax, dword [0x5865d0]
mov eax, dword [eax]
xor ecx, ecx
call fcn.00511884
inc ebx
call fcn.004b9988
sub eax, esi
cmp eax, 0x2ee0
jbe 0x568837
cmp ebx, 1
jne 0x568837
mov edx, edi
mov eax, dword [0x5865d0]
mov eax, dword [eax]
xor ecx, ecx
call fcn.00511884
inc ebx
call fcn.004b9988
sub eax, esi
cmp eax, 0x4650
jbe 0x56885b
cmp ebx, 2
jne 0x56885b
mov edx, edi
mov eax, dword [0x5865d0]
mov eax, dword [eax]
xor ecx, ecx
call fcn.00511884
inc ebx
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0xd], 0
je 0x5685ea
cmp byte [ebp - 0x25], 0
je 0x568891
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050e4d4
test al, al
je 0x568891
push 0x12c
call sub.kernel32.dll_Sleep_2
mov byte [ebp - 0x25], 0
jmp 0x568cfb
push 0x1f4
call sub.kernel32.dll_Sleep_2
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0xb0], 0
jg 0x568cfb
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp byte [eax + 0x5cd], 0
je 0x5688c5
push 0x1f4
call sub.kernel32.dll_Sleep_2
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0xb0], 0
jg 0x568cfb
cmp byte [ebp - 0x25], 0
je 0x568c9f
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050edd8
sub ax, 1
je 0x568c9f
sub ax, 0x64
je 0x568c9f
sub ax, 0x64
je 0x568c9f
mov eax, dword [0x586404]
mov eax, dword [eax]
mov eax, dword [eax + 0x5d0]
add eax, 0xffffff6a
sub eax, 2
jb 0x568c9f
lea edx, [ebp - 0x30]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 8
call fcn.00517a8c
test al, al
je 0x568c9f
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050fbe4
mov word [ebp - 0x2a], ax
mov eax, dword [ebp - 0x30]
call fcn.005243a0
movzx edx, ax
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00520444
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050fbe4
cmp ax, word [ebp - 0x2a]
jne 0x568c51
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp byte [eax + 0x92], 0
je 0x568c51
mov byte [ebp - 0x31], 0
mov edx, edi
lea ecx, [ebp - 4]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00515a1c
cmp dword [ebp - 4], 0
je 0x568c51
mov ebx, 2
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050fbe4
cmp ax, word [ebp - 0x2a]
jne 0x568b33
lea ecx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
call fcn.00517508
test al, al
jne 0x568a85
lea ecx, [ebp - 0xc8]
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.004409b0
mov eax, dword [ebp - 0xc8]
xor edx, edx
call fcn.0040a188
test eax, eax
je 0x568a35
lea ecx, [ebp - 0xcc]
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.004409b0
mov edx, dword [ebp - 0xcc]
lea ecx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00517508
test al, al
jne 0x568a85
lea ecx, [ebp - 0xd0]
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.00440994
mov eax, dword [ebp - 0xd0]
xor edx, edx
call fcn.0040a188
test eax, eax
je 0x568aa2
lea ecx, [ebp - 0xd4]
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.00440994
mov edx, dword [ebp - 0xd4]
lea ecx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00517508
test al, al
je 0x568aa2
mov eax, dword [0x5865d0]
mov eax, dword [eax]
movzx ecx, word [ebp - 0x1c]
movzx edx, word [ebp - 0x20]
call fcn.005102e8
mov byte [ebp - 0x31], 1
jmp 0x568b33
cmp byte [ebp - 0x31], 0
jne 0x568b2c
mov edx, dword [ebp - 4]
mov eax, 0x568e2c
call fcn.00405784
test eax, eax
jle 0x568aec
movzx eax, byte [0x568e30]
push eax
lea eax, [ebp - 0xd8]
push eax
mov ecx, 0x568e3c
mov edx, 0x568e2c
mov eax, dword [ebp - 4]
call fcn.0040f6f0
mov edx, dword [ebp - 0xd8]
lea eax, [ebp - 4]
call fcn.00405240
mov edx, dword [ebp - 4]
mov eax, 0x568e48
call fcn.00405784
test eax, eax
jle 0x568b2c
movzx eax, byte [0x568e30]
push eax
lea eax, [ebp - 0xdc]
push eax
mov ecx, 0x568e54
mov edx, 0x568e48
mov eax, dword [ebp - 4]
call fcn.0040f6f0
mov edx, dword [ebp - 0xdc]
lea eax, [ebp - 4]
call fcn.00405240
dec ebx
jne 0x5689b5
cmp byte [ebp - 0x31], 0
jne 0x568c51
lea ecx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x568e60
call fcn.00517508
test al, al
jne 0x568c3d
lea ecx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x568e6c
call fcn.00517508
test al, al
jne 0x568c3d
lea ecx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x568e78
call fcn.00517508
test al, al
jne 0x568c3d
lea ecx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x568e84
call fcn.00517508
test al, al
jne 0x568c3d
lea ecx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x568e90
call fcn.00517508
test al, al
jne 0x568c3d
lea ecx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x568e9c
call fcn.00517508
test al, al
jne 0x568c3d
lea ecx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x568e2c
call fcn.00517508
test al, al
jne 0x568c3d
lea ecx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x568e3c
call fcn.00517508
test al, al
jne 0x568c3d
lea ecx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x568e48
call fcn.00517508
test al, al
jne 0x568c3d
lea ecx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x568e54
call fcn.00517508
test al, al
je 0x568c51
mov eax, dword [0x5865d0]
mov eax, dword [eax]
movzx ecx, word [ebp - 0x1c]
movzx edx, word [ebp - 0x20]
call fcn.005102e8
mov eax, dword [ebp - 0x30]
call fcn.005243a0
mov edx, eax
mov eax, dword [0x586a98]
mov eax, dword [eax]
xor ecx, ecx
call fcn.00522ad8
mov byte [ebp - 0x25], al
mov eax, dword [ebp - 0x30]
call fcn.004041e0
cmp byte [ebp - 0x25], 0
jne 0x568c8e
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050fbe4
cmp ax, word [ebp - 0x2a]
setne byte [ebp - 0x25]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x568ea8
call fcn.00521e50
cmp dword [ebp - 0x38], 0
jle 0x568cc9
cmp dword [ebp - 0x3c], 0
jle 0x568cc9
mov eax, dword [ebp - 0x3c]
push eax
push 4
push 0
push 0
push 0
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x24]
call fcn.00522bb0
cmp byte [ebp - 0x25], 0
je 0x568ce7
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050edd8
movzx eax, ax
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x160], eax
cmp byte [ebp - 0x25], 0
je 0x568cfb
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0xb0], 0
sete byte [ebp - 0x25]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x568d3b
lea eax, [ebp - 0xdc]
mov edx, 0x19
call fcn.004051cc
lea eax, [ebp - 0x20]
mov edx, dword [0x50acfc]
call fcn.00405ee4
lea eax, [ebp - 0x10]
mov edx, 4
call fcn.004051cc
ret