Function at 0x5267e8
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 0x527712
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x10]
call fcn.00403e24
test eax, eax
je 0x5276c1
mov byte [ebp - 0x21], 0
cmp dword [ebp - 8], 0
jne 0x526878
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.005492b0
and eax, 0xff
imul eax, eax, 0xf7
mov eax, dword [eax + 0x55617e]
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x10]
mov eax, 0x527728
call fcn.0040410c
test eax, eax
setg byte [ebp - 1]
cmp byte [ebp - 1], 0
je 0x5268a3
cmp byte [0x5562aa], 0
jne 0x5268b6
cmp byte [0x5563a1], 0
jne 0x5268b6
mov eax, dword [ebp - 8]
imul eax, dword [eax + 0xc], 0xf7
cmp byte [eax + 0x5561b3], 0
je 0x5268d0
push 0
mov ecx, dword [0x556594]
mov edx, 0x527738
mov eax, dword [ebp - 0xc]
call fcn.0052285c
jmp 0x5276c1
mov dl, 1
mov eax, dword [0x40f42c]
call fcn.00402f14
mov dword [ebp - 0x30], eax
mov dl, 1
mov eax, dword [0x40f42c]
call fcn.00402f14
mov dword [ebp - 0x2c], eax
mov dl, 1
mov eax, dword [0x40f42c]
call fcn.00402f14
mov dword [ebp - 0x34], eax
mov eax, dword [0x55644c]
cmp eax, 0xf4fd0171
jg 0x52693d
je 0x5276c1
sub eax, 0x852f3e33
je 0x5276c1
sub eax, 0x30105f4c
je 0x5276c1
sub eax, 0x315e3180
je 0x5276c1
sub eax, 0x6fb29d6
je 0x5276c1
jmp 0x526969
sub eax, 0x13857c5e
je 0x5276c1
sub eax, 0x7b88217
je 0x5276c1
sub eax, 0xe6b098d
je 0x5276c1
sub eax, 0x515a1d3d
je 0x5276c1
xor edx, edx
push ebp
push 0x5276b7
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 [0x5536c4]
mov edx, dword [edx]
mov eax, dword [ebp - 0xc]
call fcn.0053f2d0
cmp byte [ebp - 1], 0
je 0x5269b2
mov cl, 1
mov dl, 1
mov eax, dword [ebp - 0xc]
call fcn.00513910
mov cl, 1
mov dl, 2
mov eax, dword [ebp - 0xc]
call fcn.00513910
jmp 0x5269c2
mov eax, dword [ebp - 8]
mov dl, byte [eax + 0xc]
mov cl, 1
mov eax, dword [ebp - 0xc]
call fcn.00513910
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
jmp 0x526fc9
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 0x526aee
mov eax, dword [ebp - 0x20]
cmp byte [eax], 0x5b
jne 0x526aee
mov eax, dword [ebp - 0x20]
call fcn.00403e24
mov edx, dword [ebp - 0x20]
cmp byte [edx + eax - 1], 0x5d
jne 0x526aee
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 [0x5561e8]
call fcn.00403e70
mov eax, dword [ebp - 0x8c]
call fcn.00457200
test al, al
je 0x526aee
mov dl, 1
mov eax, dword [0x40f42c]
call fcn.00402f14
mov esi, eax
lea eax, [ebp - 0x8c]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [0x5561e8]
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 0x526ae2
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 0x526ab9
mov eax, esi
call fcn.00402f44
jmp 0x526fc9
mov eax, dword [ebp - 0x20]
mov edx, 0x52779c
call fcn.00403f34
jne 0x526b6b
cmp dword [0x55644c], 0xe69dceff
jne 0x526b13
call fcn.004036bc
jmp 0x5276c1
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
call dword [edx + 0x40]
jmp 0x526b5d
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, 0x5277a8
call fcn.00403f34
je 0x526b44
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, 0x5277a8
call fcn.00403f34
je 0x526b76
mov eax, dword [ebp - 0x30]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x526b1d
jmp 0x526b76
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 0x526cda
mov byte [ebp - 0x21], 1
mov edx, dword [ebp - 0x20]
mov eax, 0x5277b4
call fcn.0040410c
test eax, eax
jle 0x526c62
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x20]
mov eax, 0x5277c0
call fcn.0040410c
mov esi, eax
mov edx, dword [ebp - 0x20]
mov eax, 0x5277b4
call fcn.0040410c
inc eax
sub esi, eax
push esi
mov edx, dword [ebp - 0x20]
mov eax, 0x5277b4
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 [0x5536c4]
mov ecx, dword [ecx]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
call fcn.0045333c
mov edx, dword [ebp - 0x8c]
lea eax, [ebp - 0x20]
call fcn.00403c40
push 1
lea eax, [ebp - 0x8c]
push eax
mov ecx, dword [0x5536c4]
mov ecx, dword [ecx]
mov edx, 0x5277c0
mov eax, dword [ebp - 0x28]
call fcn.0045333c
mov edx, dword [ebp - 0x8c]
lea eax, [ebp - 0x28]
call fcn.00403c40
push 1
lea eax, [ebp - 0x8c]
push eax
mov ecx, dword [0x5536c4]
mov ecx, dword [ecx]
mov edx, 0x5277cc
mov eax, dword [ebp - 0x28]
call fcn.0045333c
mov edx, dword [ebp - 0x8c]
lea eax, [ebp - 0x28]
call fcn.00403c40
jmp 0x526c6f
lea eax, [ebp - 0x28]
mov edx, 0x5277d8
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, 0x5277f4
call fcn.0045392c
test al, al
je 0x526ca5
mov eax, dword [ebp + ebx*4 - 0x8c]
mov edx, dword [0x5536c4]
mov edx, dword [edx]
call fcn.00403f34
jne 0x526caf
call fcn.004036bc
jmp 0x5276c1
push 1
lea eax, [ebp - 0x8c]
push eax
mov ecx, dword [ebp + ebx*4 - 0x8c]
mov edx, 0x527804
mov eax, dword [ebp - 0x20]
call fcn.0045333c
mov edx, dword [ebp - 0x8c]
lea eax, [ebp - 0x20]
call fcn.00403c40
mov edx, dword [ebp - 0x20]
mov eax, 0x527804
call fcn.0040410c
test eax, eax
jg 0x526b86
cmp byte [ebp - 0x21], 0
je 0x526d94
mov dword [ebp - 0x18], 0x14
lea esi, [ebp - 0x3c]
lea edx, [ebp - 0x90]
mov eax, dword [ebp - 0x18]
call fcn.00408e3c
mov ecx, dword [ebp - 0x90]
lea eax, [ebp - 0x8c]
mov edx, 0x527810
call fcn.00403e70
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x20]
call fcn.0040410c
test eax, eax
jle 0x526d84
push 1
lea eax, [ebp - 0x8c]
push eax
lea edx, [ebp - 0x8c]
mov eax, dword [ebp - 0x18]
call fcn.00408e3c
mov ecx, dword [ebp - 0x8c]
lea eax, [ebp - 0x90]
mov edx, 0x527810
call fcn.00403e70
mov edx, dword [ebp - 0x90]
mov ecx, dword [esi]
mov eax, dword [ebp - 0x20]
call fcn.0045333c
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 0x526d03
push 0
lea eax, [ebp - 0x8c]
push eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x43c]
mov edx, 0x52781c
mov eax, dword [ebp - 0x20]
call fcn.0045333c
mov edx, dword [ebp - 0x8c]
lea eax, [ebp - 0x20]
call fcn.00403c40
push 0
lea eax, [ebp - 0x8c]
push eax
call fcn.00430094
lea edx, [ebp - 0x90]
call fcn.0042fbb4
mov ecx, dword [ebp - 0x90]
mov edx, 0x527828
mov eax, dword [ebp - 0x20]
call fcn.0045333c
mov edx, dword [ebp - 0x8c]
lea eax, [ebp - 0x20]
call fcn.00403c40
mov eax, dword [ebp - 8]
imul eax, dword [eax + 0xc], 0xf7
mov eax, dword [eax + 0x55616a]
call fcn.0047c384
test eax, eax
je 0x526f6b
mov edx, dword [ebp - 0x20]
mov eax, 0x527834
call fcn.0040410c
test eax, eax
jg 0x526e4f
mov edx, dword [ebp - 0x20]
mov eax, 0x527840
call fcn.0040410c
test eax, eax
jg 0x526e4f
mov edx, dword [ebp - 0x20]
mov eax, 0x52784c
call fcn.0040410c
test eax, eax
jle 0x526f6b
mov eax, dword [ebp - 8]
imul eax, dword [eax + 0xc], 0xf7
mov byte [eax + 0x556207], 1
mov eax, dword [eax + 0x55616a]
call fcn.0047d834
mov esi, eax
test esi, esi
je 0x526f58
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, 0x527834
mov dword [ebp - 0xa8], eax
mov eax, 0x527840
mov dword [ebp - 0xa4], eax
mov eax, 0x52784c
mov dword [ebp - 0xa0], eax
lea edx, [ebp - 0xa8]
mov ecx, 2
mov eax, dword [ebp - 0x20]
call fcn.004c8d00
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 0x526f24
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 0x526efd
push ebp
call fcn.005267ac
pop ecx
test al, al
jne 0x526f58
mov al, byte [0x527850]
push eax
mov eax, dword [ebp - 8]
imul eax, dword [eax + 0xc], 0xf7
mov eax, dword [eax + 0x55616a]
mov cl, 4
mov edx, esi
call fcn.0047d9b0
mov esi, eax
test esi, esi
jne 0x526e75
mov eax, dword [ebp - 8]
imul eax, dword [eax + 0xc], 0xf7
mov byte [eax + 0x556207], 0
jmp 0x526fb5
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 0x526fb5
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 0x526f8e
cmp byte [0x556404], 0
jne 0x526fd9
push ebp
call fcn.005267ac
pop ecx
test al, al
jne 0x526fd9
mov eax, dword [ebp - 0x30]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x5269d2
cmp byte [0x556404], 0
jne 0x526fed
push ebp
call fcn.005267ac
pop ecx
test al, al
je 0x526ff7
call fcn.004036bc
jmp 0x5276c1
mov eax, dword [ebp - 0x34]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x5275f9
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 0x5271de
lea eax, [ebp - 0x28]
push eax
mov edx, dword [ebp - 0x20]
mov eax, 0x5277c0
call fcn.0040410c
mov ebx, eax
mov edx, dword [ebp - 0x20]
mov eax, 0x52785c
call fcn.0040410c
inc eax
sub ebx, eax
sub ebx, 2
push ebx
mov edx, dword [ebp - 0x20]
mov eax, 0x52785c
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 0x52708a
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.00543644
mov eax, dword [ebp - 0xc]
mov edi, dword [eax + 0x664]
jmp 0x52709d
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.005437e0
mov eax, dword [ebp - 0xc]
mov edi, dword [eax + 0x668]
mov eax, dword [edi + 0x28]
call fcn.0044dffc
mov esi, eax
dec esi
sub esi, 2
jl 0x52718e
inc esi
mov ebx, 2
mov eax, dword [edi + 0x28]
mov edx, ebx
call fcn.0044e00c
mov eax, dword [eax + 0x24]
lea edx, [ebp - 0x8c]
call fcn.004088d0
mov eax, dword [ebp - 0x8c]
push eax
lea edx, [ebp - 0x90]
mov eax, dword [ebp - 0x28]
call fcn.004088d0
mov edx, dword [ebp - 0x90]
pop eax
call fcn.00403f34
jne 0x527186
mov byte [ebp - 0x21], 1
mov eax, dword [edi + 0x28]
mov edx, ebx
call fcn.0044e00c
mov edx, dword [eax + 0x4c]
lea eax, [ebp - 0x1c]
call fcn.00403c40
mov edx, dword [ebp - 0x1c]
mov eax, 0x527868
call fcn.0040410c
test eax, eax
jle 0x527141
lea eax, [ebp - 0x1c]
push eax
mov edx, dword [ebp - 0x1c]
mov eax, 0x527868
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 0x52785c
push dword [ebp - 0x28]
push 0x5277c0
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.0045333c
mov edx, dword [ebp - 0x8c]
lea eax, [ebp - 0x20]
call fcn.00403c40
inc ebx
dec esi
jne 0x5270b7
cmp byte [ebp - 0x21], 0
jne 0x5271de
push 1
lea eax, [ebp - 0x8c]
push eax
push 0x52785c
push dword [ebp - 0x28]
push 0x5277c0
lea eax, [ebp - 0x90]
mov edx, 3
call fcn.00403ee4
mov edx, dword [ebp - 0x90]
mov ecx, dword [0x5536c4]
mov ecx, dword [ecx]
mov eax, dword [ebp - 0x20]
call fcn.0045333c
mov edx, dword [ebp - 0x8c]
lea eax, [ebp - 0x20]
call fcn.00403c40
mov edx, dword [ebp - 0x20]
mov eax, 0x52785c
call fcn.0040410c
test eax, eax
jg 0x527026
lea edx, [ebp - 0x8c]
mov eax, dword [ebp - 0x20]
call fcn.004088d0
mov eax, dword [ebp - 0x8c]
mov edx, 0x527874
call fcn.00403f34
jne 0x527247
mov eax, dword [ebp - 8]
imul eax, dword [eax + 0xc], 0xf7
cmp dword [eax + 0x5561f1], 0
jne 0x527247
mov dl, 1
mov eax, dword [0x40f42c]
call fcn.00402f14
mov edx, dword [ebp - 8]
imul edx, dword [edx + 0xc], 0xf7
mov dword [edx + 0x5561f1], eax
jmp 0x5275d9
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.004088d0
mov eax, dword [ebp - 0x8c]
mov edx, 0x527884
call fcn.00403f34
jne 0x5272ac
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.0053e74c
jmp 0x5275d9
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.004088d0
mov eax, dword [ebp - 0x8c]
mov edx, 0x527728
call fcn.00403f34
jne 0x52730f
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x4ac]
cmp eax, dword [ebp - 8]
jne 0x527307
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x4b0]
mov dword [ebp - 8], eax
jmp 0x5275d9
mov dword [ebp - 8], eax
jmp 0x5275d9
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.004088d0
mov eax, dword [ebp - 0x8c]
mov edx, 0x527894
call fcn.00403f34
jne 0x527428
lea eax, [ebp - 0x20]
mov ecx, 1
mov edx, 1
call fcn.00404068
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x43c]
mov eax, dword [ebp - 8]
mov dl, byte [eax + 0xc]
mov eax, dword [ebp - 0xc]
call fcn.005331b0
mov eax, dword [ebp - 0x20]
call fcn.00403e24
cmp eax, 4
jle 0x527399
lea eax, [ebp - 0x20]
mov ecx, 5
mov edx, 1
call fcn.00404068
jmp 0x5273a6
lea eax, [ebp - 0x20]
mov edx, 0x5278a4
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.0052c5bc
mov eax, dword [ebp - 8]
imul ebx, dword [eax + 0xc], 0xf7
cmp dword [ebx + 0x5561f1], 0
je 0x5275d9
mov eax, dword [ebx + 0x5561c8]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x5275d9
inc esi
mov dword [ebp - 0x18], 0
lea ecx, [ebp - 0x8c]
mov eax, dword [ebp - 8]
imul ebx, dword [eax + 0xc], 0xf7
mov eax, dword [ebx + 0x5561c8]
mov edx, dword [ebp - 0x18]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebx + 0x5561f1]
mov ecx, dword [eax]
call dword [ecx + 0x34]
inc dword [ebp - 0x18]
dec esi
jne 0x5273ee
jmp 0x5275d9
lea edx, [ebp - 0x8c]
mov eax, dword [ebp - 0x20]
call fcn.004088d0
mov edx, dword [ebp - 0x8c]
mov eax, 0x5278b0
call fcn.0040410c
dec eax
jne 0x5274a6
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x43c]
mov eax, dword [ebp - 8]
mov dl, byte [eax + 0xc]
mov eax, dword [ebp - 0xc]
call fcn.005331b0
mov eax, dword [ebp - 0x20]
call fcn.00403e24
cmp eax, 4
jle 0x527481
lea eax, [ebp - 0x20]
mov ecx, 5
mov edx, 1
call fcn.00404068
jmp 0x52748e
lea eax, [ebp - 0x20]
mov edx, 0x5278a4
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.0052c5bc
jmp 0x5275d9
lea edx, [ebp - 0x8c]
mov eax, dword [ebp - 0x20]
call fcn.004088d0
mov eax, dword [ebp - 0x8c]
mov edx, 0x5278c0
call fcn.00403f34
jne 0x5274fb
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.00522404
mov dl, 3
mov eax, dword [ebp - 0xc]
call fcn.0053ea48
mov al, byte [0x556644]
or al, byte [0x556404]
jne 0x5275d9
push ebp
call fcn.005267ac
pop ecx
test al, al
je 0x5274d0
jmp 0x5275d9
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.004088d0
mov eax, dword [ebp - 0x8c]
mov edx, 0x5278d0
call fcn.00403f34
jne 0x5275cc
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, 0x5278e0
call fcn.00409f14
mov edx, dword [ebp - 0x8c]
mov ecx, dword [0x556598]
mov eax, dword [ebp - 0xc]
call fcn.0052285c
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.00409014
imul ebx, eax, 0x3e8
call sub.kernel32.dll_GetTickCount
add ebx, eax
mov dl, 1
mov eax, dword [ebp - 0xc]
call fcn.0053ea48
call sub.kernel32.dll_GetTickCount
cmp ebx, eax
setle al
or al, byte [0x556404]
jne 0x5275d9
push ebp
call fcn.005267ac
pop ecx
test al, al
je 0x5275a3
jmp 0x5275d9
xor ecx, ecx
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 8]
call fcn.00494234
cmp byte [0x556404], 0
jne 0x5275f9
push ebp
call fcn.005267ac
pop ecx
test al, al
jne 0x5275f9
inc dword [ebp - 0x14]
dec dword [ebp - 0x38]
jne 0x527013
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5276c1
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 [0x5562e8]
test eax, eax
je 0x527652
mov edx, dword [0x5536c4]
mov edx, dword [edx]
push edx
push 0
push 0
push 0
mov edx, dword [0x5536c4]
mov edx, dword [edx]
mov ecx, eax
mov eax, dword [ebp - 0xc]
call fcn.00526460
mov eax, 0x5562e8
call fcn.004556ac
mov eax, dword [0x5563df]
test eax, eax
je 0x527686
mov edx, dword [0x5536c4]
mov edx, dword [edx]
push edx
push 0
push 0
push 0
mov edx, dword [0x5536c4]
mov edx, dword [edx]
mov ecx, eax
mov eax, dword [ebp - 0xc]
call fcn.00526460
mov eax, 0x5563df
call fcn.004556ac
cmp byte [ebp - 1], 0
je 0x5276a6
xor ecx, ecx
mov dl, 1
mov eax, dword [ebp - 0xc]
call fcn.00513910
xor ecx, ecx
mov dl, 2
mov eax, dword [ebp - 0xc]
call fcn.00513910
jmp 0x5276b6
mov eax, dword [ebp - 8]
mov dl, byte [eax + 0xc]
xor ecx, ecx
mov eax, dword [ebp - 0xc]
call fcn.00513910
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x527719
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