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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff50
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x10]
call fcn.00403fd8
mov ecx, 0x14
lea eax, [ebp - 0x88]
mov edx, dword [0x4010c4]
call fcn.0040446c
xor eax, eax
push ebp
push 0x5232d0
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x10]
call fcn.00403e24
test eax, eax
je 0x52327f
mov byte [ebp - 0x21], 0
cmp dword [ebp - 8], 0
jne 0x522436
mov eax, dword [ebp - 0xc]
call fcn.00544440
and eax, 0xff
imul eax, eax, 0xeb
mov eax, dword [eax + 0x55014e]
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x10]
mov eax, 0x5232e8
call fcn.0040410c
test eax, eax
setg byte [ebp - 1]
cmp byte [ebp - 1], 0
je 0x522461
cmp byte [0x55026e], 0
jne 0x522474
cmp byte [0x550359], 0
jne 0x522474
mov eax, dword [ebp - 8]
imul eax, dword [eax + 0xc], 0xeb
cmp byte [eax + 0x550183], 0
je 0x52248e
push 0
mov ecx, dword [0x55055c]
mov edx, 0x5232f8
mov eax, dword [ebp - 0xc]
call fcn.0051e548
jmp 0x52327f
mov dl, 1
mov eax, dword [0x40f428]
call fcn.00402f14
mov dword [ebp - 0x30], eax
mov dl, 1
mov eax, dword [0x40f428]
call fcn.00402f14
mov dword [ebp - 0x2c], eax
mov dl, 1
mov eax, dword [0x40f428]
call fcn.00402f14
mov dword [ebp - 0x34], eax
mov eax, dword [0x5503f8]
cmp eax, 0xf4fd0171
jg 0x5224fb
je 0x52327f
sub eax, 0x852f3e33
je 0x52327f
sub eax, 0x30105f4c
je 0x52327f
sub eax, 0x315e3180
je 0x52327f
sub eax, 0x6fb29d6
je 0x52327f
jmp 0x522527
sub eax, 0x13857c5e
je 0x52327f
sub eax, 0x7b88217
je 0x52327f
sub eax, 0xe6b098d
je 0x52327f
sub eax, 0x515a1d3d
je 0x52327f
xor edx, edx
push ebp
push 0x523275
push dword fs:[edx]
mov dword fs:[edx], esp
xor ebx, ebx
push 0
mov eax, dword [ebp - 8]
mov cl, byte [eax + 0xc]
dec ecx
mov edx, dword [0x54d6c4]
mov edx, dword [edx]
mov eax, dword [ebp - 0xc]
call fcn.0053a858
cmp byte [ebp - 1], 0
je 0x522570
mov cl, 1
mov dl, 1
mov eax, dword [ebp - 0xc]
call fcn.005109a8
mov cl, 1
mov dl, 2
mov eax, dword [ebp - 0xc]
call fcn.005109a8
jmp 0x522580
mov eax, dword [ebp - 8]
mov dl, byte [eax + 0xc]
mov cl, 1
mov eax, dword [ebp - 0xc]
call fcn.005109a8
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
jmp 0x522b87
lea ecx, [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 0x30]
mov esi, dword [eax]
call dword [esi + 0xc]
xor edx, edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [ebp - 0x20]
call fcn.00403e24
cmp eax, 2
jle 0x5226ac
mov eax, dword [ebp - 0x20]
cmp byte [eax], 0x5b
jne 0x5226ac
mov eax, dword [ebp - 0x20]
call fcn.00403e24
mov edx, dword [ebp - 0x20]
cmp byte [edx + eax - 1], 0x5d
jne 0x5226ac
lea eax, [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
call fcn.00403c40
lea eax, [ebp - 0x1c]
mov ecx, 1
mov edx, 1
call fcn.00404068
mov eax, dword [ebp - 0x1c]
call fcn.00403e24
mov edx, eax
lea eax, [ebp - 0x1c]
mov ecx, 1
call fcn.00404068
lea eax, [ebp - 0x8c]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [0x5501ac]
call fcn.00403e70
mov eax, dword [ebp - 0x8c]
call fcn.00456fa8
test al, al
je 0x5226ac
mov dl, 1
mov eax, dword [0x40f428]
call fcn.00402f14
mov esi, eax
lea eax, [ebp - 0x8c]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [0x5501ac]
call fcn.00403e70
mov edx, dword [ebp - 0x8c]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x58]
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x5226a0
inc eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 0x8c]
mov edx, dword [ebp - 0x14]
mov eax, esi
mov edi, dword [eax]
call dword [edi + 0xc]
mov ecx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x30]
mov edi, dword [eax]
call dword [edi + 0x54]
inc dword [ebp - 0x14]
dec dword [ebp - 0x38]
jne 0x522677
mov eax, esi
call fcn.00402f44
jmp 0x522b87
mov eax, dword [ebp - 0x20]
mov edx, 0x52335c
call fcn.00403f34
jne 0x522729
cmp dword [0x5503f8], 0xe69dceff
jne 0x5226d1
call fcn.004036bc
jmp 0x52327f
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
call dword [edx + 0x40]
jmp 0x52271b
lea ecx, [ebp - 0x20]
xor edx, edx
mov eax, dword [ebp - 0x30]
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, dword [ebp - 0x20]
mov edx, 0x523368
call fcn.00403f34
je 0x522702
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
call dword [ecx + 0x34]
xor edx, edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [ebp - 0x20]
mov edx, 0x523368
call fcn.00403f34
je 0x522734
mov eax, dword [ebp - 0x30]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x5226db
jmp 0x522734
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
call dword [ecx + 0x1c]
jmp 0x522898
mov byte [ebp - 0x21], 1
mov edx, dword [ebp - 0x20]
mov eax, 0x523374
call fcn.0040410c
test eax, eax
jle 0x522820
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x20]
mov eax, 0x523380
call fcn.0040410c
mov esi, eax
mov edx, dword [ebp - 0x20]
mov eax, 0x523374
call fcn.0040410c
inc eax
sub esi, eax
push esi
mov edx, dword [ebp - 0x20]
mov eax, 0x523374
call fcn.0040410c
mov edx, eax
add edx, 2
mov eax, dword [ebp - 0x20]
pop ecx
call fcn.00404028
push 1
lea eax, [ebp - 0x8c]
push eax
mov ecx, dword [0x54d6c4]
mov ecx, dword [ecx]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
call fcn.004532e0
mov edx, dword [ebp - 0x8c]
lea eax, [ebp - 0x20]
call fcn.00403c40
push 1
lea eax, [ebp - 0x8c]
push eax
mov ecx, dword [0x54d6c4]
mov ecx, dword [ecx]
mov edx, 0x523380
mov eax, dword [ebp - 0x28]
call fcn.004532e0
mov edx, dword [ebp - 0x8c]
lea eax, [ebp - 0x28]
call fcn.00403c40
push 1
lea eax, [ebp - 0x8c]
push eax
mov ecx, dword [0x54d6c4]
mov ecx, dword [ecx]
mov edx, 0x52338c
mov eax, dword [ebp - 0x28]
call fcn.004532e0
mov edx, dword [ebp - 0x8c]
lea eax, [ebp - 0x28]
call fcn.00403c40
jmp 0x52282d
lea eax, [ebp - 0x28]
mov edx, 0x523398
call fcn.00403c40
inc ebx
lea eax, [ebp + ebx*4 - 0x8c]
push eax
push 0
push 0
xor ecx, ecx
mov edx, dword [ebp - 0x28]
mov eax, 0x5233b4
call fcn.00453810
test al, al
je 0x522863
mov eax, dword [ebp + ebx*4 - 0x8c]
mov edx, dword [0x54d6c4]
mov edx, dword [edx]
call fcn.00403f34
jne 0x52286d
call fcn.004036bc
jmp 0x52327f
push 1
lea eax, [ebp - 0x8c]
push eax
mov ecx, dword [ebp + ebx*4 - 0x8c]
mov edx, 0x5233c4
mov eax, dword [ebp - 0x20]
call fcn.004532e0
mov edx, dword [ebp - 0x8c]
lea eax, [ebp - 0x20]
call fcn.00403c40
mov edx, dword [ebp - 0x20]
mov eax, 0x5233c4
call fcn.0040410c
test eax, eax
jg 0x522744
cmp byte [ebp - 0x21], 0
je 0x522952
mov dword [ebp - 0x18], 0x14
lea esi, [ebp - 0x3c]
lea edx, [ebp - 0x90]
mov eax, dword [ebp - 0x18]
call fcn.00408e4c
mov ecx, dword [ebp - 0x90]
lea eax, [ebp - 0x8c]
mov edx, 0x5233d0
call fcn.00403e70
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x20]
call fcn.0040410c
test eax, eax
jle 0x522942
push 1
lea eax, [ebp - 0x8c]
push eax
lea edx, [ebp - 0x8c]
mov eax, dword [ebp - 0x18]
call fcn.00408e4c
mov ecx, dword [ebp - 0x8c]
lea eax, [ebp - 0x90]
mov edx, 0x5233d0
call fcn.00403e70
mov edx, dword [ebp - 0x90]
mov ecx, dword [esi]
mov eax, dword [ebp - 0x20]
call fcn.004532e0
mov edx, dword [ebp - 0x8c]
lea eax, [ebp - 0x20]
call fcn.00403c40
dec dword [ebp - 0x18]
sub esi, 4
cmp dword [ebp - 0x18], 0
jne 0x5228c1
push 0
lea eax, [ebp - 0x8c]
push eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x1428]
mov edx, 0x5233dc
mov eax, dword [ebp - 0x20]
call fcn.004532e0
mov edx, dword [ebp - 0x8c]
lea eax, [ebp - 0x20]
call fcn.00403c40
push 0
lea eax, [ebp - 0x8c]
push eax
call fcn.00430038
lea edx, [ebp - 0x90]
call fcn.0042fb58
mov ecx, dword [ebp - 0x90]
mov edx, 0x5233e8
mov eax, dword [ebp - 0x20]
call fcn.004532e0
mov edx, dword [ebp - 0x8c]
lea eax, [ebp - 0x20]
call fcn.00403c40
mov eax, dword [ebp - 8]
imul eax, dword [eax + 0xc], 0xeb
mov eax, dword [eax + 0x55013a]
call fcn.0047bdd4
test eax, eax
je 0x522b29
mov edx, dword [ebp - 0x20]
mov eax, 0x5233f4
call fcn.0040410c
test eax, eax
jg 0x522a0d
mov edx, dword [ebp - 0x20]
mov eax, 0x523400
call fcn.0040410c
test eax, eax
jg 0x522a0d
mov edx, dword [ebp - 0x20]
mov eax, 0x52340c
call fcn.0040410c
test eax, eax
jle 0x522b29
mov eax, dword [ebp - 8]
imul eax, dword [eax + 0xc], 0xeb
mov byte [eax + 0x5501cf], 1
mov eax, dword [eax + 0x55013a]
call fcn.0047d284
mov esi, eax
test esi, esi
je 0x522b16
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x9c], eax
mov edi, dword [esi + 0xc]
mov eax, dword [edi + 0x1d]
mov dword [ebp - 0x98], eax
mov eax, dword [edi + 0x21]
mov dword [ebp - 0x94], eax
lea eax, [ebp - 0x9c]
push eax
push 2
lea eax, [ebp - 0x8c]
push eax
mov eax, 0x5233f4
mov dword [ebp - 0xa8], eax
mov eax, 0x523400
mov dword [ebp - 0xa4], eax
mov eax, 0x52340c
mov dword [ebp - 0xa0], eax
lea edx, [ebp - 0xa8]
mov ecx, 2
mov eax, dword [ebp - 0x20]
call fcn.004c8228
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x522ae2
inc eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 0x8c]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax]
call dword [ecx + 0x34]
inc dword [ebp - 0x14]
dec dword [ebp - 0x38]
jne 0x522abb
push ebp
call fcn.0052236c
pop ecx
test al, al
jne 0x522b16
mov al, byte [0x523410]
push eax
mov eax, dword [ebp - 8]
imul eax, dword [eax + 0xc], 0xeb
mov eax, dword [eax + 0x55013a]
mov cl, 4
mov edx, esi
call fcn.0047d400
mov esi, eax
test esi, esi
jne 0x522a33
mov eax, dword [ebp - 8]
imul eax, dword [eax + 0xc], 0xeb
mov byte [eax + 0x5501cf], 0
jmp 0x522b73
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x522b73
inc eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 0x8c]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x2c]
mov esi, dword [eax]
call dword [esi + 0xc]
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax]
call dword [ecx + 0x34]
inc dword [ebp - 0x14]
dec dword [ebp - 0x38]
jne 0x522b4c
cmp byte [0x5503b0], 0
jne 0x522b97
push ebp
call fcn.0052236c
pop ecx
test al, al
jne 0x522b97
mov eax, dword [ebp - 0x30]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x522590
cmp byte [0x5503b0], 0
jne 0x522bab
push ebp
call fcn.0052236c
pop ecx
test al, al
je 0x522bb5
call fcn.004036bc
jmp 0x52327f
mov eax, dword [ebp - 0x34]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x5231b7
inc eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 0x20]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x34]
mov ebx, dword [eax]
call dword [ebx + 0xc]
jmp 0x522d9c
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x20]
mov eax, 0x523380
call fcn.0040410c
mov ebx, eax
mov edx, dword [ebp - 0x20]
mov eax, 0x52341c
call fcn.0040410c
inc eax
sub ebx, eax
sub ebx, 2
push ebx
mov edx, dword [ebp - 0x20]
mov eax, 0x52341c
call fcn.0040410c
mov edx, eax
add edx, 3
mov eax, dword [ebp - 0x20]
pop ecx
call fcn.00404028
mov byte [ebp - 0x21], 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
dec eax
jne 0x522c48
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.0053e5b4
mov eax, dword [ebp - 0xc]
mov edi, dword [eax + 0x664]
jmp 0x522c5b
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.0053e750
mov eax, dword [ebp - 0xc]
mov edi, dword [eax + 0x668]
mov eax, dword [edi + 0x28]
call fcn.0044dfa0
mov esi, eax
dec esi
sub esi, 2
jl 0x522d4c
inc esi
mov ebx, 2
mov eax, dword [edi + 0x28]
mov edx, ebx
call fcn.0044dfb0
mov eax, dword [eax + 0x24]
lea edx, [ebp - 0x8c]
call fcn.004088e0
mov eax, dword [ebp - 0x8c]
push eax
lea edx, [ebp - 0x90]
mov eax, dword [ebp - 0x28]
call fcn.004088e0
mov edx, dword [ebp - 0x90]
pop eax
call fcn.00403f34
jne 0x522d44
mov byte [ebp - 0x21], 1
mov eax, dword [edi + 0x28]
mov edx, ebx
call fcn.0044dfb0
mov edx, dword [eax + 0x4c]
lea eax, [ebp - 0x1c]
call fcn.00403c40
mov edx, dword [ebp - 0x1c]
mov eax, 0x523428
call fcn.0040410c
test eax, eax
jle 0x522cff
lea eax, [ebp - 0x1c]
push eax
mov edx, dword [ebp - 0x1c]
mov eax, 0x523428
call fcn.0040410c
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x1c]
call fcn.00404028
push 1
lea eax, [ebp - 0x8c]
push eax
push 0x52341c
push dword [ebp - 0x28]
push 0x523380
lea eax, [ebp - 0x90]
mov edx, 3
call fcn.00403ee4
mov edx, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
call fcn.004532e0
mov edx, dword [ebp - 0x8c]
lea eax, [ebp - 0x20]
call fcn.00403c40
inc ebx
dec esi
jne 0x522c75
cmp byte [ebp - 0x21], 0
jne 0x522d9c
push 1
lea eax, [ebp - 0x8c]
push eax
push 0x52341c
push dword [ebp - 0x28]
push 0x523380
lea eax, [ebp - 0x90]
mov edx, 3
call fcn.00403ee4
mov edx, dword [ebp - 0x90]
mov ecx, dword [0x54d6c4]
mov ecx, dword [ecx]
mov eax, dword [ebp - 0x20]
call fcn.004532e0
mov edx, dword [ebp - 0x8c]
lea eax, [ebp - 0x20]
call fcn.00403c40
mov edx, dword [ebp - 0x20]
mov eax, 0x52341c
call fcn.0040410c
test eax, eax
jg 0x522be4
lea edx, [ebp - 0x8c]
mov eax, dword [ebp - 0x20]
call fcn.004088e0
mov eax, dword [ebp - 0x8c]
mov edx, 0x523434
call fcn.00403f34
jne 0x522e05
mov eax, dword [ebp - 8]
imul eax, dword [eax + 0xc], 0xeb
cmp dword [eax + 0x5501c1], 0
jne 0x522e05
mov dl, 1
mov eax, dword [0x40f428]
call fcn.00402f14
mov edx, dword [ebp - 8]
imul edx, dword [edx + 0xc], 0xeb
mov dword [edx + 0x5501c1], eax
jmp 0x523197
lea eax, [ebp - 0x90]
push eax
mov ecx, 4
mov edx, 1
mov eax, dword [ebp - 0x20]
call fcn.00404028
mov eax, dword [ebp - 0x90]
lea edx, [ebp - 0x8c]
call fcn.004088e0
mov eax, dword [ebp - 0x8c]
mov edx, 0x523444
call fcn.00403f34
jne 0x522e6a
lea eax, [ebp - 0x20]
mov ecx, 4
mov edx, 1
call fcn.00404068
push 0
push 1
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
call fcn.00539ccc
jmp 0x523197
lea eax, [ebp - 0x90]
push eax
mov ecx, 7
mov edx, 1
mov eax, dword [ebp - 0x20]
call fcn.00404028
mov eax, dword [ebp - 0x90]
lea edx, [ebp - 0x8c]
call fcn.004088e0
mov eax, dword [ebp - 0x8c]
mov edx, 0x5232e8
call fcn.00403f34
jne 0x522ecd
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x4ac]
cmp eax, dword [ebp - 8]
jne 0x522ec5
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x4b0]
mov dword [ebp - 8], eax
jmp 0x523197
mov dword [ebp - 8], eax
jmp 0x523197
lea eax, [ebp - 0x90]
push eax
mov ecx, 5
mov edx, 1
mov eax, dword [ebp - 0x20]
call fcn.00404028
mov eax, dword [ebp - 0x90]
lea edx, [ebp - 0x8c]
call fcn.004088e0
mov eax, dword [ebp - 0x8c]
mov edx, 0x523454
call fcn.00403f34
jne 0x522fe6
lea eax, [ebp - 0x20]
mov ecx, 1
mov edx, 1
call fcn.00404068
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x1428]
mov eax, dword [ebp - 8]
mov dl, byte [eax + 0xc]
mov eax, dword [ebp - 0xc]
call fcn.0052e98c
mov eax, dword [ebp - 0x20]
call fcn.00403e24
cmp eax, 4
jle 0x522f57
lea eax, [ebp - 0x20]
mov ecx, 5
mov edx, 1
call fcn.00404068
jmp 0x522f64
lea eax, [ebp - 0x20]
mov edx, 0x523464
call fcn.00403c40
push 1
mov eax, dword [ebp - 0x20]
push eax
xor ecx, ecx
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
call fcn.005278cc
mov eax, dword [ebp - 8]
imul ebx, dword [eax + 0xc], 0xeb
cmp dword [ebx + 0x5501c1], 0
je 0x523197
mov eax, dword [ebx + 0x550198]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x523197
inc esi
mov dword [ebp - 0x18], 0
lea ecx, [ebp - 0x8c]
mov eax, dword [ebp - 8]
imul ebx, dword [eax + 0xc], 0xeb
mov eax, dword [ebx + 0x550198]
mov edx, dword [ebp - 0x18]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebx + 0x5501c1]
mov ecx, dword [eax]
call dword [ecx + 0x34]
inc dword [ebp - 0x18]
dec esi
jne 0x522fac
jmp 0x523197
lea edx, [ebp - 0x8c]
mov eax, dword [ebp - 0x20]
call fcn.004088e0
mov edx, dword [ebp - 0x8c]
mov eax, 0x523470
call fcn.0040410c
dec eax
jne 0x523064
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x1428]
mov eax, dword [ebp - 8]
mov dl, byte [eax + 0xc]
mov eax, dword [ebp - 0xc]
call fcn.0052e98c
mov eax, dword [ebp - 0x20]
call fcn.00403e24
cmp eax, 4
jle 0x52303f
lea eax, [ebp - 0x20]
mov ecx, 5
mov edx, 1
call fcn.00404068
jmp 0x52304c
lea eax, [ebp - 0x20]
mov edx, 0x523464
call fcn.00403c40
push 1
mov eax, dword [ebp - 0x20]
push eax
xor ecx, ecx
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
call fcn.005278cc
jmp 0x523197
lea edx, [ebp - 0x8c]
mov eax, dword [ebp - 0x20]
call fcn.004088e0
mov eax, dword [ebp - 0x8c]
mov edx, 0x523480
call fcn.00403f34
jne 0x5230b9
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.0051e0f8
mov dl, 3
mov eax, dword [ebp - 0xc]
call fcn.00539fac
mov al, byte [0x55060c]
or al, byte [0x5503b0]
jne 0x523197
push ebp
call fcn.0052236c
pop ecx
test al, al
je 0x52308e
jmp 0x523197
lea eax, [ebp - 0x90]
push eax
mov ecx, 5
mov edx, 1
mov eax, dword [ebp - 0x20]
call fcn.00404028
mov eax, dword [ebp - 0x90]
lea edx, [ebp - 0x8c]
call fcn.004088e0
mov eax, dword [ebp - 0x8c]
mov edx, 0x523490
call fcn.00403f34
jne 0x52318a
lea eax, [ebp - 0x20]
mov ecx, 6
mov edx, 1
call fcn.00404068
push 0
lea eax, [ebp - 0x8c]
push eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0xb0], eax
mov byte [ebp - 0xac], 0xb
lea edx, [ebp - 0xb0]
xor ecx, ecx
mov eax, 0x5234a0
call fcn.00409f10
mov edx, dword [ebp - 0x8c]
mov ecx, dword [0x550560]
mov eax, dword [ebp - 0xc]
call fcn.0051e548
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.00409024
imul ebx, eax, 0x3e8
call sub.kernel32.dll_GetTickCount
add ebx, eax
mov dl, 1
mov eax, dword [ebp - 0xc]
call fcn.00539fac
call sub.kernel32.dll_GetTickCount
cmp ebx, eax
setle al
or al, byte [0x5503b0]
jne 0x523197
push ebp
call fcn.0052236c
pop ecx
test al, al
je 0x523161
jmp 0x523197
xor ecx, ecx
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 8]
call fcn.00493990
cmp byte [0x5503b0], 0
jne 0x5231b7
push ebp
call fcn.0052236c
pop ecx
test al, al
jne 0x5231b7
inc dword [ebp - 0x14]
dec dword [ebp - 0x38]
jne 0x522bd1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x52327f
mov eax, dword [ebp - 0x30]
call fcn.00402f44
mov eax, dword [ebp - 0x2c]
call fcn.00402f44
mov eax, dword [ebp - 0x34]
call fcn.00402f44
mov eax, dword [0x5502ac]
test eax, eax
je 0x523210
mov edx, dword [0x54d6c4]
mov edx, dword [edx]
push edx
push 0
push 0
push 0
mov edx, dword [0x54d6c4]
mov edx, dword [edx]
mov ecx, eax
mov eax, dword [ebp - 0xc]
call fcn.00522020
mov eax, 0x5502ac
call fcn.00455570
mov eax, dword [0x550397]
test eax, eax
je 0x523244
mov edx, dword [0x54d6c4]
mov edx, dword [edx]
push edx
push 0
push 0
push 0
mov edx, dword [0x54d6c4]
mov edx, dword [edx]
mov ecx, eax
mov eax, dword [ebp - 0xc]
call fcn.00522020
mov eax, 0x550397
call fcn.00455570
cmp byte [ebp - 1], 0
je 0x523264
xor ecx, ecx
mov dl, 1
mov eax, dword [ebp - 0xc]
call fcn.005109a8
xor ecx, ecx
mov dl, 2
mov eax, dword [ebp - 0xc]
call fcn.005109a8
jmp 0x523274
mov eax, dword [ebp - 8]
mov dl, byte [eax + 0xc]
xor ecx, ecx
mov eax, dword [ebp - 0xc]
call fcn.005109a8
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5232d7
lea eax, [ebp - 0x90]
mov edx, 2
call fcn.00403bcc
lea eax, [ebp - 0x88]
mov ecx, 0x14
mov edx, dword [0x4010c4]
call fcn.00404538
lea eax, [ebp - 0x28]
call fcn.00403ba8
lea eax, [ebp - 0x20]
mov edx, 2
call fcn.00403bcc
lea eax, [ebp - 0x10]
call fcn.00403ba8
ret