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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff3c
push ebx
push esi
xor edx, edx
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xc0], edx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
lea eax, [ebp - 0x20]
mov edx, dword [0x50ad94]
call fcn.00405e14
xor eax, eax
push ebp
push 0x526ba6
push dword fs:[eax]
mov dword fs:[eax], esp
lea ecx, [ebp - 0x54]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov edx, 0xa
call fcn.0050d67c
test al, al
jne 0x525c26
mov eax, dword [ebp - 4]
mov byte [eax + 0x94], 0
jmp case.0x526865.3
lea ecx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [ebp - 0x54]
call fcn.005170b8
test al, al
jne 0x525c4b
mov eax, dword [ebp - 4]
mov byte [eax + 0x94], 0
jmp case.0x526865.3
mov eax, dword [ebp - 4]
cmp dword [eax + 0xf0], 0
jle 0x525dc4
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp dword [eax + 0x5d0], 0x96
jne 0x525cae
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050f20c
cmp eax, 0xf4240
jl case.0x526865.3
lea ecx, [ebp - 0x88]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov edx, 0x526bbc
call fcn.0050d68c
test al, al
je case.0x526865.3
cmp dword [ebp - 0x80], 5
jl case.0x526865.3
push ebp
mov eax, 8
call fcn.005255a0
pop ecx
test al, al
je case.0x526865.3
lea ecx, [ebp - 0xbc]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x59f
call fcn.0050d5c8
test al, al
je case.0x526865.3
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x59f
call fcn.0050d8c8
mov ebx, eax
mov eax, dword [ebp - 0x40]
shr eax, 0x18
test al, 0xff
jne 0x525d20
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xf0]
dec eax
push eax
push 1
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x50]
call fcn.0050b2ac
jmp 0x525d42
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xf0]
dec eax
push eax
push 0
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x50]
call fcn.0050b2ac
push 0xc8
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp dword [eax + 0x5d0], 0x96
jne 0x525db5
call fcn.004b9988
mov esi, eax
jmp 0x525dac
push 0x64
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x59f
call fcn.0050d8c8
cmp ebx, eax
jle 0x525d9e
push 0
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov ecx, 5
mov edx, dword [ebp - 0x84]
call fcn.0050b8bc
jmp 0x525db5
call fcn.004b9988
sub eax, esi
cmp eax, 0x1f4
ja 0x525db5
mov eax, dword [ebp - 4]
cmp byte [eax + 0xd], 0
je 0x525d68
mov eax, dword [ebp - 4]
mov byte [eax + 0x94], 0
jmp case.0x526865.3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x98]
cmp eax, dword [ebp - 0x38]
jg 0x525df2
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x526bcc
call fcn.00521e50
mov eax, dword [ebp - 4]
mov byte [eax + 0x94], 0
jmp case.0x526865.3
mov dword [ebp - 0x84], 0xffffffff
cmp dword [ebp - 0x38], 0xa
jge 0x525e78
cmp dword [ebp - 0x30], 0x32
ja 0x525e78
lea ecx, [ebp - 0x88]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x3f4
call fcn.0050d5c8
test al, al
jne 0x5262d9
lea ecx, [ebp - 0x88]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x3f5
call fcn.0050d5c8
test al, al
jne 0x5262d9
push ebp
mov eax, 3
call fcn.005255a0
pop ecx
test al, al
jne case.0x526865.3
mov eax, dword [ebp - 4]
mov byte [eax + 0x94], 0
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x526be0
call fcn.00521e50
jmp case.0x526865.3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x114]
test eax, eax
jle 0x525f96
cmp eax, dword [ebp - 0x38]
jg 0x525f96
lea eax, [ebp - 8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x100]
call fcn.00405240
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x10c]
cmp byte [ebp - 0x1e], 1
jne 0x525f24
lea ecx, [ebp - 0x88]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov edx, 0x526bfc
call fcn.0050d68c
test al, al
jne 0x5262d9
lea ecx, [ebp - 0x88]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov edx, 0x526c10
call fcn.0050d68c
test al, al
jne 0x5262d9
push ebp
mov eax, 9
call fcn.005255a0
pop ecx
test al, al
jne case.0x526865.3
mov eax, dword [ebp - 4]
mov byte [eax + 0x94], 0
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x526c24
call fcn.00521e50
jmp case.0x526865.3
lea ecx, [ebp - 0x88]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov edx, 0x526c44
call fcn.0050d68c
test al, al
jne 0x5262d9
lea ecx, [ebp - 0x88]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov edx, 0x526c58
call fcn.0050d68c
test al, al
jne 0x5262d9
push ebp
mov eax, 0xa
call fcn.005255a0
pop ecx
test al, al
jne case.0x526865.3
mov eax, dword [ebp - 4]
mov byte [eax + 0x94], 0
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x526c6c
call fcn.00521e50
jmp case.0x526865.3
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xb0]
mov eax, dword [ebp - 0x38]
cmp edx, eax
jg 0x52613c
lea eax, [ebp - 8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xfc]
call fcn.00405240
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x108]
mov eax, dword [0x586404]
mov eax, dword [eax]
mov eax, dword [eax + 0x5d0]
sub eax, 1
jb 0x525fe6
sub eax, 0xc7
jb 0x526092
jmp 0x5262d9
lea ecx, [ebp - 0x88]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x34d
call fcn.0050d5c8
test al, al
jne 0x5262d9
lea ecx, [ebp - 0x88]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x34e
call fcn.0050d5c8
test al, al
jne 0x5262d9
lea ecx, [ebp - 0x88]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x3d7
call fcn.0050d5c8
test al, al
jne 0x5262d9
lea ecx, [ebp - 0x88]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x685
call fcn.0050d5c8
test al, al
jne 0x5262d9
push ebp
mov eax, 2
call fcn.005255a0
pop ecx
test al, al
jne case.0x526865.3
mov eax, dword [ebp - 4]
mov byte [eax + 0x94], 0
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x526c8c
call fcn.00521e50
jmp case.0x526865.3
cmp byte [ebp - 0x1e], 1
jne 0x5260ea
lea ecx, [ebp - 0x88]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x34d
call fcn.0050d5c8
test al, al
jne 0x5262d9
push ebp
mov eax, 6
call fcn.005255a0
pop ecx
test al, al
jne case.0x526865.3
mov eax, dword [ebp - 4]
mov byte [eax + 0x94], 0
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x526ca8
call fcn.00521e50
jmp case.0x526865.3
lea ecx, [ebp - 0x88]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x34e
call fcn.0050d5c8
test al, al
jne 0x5262d9
push ebp
mov eax, 7
call fcn.005255a0
pop ecx
test al, al
jne case.0x526865.3
mov eax, dword [ebp - 4]
mov byte [eax + 0x94], 0
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x526cc4
call fcn.00521e50
jmp case.0x526865.3
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0xac]
jl 0x5262d9
lea eax, [ebp - 8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x104]
call fcn.00405240
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x110]
mov eax, dword [0x586404]
mov eax, dword [eax]
mov eax, dword [eax + 0x5d0]
sub eax, 1
jb 0x526187
sub eax, 0xc7
jb 0x526233
jmp 0x5262d9
lea ecx, [ebp - 0x88]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x34f
call fcn.0050d5c8
test al, al
jne 0x5262d9
lea ecx, [ebp - 0x88]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x350
call fcn.0050d5c8
test al, al
jne 0x5262d9
lea ecx, [ebp - 0x88]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0xdd1
call fcn.0050d5c8
test al, al
jne 0x5262d9
lea ecx, [ebp - 0x88]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0xdd2
call fcn.0050d5c8
test al, al
jne 0x5262d9
push ebp
mov eax, 1
call fcn.005255a0
pop ecx
test al, al
jne case.0x526865.3
mov eax, dword [ebp - 4]
mov byte [eax + 0x94], 0
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x526ce0
call fcn.00521e50
jmp case.0x526865.3
cmp byte [ebp - 0x1e], 1
jne 0x52628b
lea ecx, [ebp - 0x88]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x34f
call fcn.0050d5c8
test al, al
jne 0x5262d9
push ebp
mov eax, 4
call fcn.005255a0
pop ecx
test al, al
jne case.0x526865.3
mov eax, dword [ebp - 4]
mov byte [eax + 0x94], 0
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x526cf8
call fcn.00521e50
jmp case.0x526865.3
lea ecx, [ebp - 0x88]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x350
call fcn.0050d5c8
test al, al
jne 0x5262d9
push ebp
mov eax, 5
call fcn.005255a0
pop ecx
test al, al
jne case.0x526865.3
mov eax, dword [ebp - 4]
mov byte [eax + 0x94], 0
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x526d10
call fcn.00521e50
jmp case.0x526865.3
cmp dword [ebp - 0x30], 0x32
ja 0x526313
mov eax, dword [ebp - 0x50]
push eax
push 0xffff
push 0xffff
push 0xffff
push 0xffff
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x84]
mov edx, 0xc
call fcn.00511640
jmp case.0x526865.3
xor eax, eax
mov dword [ebp - 0xbc], eax
movzx eax, byte [ebp - 0x44]
sub al, 2
je 0x526330
sub al, 6
je 0x5266a4
jmp 0x526723
mov eax, dword [ebp - 8]
mov edx, 0x526d28
call fcn.004055d0
je 0x52659f
cmp dword [ebp - 8], 0
je 0x52659f
cmp ebx, 5
je 0x52639f
lea ecx, [ebp - 0xbc]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov edx, dword [ebp - 8]
call fcn.0050d68c
test al, al
jne 0x52639f
mov eax, dword [ebp - 4]
mov byte [eax + 0x94], 0
lea eax, [ebp - 0xc0]
mov ecx, dword [ebp - 8]
mov edx, 0x526d38
call fcn.004054c0
mov edx, dword [ebp - 0xc0]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00521e50
jmp case.0x526865.3
lea ecx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [ebp - 0x88]
call fcn.005170b8
cmp dword [ebp - 0x30], 0x64
jb 0x5263c4
mov eax, 0x31
jmp 0x52645a
mov eax, dword [ebp - 0x1c]
mov edx, 0x526d48
call fcn.004055d0
je 0x5263e2
mov eax, dword [ebp - 0x1c]
mov edx, 0x526d58
call fcn.004055d0
jne 0x5263e9
mov eax, 3
jmp 0x52645a
mov eax, dword [ebp - 0x1c]
mov edx, 0x526d68
call fcn.004055d0
je 0x526407
mov eax, dword [ebp - 0x1c]
mov edx, 0x526d7c
call fcn.004055d0
jne 0x52640e
mov eax, 2
jmp 0x52645a
mov eax, dword [ebp - 0x1c]
mov edx, 0x526c44
call fcn.004055d0
je 0x52642c
mov eax, dword [ebp - 0x1c]
mov edx, 0x526c10
call fcn.004055d0
jne 0x526433
mov eax, 0x19
jmp 0x52645a
mov eax, dword [ebp - 0x1c]
mov edx, 0x526c58
call fcn.004055d0
je 0x526451
mov eax, dword [ebp - 0x1c]
mov edx, 0x526bfc
call fcn.004055d0
jne 0x526458
mov eax, 0x31
jmp 0x52645a
xor eax, eax
cmp ebx, 5
ja case.0x526463.3
jmp dword [ebx*4 + 0x52646a]
cmp dword [ebp - 0xbc], 0x3da
jne 0x5264c1
mov edx, dword [ebp - 0x50]
push edx
mov edx, dword [ebp - 0xb8]
push edx
push 0xffff
push 0xffff
push 0xffff
mov edx, dword [0x5865d0]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x84]
xchg edx, eax
call fcn.00511640
jmp case.0x526463.3
mov ecx, dword [ebp - 0x50]
push ecx
mov edx, dword [ebp - 0xb8]
push edx
push edx
push edx
push edx
mov edx, dword [0x5865d0]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x84]
xchg edx, eax
call fcn.00511640
jmp case.0x526463.3
mov edx, dword [ebp - 0x50]
push edx
mov edx, dword [ebp - 0xb8]
push edx
push 0xffff
push 0xffff
push 0xffff
mov edx, dword [0x5865d0]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x84]
xchg edx, eax
call fcn.00511640
jmp case.0x526463.3
mov ecx, dword [ebp - 0x50]
push ecx
mov edx, dword [ebp - 0xb8]
push edx
push edx
push 0xffff
push 0xffff
mov edx, dword [0x5865d0]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x84]
xchg edx, eax
call fcn.00511640
jmp case.0x526463.3
mov ecx, dword [ebp - 0x50]
push ecx
mov edx, dword [ebp - 0xb8]
push edx
push edx
push edx
push edx
mov edx, dword [0x5865d0]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x84]
xchg edx, eax
call fcn.00511640
jmp case.0x526463.3
mov edx, dword [ebp - 0x50]
push edx
push 0xffff
push 0xffff
push 0xffff
push 0xffff
mov edx, dword [0x5865d0]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x84]
xchg edx, eax
call fcn.00511640
jmp case.0x526463.3
lea ecx, [ebp - 0xbc]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x271
call fcn.0050d5c8
test al, al
je 0x5265ca
cmp dword [ebp - 0xb4], 2
jge 0x5265ca
xor eax, eax
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 0
jne case.0x526463.3
lea ecx, [ebp - 0xbc]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x3d9
call fcn.0050d5c8
test al, al
jne case.0x526463.3
push ebp
xor eax, eax
call fcn.005255a0
pop ecx
test al, al
jne case.0x526865.3
mov eax, dword [ebp - 4]
mov byte [eax + 0x94], 0
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x526d90
call fcn.00521e50
jmp case.0x526865.3
cmp dword [ebp - 0x88], 0x34f
jae 0x526631
mov eax, 2
jmp 0x526636
mov eax, 3
cmp dword [ebp - 0xbc], 0x3d9
jne 0x526675
mov edx, dword [ebp - 0x50]
push edx
mov edx, dword [ebp - 0xb8]
push edx
push 0xffff
push 0xffff
push 0xffff
mov edx, dword [0x5865d0]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x84]
xchg edx, eax
call fcn.00511640
jmp case.0x526865.3
mov ecx, dword [ebp - 0x50]
push ecx
mov edx, dword [ebp - 0xb8]
push edx
push edx
push 0xffff
push 0xffff
mov edx, dword [0x5865d0]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x84]
xchg edx, eax
call fcn.00511640
jmp case.0x526865.3
lea ecx, [ebp - 0xbc]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x35d
call fcn.0050d5c8
test al, al
je 0x5266cf
cmp dword [ebp - 0xb4], 2
jge 0x5266cf
xor eax, eax
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 0
je case.0x526865.3
cmp dword [ebp - 0x88], 0x34f
jae 0x5266ef
mov eax, 2
jmp 0x5266f4
mov eax, 3
mov ecx, dword [ebp - 0x50]
push ecx
mov edx, dword [ebp - 0xb8]
push edx
push edx
push 0xffff
push 0xffff
mov edx, dword [0x5865d0]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x84]
xchg edx, eax
call fcn.00511640
jmp case.0x526865.3
mov eax, dword [ebp - 8]
mov edx, 0x526d28
call fcn.004055d0
je 0x5269a4
cmp dword [ebp - 8], 0
je 0x5269a4
cmp ebx, 5
je 0x526792
lea ecx, [ebp - 0xbc]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov edx, dword [ebp - 8]
call fcn.0050d68c
test al, al
jne 0x526792
mov eax, dword [ebp - 4]
mov byte [eax + 0x94], 0
lea eax, [ebp - 0xc4]
mov ecx, dword [ebp - 8]
mov edx, 0x526d38
call fcn.004054c0
mov edx, dword [ebp - 0xc4]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00521e50
jmp case.0x526865.3
lea ecx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [ebp - 0x88]
call fcn.005170b8
mov eax, dword [ebp - 0x1c]
mov edx, 0x526d48
call fcn.004055d0
je 0x5267c5
mov eax, dword [ebp - 0x1c]
mov edx, 0x526d58
call fcn.004055d0
jne 0x5267cc
mov eax, 3
jmp 0x52683d
mov eax, dword [ebp - 0x1c]
mov edx, 0x526d68
call fcn.004055d0
je 0x5267ea
mov eax, dword [ebp - 0x1c]
mov edx, 0x526d7c
call fcn.004055d0
jne 0x5267f1
mov eax, 2
jmp 0x52683d
mov eax, dword [ebp - 0x1c]
mov edx, 0x526c58
call fcn.004055d0
je 0x52680f
mov eax, dword [ebp - 0x1c]
mov edx, 0x526bfc
call fcn.004055d0
jne 0x526816
mov eax, 0x31
jmp 0x52683d
mov eax, dword [ebp - 0x1c]
mov edx, 0x526c44
call fcn.004055d0
je 0x526834
mov eax, dword [ebp - 0x1c]
mov edx, 0x526c10
call fcn.004055d0
jne 0x52683b
mov eax, 0x19
jmp 0x52683d
xor eax, eax
cmp eax, 0x19
jne 0x52685c
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x84]
call fcn.0050e154
jmp case.0x526865.3
cmp ebx, 5
ja case.0x526865.3
jmp dword [ebx*4 + 0x52686c]
cmp dword [ebp - 0xbc], 0x3da
jne 0x5268c3
mov edx, dword [ebp - 0x50]
push edx
mov edx, dword [ebp - 0xb8]
push edx
push 0xffff
push 0xffff
push 0xffff
mov edx, dword [0x5865d0]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x84]
xchg edx, eax
call fcn.00511640
jmp case.0x526865.3
mov ecx, dword [ebp - 0x50]
push ecx
mov edx, dword [ebp - 0xb8]
push edx
push edx
push edx
push edx
mov edx, dword [0x5865d0]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x84]
xchg edx, eax
call fcn.00511640
jmp case.0x526865.3
mov edx, dword [ebp - 0x50]
push edx
mov edx, dword [ebp - 0xb8]
push edx
push 0xffff
push 0xffff
push 0xffff
mov edx, dword [0x5865d0]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x84]
xchg edx, eax
call fcn.00511640
jmp case.0x526865.3
mov ecx, dword [ebp - 0x50]
push ecx
mov edx, dword [ebp - 0xb8]
push edx
push edx
push 0xffff
push 0xffff
mov edx, dword [0x5865d0]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x84]
xchg edx, eax
call fcn.00511640
jmp case.0x526865.3
mov ecx, dword [ebp - 0x50]
push ecx
mov edx, dword [ebp - 0xb8]
push edx
push edx
push edx
push edx
mov edx, dword [0x5865d0]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x84]
xchg edx, eax
call fcn.00511640
jmp case.0x526865.3
mov edx, dword [ebp - 0x50]
push edx
push 0xffff
push 0xffff
push 0xffff
push 0xffff
mov edx, dword [0x5865d0]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x84]
xchg edx, eax
call fcn.00511640
jmp case.0x526865.3
lea ecx, [ebp - 0xbc]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x272
call fcn.0050d5c8
test al, al
je 0x5269f9
mov eax, dword [0x586404]
mov eax, dword [eax]
mov eax, dword [eax + 0x5d0]
add eax, 0xffffff6a
sub eax, 2
jae 0x5269e8
cmp dword [ebp - 0xb4], 2
jge 0x5269f9
xor eax, eax
mov dword [ebp - 0xbc], eax
jmp 0x5269f9
cmp dword [ebp - 0xb4], 4
jge 0x5269f9
xor eax, eax
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 0
jne 0x526a4d
lea ecx, [ebp - 0xbc]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov dx, 0x3da
call fcn.0050d5c8
test al, al
jne 0x526a4d
push ebp
xor eax, eax
call fcn.005255a0
pop ecx
test al, al
jne case.0x526865.3
mov eax, dword [ebp - 4]
mov byte [eax + 0x94], 0
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x526da8
call fcn.00521e50
jmp case.0x526865.3
lea ecx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [ebp - 0x88]
call fcn.005170b8
mov eax, dword [ebp - 0x1c]
mov edx, 0x526d48
call fcn.004055d0
je 0x526a80
mov eax, dword [ebp - 0x1c]
mov edx, 0x526d58
call fcn.004055d0
jne 0x526a87
mov eax, 3
jmp 0x526af8
mov eax, dword [ebp - 0x1c]
mov edx, 0x526d68
call fcn.004055d0
je 0x526aa5
mov eax, dword [ebp - 0x1c]
mov edx, 0x526d7c
call fcn.004055d0
jne 0x526aac
mov eax, 2
jmp 0x526af8
mov eax, dword [ebp - 0x1c]
mov edx, 0x526c58
call fcn.004055d0
je 0x526aca
mov eax, dword [ebp - 0x1c]
mov edx, 0x526bfc
call fcn.004055d0
jne 0x526ad1
mov eax, 0x31
jmp 0x526af8
mov eax, dword [ebp - 0x1c]
mov edx, 0x526c44
call fcn.004055d0
je 0x526aef
mov eax, dword [ebp - 0x1c]
mov edx, 0x526c10
call fcn.004055d0
jne 0x526af6
mov eax, 0x19
jmp 0x526af8
xor eax, eax
cmp eax, 0x19
jne 0x526b14
mov eax, dword [0x5865d0]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x84]
call fcn.0050e154
jmp case.0x526865.3
cmp dword [ebp - 0xbc], 0x3da
jne 0x526b50
mov edx, dword [ebp - 0x50]
push edx
mov edx, dword [ebp - 0xb8]
push edx
push 0xffff
push 0xffff
push 0xffff
mov edx, dword [0x5865d0]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x84]
xchg edx, eax
call fcn.00511640
jmp case.0x526865.3
mov ecx, dword [ebp - 0x50]
push ecx
mov edx, dword [ebp - 0xb8]
push edx
push edx
push edx
push edx
mov edx, dword [0x5865d0]
mov edx, dword [edx]
mov ecx, dword [ebp - 0x84]
xchg edx, eax
call fcn.00511640
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x526bad
lea eax, [ebp - 0xc4]
mov edx, 2
call fcn.004051cc
lea eax, [ebp - 0x20]
mov edx, dword [0x50ad94]
call fcn.00405ee4
lea eax, [ebp - 8]
call fcn.004051a8
ret