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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe90
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x168], ebx
mov esi, dword [ebp + 0x14]
lea edi, [ebp - 0x160]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x18]
lea edi, [ebp - 0x14]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x53113f
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp + 0x1c], 0x64
jl 0x52f4ca
mov byte [ebp + 0xc], 0
fild dword [ebp + 0x1c]
fdiv dword [0x531150]
fstp qword [ebp - 0x70]
wait
fild dword [ebp + 0x1c]
fdivr dword [0x531150]
fstp qword [ebp - 0x68]
wait
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x168]
call fcn.0042bbb0
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0xc], 0
jne 0x52f501
mov byte [ebp - 0x49], 0
jmp 0x52f511
mov byte [ebp - 0x49], 1
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x54], eax
mov byte [ebp - 0x145], 0
mov byte [ebp - 0x146], 0
cmp dword [ebp + 8], 0xffffffff
jle 0x52f530
mov eax, dword [ebp + 8]
mov dword [ebp - 0x13c], eax
jmp 0x52f53c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov dword [ebp - 0x13c], eax
mov eax, dword [ebp - 0x13c]
cmp eax, 5
ja case.default.0x52f54b
jmp dword [eax*4 + 0x52f552]
mov eax, dword [ebp - 4]
cmp dword [eax + 0x110], 4
je 0x52f581
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x18], eax
jmp 0x52f5dc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x18], eax
mov byte [ebp - 0x145], 1
jmp 0x52f5dc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
mov dword [ebp - 0x18], eax
jmp 0x52f5dc
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 0
jne 0x52f5b2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x70]
mov dword [ebp - 0x18], eax
jmp 0x52f5dc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
mov dword [ebp - 0x18], eax
jmp 0x52f5dc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov dword [ebp - 0x18], eax
jmp 0x52f5dc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
mov dword [ebp - 0x18], eax
jmp 0x52f5dc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x13c], 5
jne 0x52f605
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
mov eax, dword [eax + 4]
mov dword [ebp - 0x140], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
mov eax, dword [eax + 8]
mov dword [ebp - 0x144], eax
jmp 0x52f61d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x78]
mov dword [ebp - 0x140], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7c]
mov dword [ebp - 0x144], eax
cmp dword [ebp - 0x13c], 4
jne 0x52f643
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x54]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
jmp 0x52f6f4
mov eax, dword [ebp - 0x18]
mov edx, dword [0x4c8ce4]
call fcn.00404634
test al, al
je 0x52f6c2
mov eax, dword [ebp - 0x18]
mov edx, dword [0x4c8ce4]
call fcn.00404658
mov eax, dword [eax + 0x48]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [0x4c8ce4]
call fcn.00404658
mov eax, dword [eax + 0x4c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [0x4c8ce4]
call fcn.00404658
mov eax, dword [eax + 0x50]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [0x4c8ce4]
call fcn.00404658
cmp byte [eax + 0x5d], 0
je 0x52f6f4
mov eax, dword [ebp - 0x18]
mov edx, dword [0x4c8ce4]
call fcn.00404658
mov eax, dword [eax + 0x54]
mov dword [ebp - 0x28], eax
mov byte [ebp - 0x146], 1
jmp 0x52f6f4
mov eax, dword [ebp - 0x18]
mov edx, dword [0x4c8bb8]
call fcn.00404634
test al, al
je 0x52f6f4
mov eax, dword [ebp - 0x18]
mov edx, dword [0x4c8bb8]
call fcn.00404658
mov eax, dword [eax + 0x48]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], eax
cmp byte [ebp + 0x10], 0
je 0x52f7c8
mov eax, dword [ebp - 4]
fild dword [eax + 0x94]
fmul qword [ebp - 0x70]
call fcn.00403000
add eax, dword [ebp - 0x14]
dec eax
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 4]
fild dword [eax + 0x9c]
fmul qword [ebp - 0x70]
call fcn.00403000
add eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 4]
fild dword [eax + 0x98]
fmul qword [ebp - 0x70]
call fcn.00403000
add eax, dword [ebp - 0x10]
dec eax
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 4]
fild dword [eax + 0xa0]
fmul qword [ebp - 0x70]
call fcn.00403000
add eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x90], eax
mov edx, dword [ebp - 0x160]
mov eax, dword [ebp - 0x94]
call fcn.004309ec
mov dword [ebp - 0x94], eax
mov edx, dword [ebp - 0x158]
mov eax, dword [ebp - 0x98]
call fcn.00430900
mov dword [ebp - 0x98], eax
mov edx, dword [ebp - 0x15c]
mov eax, dword [ebp - 0x8c]
call fcn.004309ec
mov dword [ebp - 0x8c], eax
mov edx, dword [ebp - 0x154]
mov eax, dword [ebp - 0x90]
call fcn.00430900
mov dword [ebp - 0x90], eax
jmp 0x52f7f8
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x158]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x154]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x84], eax
fild dword [ebp - 0x140]
fmul qword [ebp - 0x70]
fild dword [ebp - 0x14]
faddp st(1)
call fcn.00403000
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x7c], eax
fild dword [ebp - 0x144]
fmul qword [ebp - 0x70]
fild dword [ebp - 0x10]
faddp st(1)
call fcn.00403000
mov dword [ebp - 0x80], eax
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 0x84]
call fcn.004309ec
mov dword [ebp - 0x84], eax
mov edx, dword [ebp - 0x98]
mov eax, dword [ebp - 0x88]
call fcn.00430900
mov dword [ebp - 0x88], eax
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x7c]
call fcn.004309ec
mov dword [ebp - 0x7c], eax
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x80]
call fcn.00430900
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x94]
cmp eax, dword [ebp - 0x84]
jl 0x52f8b8
mov eax, dword [ebp - 0x98]
cmp eax, dword [ebp - 0x88]
jg 0x52f8b8
mov eax, dword [ebp - 0x8c]
cmp eax, dword [ebp - 0x7c]
jl 0x52f8b8
mov eax, dword [ebp - 0x90]
cmp eax, dword [ebp - 0x80]
jle 0x52f91d
mov eax, dword [ebp - 0x98]
sub eax, dword [ebp - 0x94]
shl eax, 2
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jle 0x52f91d
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x90]
dec edx
sub edx, eax
jl 0x52f91d
inc edx
mov dword [ebp - 0x14c], edx
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x5c]
call fcn.0042e744
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x94]
lea eax, [eax + edx*4]
mov ecx, 0x7f
mov edx, dword [ebp - 0x34]
call fcn.004035b8
inc dword [ebp - 0x38]
dec dword [ebp - 0x14c]
jne 0x52f8eb
mov dword [ebp - 0xa4], 0xffffffff
mov eax, dword [ebp - 0x88]
sub eax, dword [ebp - 0x84]
shl eax, 2
mov dword [ebp - 0xac], eax
cmp byte [ebp - 0x145], 0
jne 0x5308e5
call sub.kernel32.dll_GetTickCount_1
mov dword [ebp - 0x74], eax
cmp byte [ebp + 0xc], 0
jne 0x52fd15
mov eax, dword [ebp - 0x7c]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x164], eax
fild dword [ebp - 0x164]
fmul qword [ebp - 0x68]
fstp qword [ebp - 0x48]
wait
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x80]
dec edx
sub edx, eax
jl 0x5310c7
inc edx
mov dword [ebp - 0x14c], edx
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x5c]
call fcn.0042e744
mov dword [ebp - 0x50], eax
fld qword [ebp - 0x48]
call fcn.00403000
mov dword [ebp - 0x30], eax
fld qword [ebp - 0x48]
fadd qword [ebp - 0x68]
fstp qword [ebp - 0x48]
wait
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0xa4]
je 0x52fcc9
mov eax, dword [ebp - 0x84]
sub eax, dword [ebp - 0x14]
mov dword [ebp - 0x164], eax
fild dword [ebp - 0x164]
fmul qword [ebp - 0x68]
fstp qword [ebp - 0x40]
wait
mov eax, dword [ebp - 0x84]
mov edx, dword [ebp - 0x88]
dec edx
sub edx, eax
jl 0x52fcbe
inc edx
mov dword [ebp - 0x150], edx
mov dword [ebp - 0x34], eax
fld qword [ebp - 0x40]
call fcn.00403000
mov dword [ebp - 0x2c], eax
fld qword [ebp - 0x40]
fadd qword [ebp - 0x68]
fstp qword [ebp - 0x40]
wait
cmp byte [ebp - 0x146], 0
jne 0x52fa64
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4], al
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4 + 1], al
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4 + 2], al
jmp 0x52fb62
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
call fcn.004c5164
and eax, 0xff
mov dword [ebp - 0xb0], eax
mov eax, pe_nt_image_headers32
sub eax, dword [ebp - 0xb0]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x120]
mov edx, dword [ebp - 0x2c]
mov al, byte [eax + edx]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x124]
mov ecx, dword [ebp - 0x30]
xor al, byte [edx + ecx]
je 0x52fab7
mov byte [ebp - 0x147], 0xb4
jmp 0x52fabe
mov byte [ebp - 0x147], 0xff
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
and eax, 0xff
imul dword [ebp - 0xb0]
xor edx, edx
mov dl, byte [ebp - 0x147]
imul edx, dword [ebp - 0xb4]
add eax, edx
shr eax, 8
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4], al
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
and eax, 0xff
imul dword [ebp - 0xb0]
xor edx, edx
mov dl, byte [ebp - 0x147]
imul edx, dword [ebp - 0xb4]
add eax, edx
shr eax, 8
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4 + 1], al
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
and eax, 0xff
imul dword [ebp - 0xb0]
xor edx, edx
mov dl, byte [ebp - 0x147]
imul edx, dword [ebp - 0xb4]
add eax, edx
shr eax, 8
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4 + 2], al
cmp dword [ebp - 0x13c], 3
jne 0x52fc82
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 0
jne 0x52fc01
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + 0x4c]
mov edx, dword [ebp - 0x2c]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp - 0x30]
cmp byte [eax + edx], 0
je 0x52fc82
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x70]
cmp byte [eax + 0x54], 0
je 0x52fc82
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
movzx eax, byte [eax + edx*4 + 2]
lea eax, [eax + eax*2]
add eax, 0xff
shr eax, 2
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4 + 2], al
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
movzx eax, byte [eax + edx*4 + 1]
lea eax, [eax + eax*2]
shr eax, 2
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4 + 1], al
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
movzx eax, byte [eax + edx*4]
lea eax, [eax + eax*2]
shr eax, 2
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4], al
jmp 0x52fc82
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 1
jne 0x52fc82
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
mov eax, dword [eax + 0x48]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
call fcn.004c5164
test al, al
je 0x52fc82
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
cmp byte [eax + 0x54], 0
je 0x52fc82
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
movzx eax, byte [eax + edx*4 + 2]
lea eax, [eax + eax*2]
shr eax, 2
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4 + 2], al
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
movzx eax, byte [eax + edx*4 + 1]
lea eax, [eax + eax*2]
shr eax, 2
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4 + 1], al
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
movzx eax, byte [eax + edx*4]
lea eax, [eax + eax*2]
add eax, 0xff
shr eax, 2
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4], al
cmp byte [ebp - 0x49], 0
je 0x52fcaf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + 0x48]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
call fcn.004c5164
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x48]
imul edx, dword [ebp - 0x38]
add edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x54]
mov byte [ecx + edx], al
inc dword [ebp - 0x34]
dec dword [ebp - 0x150]
jne 0x52f9fa
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0xa4], eax
jmp 0x52fd01
mov edx, dword [ebp - 0x38]
dec edx
mov eax, dword [ebp - 0x5c]
call fcn.0042e744
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x84]
lea edx, [eax + edx*4]
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0x84]
lea eax, [eax + ecx*4]
mov ecx, dword [ebp - 0xac]
call fcn.00402d40
inc dword [ebp - 0x38]
dec dword [ebp - 0x14c]
jne 0x52f98d
jmp 0x5310c7
mov eax, dword [ebp - 0x7c]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x164], eax
fild dword [ebp - 0x164]
fmul qword [ebp - 0x68]
fstp qword [ebp - 0x48]
wait
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x80]
dec edx
sub edx, eax
jl 0x5310c7
inc edx
mov dword [ebp - 0x14c], edx
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x5c]
call fcn.0042e744
mov dword [ebp - 0x50], eax
fld qword [ebp - 0x48]
call fcn.00403000
mov dword [ebp - 0x30], eax
fld qword [ebp - 0x48]
fadd qword [ebp - 0x68]
fstp qword [ebp - 0x48]
wait
mov eax, dword [ebp - 0x84]
sub eax, dword [ebp - 0x14]
mov dword [ebp - 0x164], eax
fild dword [ebp - 0x164]
fmul qword [ebp - 0x68]
fstp qword [ebp - 0x40]
wait
mov eax, dword [ebp - 0x84]
mov edx, dword [ebp - 0x88]
dec edx
sub edx, eax
jl 0x5308d1
inc edx
mov dword [ebp - 0x150], edx
mov dword [ebp - 0x34], eax
fld qword [ebp - 0x40]
call fcn.00403000
mov dword [ebp - 0x2c], eax
cmp dword [ebp + 0x1c], 0x32
jl 0x530127
mov eax, dword [ebp - 0x38]
inc eax
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x164], eax
fild dword [ebp - 0x164]
fmul qword [ebp - 0x68]
call fcn.00403000
dec eax
mov dword [ebp - 0x124], eax
fld qword [ebp - 0x40]
fadd qword [ebp - 0x68]
call fcn.00403000
dec eax
mov dword [ebp - 0x128], eax
cmp byte [ebp - 0x146], 0
jne 0x52ff3d
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
xor ebx, ebx
mov bl, al
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
and eax, 0xff
add ebx, eax
shr ebx, 2
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
mov byte [eax + edx*4], bl
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
xor ebx, ebx
mov bl, al
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
and eax, 0xff
add ebx, eax
shr ebx, 2
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
mov byte [eax + edx*4 + 1], bl
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
xor ebx, ebx
mov bl, al
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
and eax, 0xff
add ebx, eax
shr ebx, 2
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
mov byte [eax + edx*4 + 2], bl
jmp 0x53076b
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
call fcn.004c5164
and eax, 0xff
mov dword [ebp - 0xb0], eax
mov eax, pe_nt_image_headers32
sub eax, dword [ebp - 0xb0]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x120]
mov edx, dword [ebp - 0x2c]
mov al, byte [eax + edx]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x124]
mov ecx, dword [ebp - 0x30]
xor al, byte [edx + ecx]
je 0x52ff90
mov byte [ebp - 0x147], 0xb4
jmp 0x52ff97
mov byte [ebp - 0x147], 0xff
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
xor ebx, ebx
mov bl, al
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
and eax, 0xff
add ebx, eax
shr ebx, 2
imul ebx, dword [ebp - 0xb0]
xor eax, eax
mov al, byte [ebp - 0x147]
imul dword [ebp - 0xb4]
add ebx, eax
shr ebx, 8
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
mov byte [eax + edx*4], bl
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
xor ebx, ebx
mov bl, al
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
and eax, 0xff
add ebx, eax
shr ebx, 2
imul ebx, dword [ebp - 0xb0]
xor eax, eax
mov al, byte [ebp - 0x147]
imul dword [ebp - 0xb4]
add ebx, eax
shr ebx, 8
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
mov byte [eax + edx*4 + 1], bl
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
xor ebx, ebx
mov bl, al
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
and eax, 0xff
add ebx, eax
shr ebx, 2
imul ebx, dword [ebp - 0xb0]
xor eax, eax
mov al, byte [ebp - 0x147]
imul dword [ebp - 0xb4]
add ebx, eax
shr ebx, 8
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
mov byte [eax + edx*4 + 2], bl
jmp 0x53076b
mov eax, dword [ebp - 0x38]
inc eax
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x164], eax
fild dword [ebp - 0x164]
fmul qword [ebp - 0x68]
call fcn.00403000
dec eax
mov dword [ebp - 0x124], eax
fld qword [ebp - 0x40]
fadd qword [ebp - 0x68]
call fcn.00403000
dec eax
mov dword [ebp - 0x128], eax
cmp byte [ebp - 0x146], 0
jne 0x530418
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
xor ebx, ebx
mov bl, al
mov ecx, dword [ebp - 0x124]
add ecx, dword [ebp - 0x30]
shr ecx, 1
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov edx, dword [ebp - 0x128]
add edx, dword [ebp - 0x2c]
shr edx, 1
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
add ecx, dword [ebp - 0x30]
shr ecx, 1
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov edx, dword [ebp - 0x128]
add edx, dword [ebp - 0x2c]
shr edx, 1
mov ecx, dword [ebp - 0x124]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
and eax, 0xff
add ebx, eax
shr ebx, 3
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
mov byte [eax + edx*4], bl
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
xor ebx, ebx
mov bl, al
mov ecx, dword [ebp - 0x124]
add ecx, dword [ebp - 0x30]
shr ecx, 1
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov edx, dword [ebp - 0x128]
add edx, dword [ebp - 0x2c]
shr edx, 1
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
add ecx, dword [ebp - 0x30]
shr ecx, 1
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov edx, dword [ebp - 0x128]
add edx, dword [ebp - 0x2c]
shr edx, 1
mov ecx, dword [ebp - 0x124]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
and eax, 0xff
add ebx, eax
shr ebx, 3
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
mov byte [eax + edx*4 + 1], bl
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
xor ebx, ebx
mov bl, al
mov ecx, dword [ebp - 0x124]
add ecx, dword [ebp - 0x30]
shr ecx, 1
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov edx, dword [ebp - 0x128]
add edx, dword [ebp - 0x2c]
shr edx, 1
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
add ecx, dword [ebp - 0x30]
shr ecx, 1
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov edx, dword [ebp - 0x128]
add edx, dword [ebp - 0x2c]
shr edx, 1
mov ecx, dword [ebp - 0x124]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
and eax, 0xff
add ebx, eax
shr ebx, 3
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
mov byte [eax + edx*4 + 2], bl
jmp 0x53076b
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
call fcn.004c5164
and eax, 0xff
mov dword [ebp - 0xb0], eax
mov eax, pe_nt_image_headers32
sub eax, dword [ebp - 0xb0]
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x120]
mov edx, dword [ebp - 0x2c]
mov al, byte [eax + edx]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x124]
mov ecx, dword [ebp - 0x30]
xor al, byte [edx + ecx]
je 0x53046b
mov byte [ebp - 0x147], 0xb4
jmp 0x530472
mov byte [ebp - 0x147], 0xff
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
xor ebx, ebx
mov bl, al
mov ecx, dword [ebp - 0x124]
add ecx, dword [ebp - 0x30]
shr ecx, 1
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov edx, dword [ebp - 0x128]
add edx, dword [ebp - 0x2c]
shr edx, 1
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
add ecx, dword [ebp - 0x30]
shr ecx, 1
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov edx, dword [ebp - 0x128]
add edx, dword [ebp - 0x2c]
shr edx, 1
mov ecx, dword [ebp - 0x124]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x24]
call fcn.004c5164
and eax, 0xff
add ebx, eax
shr ebx, 3
imul ebx, dword [ebp - 0xb0]
xor eax, eax
mov al, byte [ebp - 0x147]
imul dword [ebp - 0xb4]
add ebx, eax
shr ebx, 8
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
mov byte [eax + edx*4], bl
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
xor ebx, ebx
mov bl, al
mov ecx, dword [ebp - 0x124]
add ecx, dword [ebp - 0x30]
shr ecx, 1
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov edx, dword [ebp - 0x128]
add edx, dword [ebp - 0x2c]
shr edx, 1
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
add ecx, dword [ebp - 0x30]
shr ecx, 1
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov edx, dword [ebp - 0x128]
add edx, dword [ebp - 0x2c]
shr edx, 1
mov ecx, dword [ebp - 0x124]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x20]
call fcn.004c5164
and eax, 0xff
add ebx, eax
shr ebx, 3
imul ebx, dword [ebp - 0xb0]
xor eax, eax
mov al, byte [ebp - 0x147]
imul dword [ebp - 0xb4]
add ebx, eax
shr ebx, 8
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
mov byte [eax + edx*4 + 1], bl
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
xor ebx, ebx
mov bl, al
mov ecx, dword [ebp - 0x124]
add ecx, dword [ebp - 0x30]
shr ecx, 1
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov edx, dword [ebp - 0x128]
add edx, dword [ebp - 0x2c]
shr edx, 1
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
add ecx, dword [ebp - 0x30]
shr ecx, 1
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov edx, dword [ebp - 0x128]
add edx, dword [ebp - 0x2c]
shr edx, 1
mov ecx, dword [ebp - 0x124]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
and eax, 0xff
add ebx, eax
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x1c]
call fcn.004c5164
and eax, 0xff
add ebx, eax
shr ebx, 3
imul ebx, dword [ebp - 0xb0]
xor eax, eax
mov al, byte [ebp - 0x147]
imul dword [ebp - 0xb4]
add ebx, eax
shr ebx, 8
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
mov byte [eax + edx*4 + 2], bl
cmp dword [ebp - 0x13c], 3
jne 0x53088b
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 0
jne 0x53080a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + 0x4c]
mov edx, dword [ebp - 0x2c]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp - 0x30]
cmp byte [eax + edx], 0
je 0x53088b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x70]
cmp byte [eax + 0x54], 0
je 0x53088b
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
movzx eax, byte [eax + edx*4 + 2]
lea eax, [eax + eax*2]
add eax, 0xff
shr eax, 2
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4 + 2], al
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
movzx eax, byte [eax + edx*4 + 1]
lea eax, [eax + eax*2]
shr eax, 2
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4 + 1], al
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
movzx eax, byte [eax + edx*4]
lea eax, [eax + eax*2]
shr eax, 2
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4], al
jmp 0x53088b
mov eax, dword [ebp - 4]
cmp dword [eax + 8], 1
jne 0x53088b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
mov eax, dword [eax + 0x48]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
call fcn.004c5164
test al, al
je 0x53088b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
cmp byte [eax + 0x54], 0
je 0x53088b
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
movzx eax, byte [eax + edx*4 + 2]
lea eax, [eax + eax*2]
shr eax, 2
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4 + 2], al
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
movzx eax, byte [eax + edx*4 + 1]
lea eax, [eax + eax*2]
shr eax, 2
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4 + 1], al
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
movzx eax, byte [eax + edx*4]
lea eax, [eax + eax*2]
add eax, 0xff
shr eax, 2
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4], al
cmp byte [ebp - 0x49], 0
je 0x5308b8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + 0x48]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
call fcn.004c5164
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x48]
imul edx, dword [ebp - 0x38]
add edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x54]
mov byte [ecx + edx], al
fld qword [ebp - 0x40]
fadd qword [ebp - 0x68]
fstp qword [ebp - 0x40]
wait
inc dword [ebp - 0x34]
dec dword [ebp - 0x150]
jne 0x52fda5
inc dword [ebp - 0x38]
dec dword [ebp - 0x14c]
jne 0x52fd47
jmp 0x5310c7
call sub.kernel32.dll_GetTickCount_1
mov dword [ebp - 0x74], eax
cmp byte [ebp + 0xc], 0
jne 0x530b6e
mov eax, dword [ebp - 0x7c]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x164], eax
fild dword [ebp - 0x164]
fmul qword [ebp - 0x68]
fstp qword [ebp - 0x48]
wait
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x80]
dec edx
sub edx, eax
jl 0x5310c7
inc edx
mov dword [ebp - 0x14c], edx
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x5c]
call fcn.0042e744
mov dword [ebp - 0x50], eax
fld qword [ebp - 0x48]
call fcn.00403000
mov dword [ebp - 0x30], eax
fld qword [ebp - 0x48]
fadd qword [ebp - 0x68]
fstp qword [ebp - 0x48]
wait
mov eax, dword [ebp - 0x30]
cmp eax, dword [ebp - 0xa4]
je 0x530b22
mov eax, dword [ebp - 0x84]
sub eax, dword [ebp - 0x14]
mov dword [ebp - 0x164], eax
fild dword [ebp - 0x164]
fmul qword [ebp - 0x68]
fstp qword [ebp - 0x40]
wait
fld qword [ebp - 0x40]
call fcn.00403000
dec eax
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x84]
mov edx, dword [ebp - 0x88]
dec edx
sub edx, eax
jl 0x530b17
inc edx
mov dword [ebp - 0x150], edx
mov dword [ebp - 0x34], eax
fld qword [ebp - 0x40]
call fcn.00403000
mov dword [ebp - 0x2c], eax
fld qword [ebp - 0x40]
fadd qword [ebp - 0x68]
fstp qword [ebp - 0x40]
wait
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x9c]
je 0x530acd
mov eax, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0xcb]
push eax
mov eax, dword [ebp - 4]
lea edx, [eax + 0x58]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 4]
call fcn.00532cdc
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
mov cl, byte [ebp - 0xcb]
mov byte [eax + edx*4], cl
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
mov cl, byte [ebp - 0xca]
mov byte [eax + edx*4 + 1], cl
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
mov cl, byte [ebp - 0xc9]
mov byte [eax + edx*4 + 2], cl
cmp dword [ebp - 0x13c], 3
jne 0x530a95
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + 0x4c]
mov edx, dword [ebp - 0x2c]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp - 0x30]
cmp byte [eax + edx], 0
je 0x530a95
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x70]
cmp byte [eax + 0x54], 0
je 0x530a95
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
movzx eax, byte [eax + edx*4 + 2]
lea eax, [eax + eax*2]
add eax, 0xff
shr eax, 2
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4 + 2], al
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
movzx eax, byte [eax + edx*4 + 1]
lea eax, [eax + eax*2]
shr eax, 2
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4 + 1], al
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
movzx eax, byte [eax + edx*4]
lea eax, [eax + eax*2]
shr eax, 2
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4], al
cmp byte [ebp - 0x49], 0
je 0x530ac2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + 0x48]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
call fcn.004c5164
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x48]
imul edx, dword [ebp - 0x38]
add edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x54]
mov byte [ecx + edx], al
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x9c], eax
jmp 0x530b08
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
mov al, byte [eax + edx*4 - 4]
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4], al
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
mov al, byte [eax + edx*4 - 3]
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4 + 1], al
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
mov al, byte [eax + edx*4 - 2]
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4 + 2], al
inc dword [ebp - 0x34]
dec dword [ebp - 0x150]
jne 0x5309a5
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0xa4], eax
jmp 0x530b5a
mov edx, dword [ebp - 0x38]
dec edx
mov eax, dword [ebp - 0x5c]
call fcn.0042e744
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x84]
lea edx, [eax + edx*4]
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0x84]
lea eax, [eax + ecx*4]
mov ecx, dword [ebp - 0xac]
call fcn.00402d40
inc dword [ebp - 0x38]
dec dword [ebp - 0x14c]
jne 0x530929
jmp 0x5310c7
mov eax, dword [ebp - 0x7c]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x164], eax
fild dword [ebp - 0x164]
fmul qword [ebp - 0x68]
fstp qword [ebp - 0x48]
wait
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x80]
dec edx
sub edx, eax
jl 0x5310c7
inc edx
mov dword [ebp - 0x14c], edx
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x5c]
call fcn.0042e744
mov dword [ebp - 0x50], eax
fld qword [ebp - 0x48]
call fcn.00403000
mov dword [ebp - 0x30], eax
fild dword [ebp - 0x30]
fsubr qword [ebp - 0x48]
fstp qword [ebp - 0x118]
wait
fld qword [ebp - 0x48]
fadd qword [ebp - 0x68]
fstp qword [ebp - 0x48]
wait
mov eax, dword [ebp - 0x84]
sub eax, dword [ebp - 0x14]
mov dword [ebp - 0x164], eax
fild dword [ebp - 0x164]
fmul qword [ebp - 0x68]
fstp qword [ebp - 0x40]
wait
mov eax, dword [ebp - 0x84]
mov edx, dword [ebp - 0x88]
dec edx
sub edx, eax
jl 0x5310b8
inc edx
mov dword [ebp - 0x150], edx
mov dword [ebp - 0x34], eax
fld qword [ebp - 0x40]
call fcn.00403000
mov dword [ebp - 0x2c], eax
xor eax, eax
mov dword [ebp - 0x100], eax
mov dword [ebp - 0xfc], eax
xor eax, eax
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x104], eax
xor eax, eax
mov dword [ebp - 0x110], eax
mov dword [ebp - 0x10c], eax
cmp dword [ebp + 0x1c], 0x32
jl 0x530d95
mov eax, dword [ebp - 0x38]
inc eax
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x164], eax
fild dword [ebp - 0x164]
fmul qword [ebp - 0x68]
call fcn.00403000
mov dword [ebp - 0x124], eax
fld qword [ebp - 0x40]
fadd qword [ebp - 0x68]
call fcn.00403000
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0xce]
push eax
mov eax, dword [ebp - 4]
lea edx, [eax + 0x58]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 4]
call fcn.00532cdc
mov eax, dword [ebp - 0x124]
push eax
lea eax, [ebp - 0xd1]
push eax
mov eax, dword [ebp - 4]
lea edx, [eax + 0x58]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 4]
call fcn.00532cdc
mov eax, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0xd4]
push eax
mov eax, dword [ebp - 4]
lea edx, [eax + 0x58]
mov ecx, dword [ebp - 0x128]
mov eax, dword [ebp - 4]
call fcn.00532cdc
mov eax, dword [ebp - 0x124]
push eax
lea eax, [ebp - 0xd7]
push eax
mov eax, dword [ebp - 4]
lea edx, [eax + 0x58]
mov ecx, dword [ebp - 0x128]
mov eax, dword [ebp - 4]
call fcn.00532cdc
xor eax, eax
mov al, byte [ebp - 0xce]
xor edx, edx
mov dl, byte [ebp - 0xd1]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xd4]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xd7]
add eax, edx
shr eax, 2
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4], al
xor eax, eax
mov al, byte [ebp - 0xcd]
xor edx, edx
mov dl, byte [ebp - 0xd0]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xd3]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xd6]
add eax, edx
shr eax, 2
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4 + 1], al
xor eax, eax
mov al, byte [ebp - 0xcc]
xor edx, edx
mov dl, byte [ebp - 0xcf]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xd2]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xd5]
add eax, edx
shr eax, 2
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4 + 2], al
jmp 0x530ff1
mov eax, dword [ebp - 0x38]
inc eax
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x164], eax
fild dword [ebp - 0x164]
fmul qword [ebp - 0x68]
call fcn.00403000
mov dword [ebp - 0x124], eax
fld qword [ebp - 0x40]
fadd qword [ebp - 0x68]
call fcn.00403000
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0xce]
push eax
mov eax, dword [ebp - 4]
lea edx, [eax + 0x58]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 4]
call fcn.00532cdc
mov eax, dword [ebp - 0x124]
add eax, dword [ebp - 0x30]
shr eax, 1
push eax
lea eax, [ebp - 0xd1]
push eax
mov eax, dword [ebp - 4]
lea edx, [eax + 0x58]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 4]
call fcn.00532cdc
mov eax, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0xd4]
push eax
mov eax, dword [ebp - 4]
lea edx, [eax + 0x58]
mov ecx, dword [ebp - 0x128]
mov eax, dword [ebp - 4]
call fcn.00532cdc
mov eax, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0xd7]
push eax
mov ecx, dword [ebp - 0x128]
add ecx, dword [ebp - 0x2c]
shr ecx, 1
mov eax, dword [ebp - 4]
lea edx, [eax + 0x58]
mov eax, dword [ebp - 4]
call fcn.00532cdc
mov eax, dword [ebp - 0x124]
add eax, dword [ebp - 0x30]
shr eax, 1
push eax
lea eax, [ebp - 0xda]
push eax
mov eax, dword [ebp - 4]
lea edx, [eax + 0x58]
mov ecx, dword [ebp - 0x128]
mov eax, dword [ebp - 4]
call fcn.00532cdc
mov eax, dword [ebp - 0x124]
push eax
lea eax, [ebp - 0xdd]
push eax
mov ecx, dword [ebp - 0x128]
add ecx, dword [ebp - 0x2c]
shr ecx, 1
mov eax, dword [ebp - 4]
lea edx, [eax + 0x58]
mov eax, dword [ebp - 4]
call fcn.00532cdc
mov eax, dword [ebp - 0x124]
add eax, dword [ebp - 0x30]
shr eax, 1
push eax
lea eax, [ebp - 0xe0]
push eax
mov eax, dword [ebp - 4]
lea edx, [eax + 0x58]
mov ecx, dword [ebp - 0x128]
mov eax, dword [ebp - 4]
call fcn.00532cdc
mov eax, dword [ebp - 0x124]
push eax
lea eax, [ebp - 0xe3]
push eax
mov eax, dword [ebp - 4]
lea edx, [eax + 0x58]
mov ecx, dword [ebp - 0x128]
mov eax, dword [ebp - 4]
call fcn.00532cdc
xor eax, eax
mov al, byte [ebp - 0xce]
xor edx, edx
mov dl, byte [ebp - 0xd1]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xd4]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xd7]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xda]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xdd]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xe0]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xe3]
add eax, edx
shr eax, 3
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4], al
xor eax, eax
mov al, byte [ebp - 0xcd]
xor edx, edx
mov dl, byte [ebp - 0xd0]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xd3]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xd6]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xd9]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xdc]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xdf]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xe2]
add eax, edx
shr eax, 3
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4 + 1], al
xor eax, eax
mov al, byte [ebp - 0xcc]
xor edx, edx
mov dl, byte [ebp - 0xcf]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xd2]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xd5]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xd8]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xdb]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xde]
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0xe1]
add eax, edx
shr eax, 3
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4 + 2], al
cmp dword [ebp - 0x13c], 3
jne 0x531072
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + 0x4c]
mov edx, dword [ebp - 0x2c]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp - 0x30]
cmp byte [eax + edx], 0
je 0x531072
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x70]
cmp byte [eax + 0x54], 0
je 0x531072
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
movzx eax, byte [eax + edx*4 + 2]
lea eax, [eax + eax*2]
add eax, 0xff
shr eax, 2
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4 + 2], al
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
movzx eax, byte [eax + edx*4 + 1]
lea eax, [eax + eax*2]
shr eax, 2
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4 + 1], al
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x34]
movzx eax, byte [eax + edx*4]
lea eax, [eax + eax*2]
shr eax, 2
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x34]
mov byte [edx + ecx*4], al
cmp byte [ebp - 0x49], 0
je 0x53109f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x70]
mov eax, dword [eax + 0x48]
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
call fcn.004c5164
mov edx, dword [ebp - 8]
mov edx, dword [edx + 0x48]
imul edx, dword [ebp - 0x38]
add edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x54]
mov byte [ecx + edx], al
fld qword [ebp - 0x40]
fadd qword [ebp - 0x68]
fstp qword [ebp - 0x40]
wait
inc dword [ebp - 0x34]
dec dword [ebp - 0x150]
jne 0x530c0b
inc dword [ebp - 0x38]
dec dword [ebp - 0x14c]
jne 0x530ba0
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x7c]
call sub.kernel32.dll_GetTickCount_1
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x168]
push eax
mov eax, dword [ebp - 0x78]
sub eax, dword [ebp - 0x74]
mov dword [ebp - 0x170], eax
mov byte [ebp - 0x16c], 0
lea edx, [ebp - 0x170]
xor ecx, ecx
mov eax, 0x53115c
call fcn.0040b5bc
mov edx, dword [ebp - 0x168]
mov eax, dword [0x7a8acc]
mov eax, dword [eax]
call fcn.00471f74
mov eax, dword [ebp - 4]
lea edx, [eax + 0x94]
mov eax, dword [ebp - 4]
call fcn.00529468
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x531146
lea eax, [ebp - 0x168]
call fcn.004052bc
ret