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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5bfe87
mov eax, dword fs:[0]
push eax
sub esp, 0x12c
mov eax, dword [0x6ac30c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
xor ecx, ecx
cmp dword [esi + 0x1620], ecx
jne 0x52ade1
xor eax, eax
jmp 0x52c11d
cmp dword [esi + 0x1624], ecx
je 0x52adda
mov eax, dword [esi + 0x162c]
mov edi, dword [ebp + 0xc]
add eax, dword [ebp + 8]
mov edx, dword [esi + 0x1628]
lea edx, [edi + edx - 1]
mov ebx, 1
mov dword [ebp - 0x134], ecx
mov dword [ebp - 0x138], ecx
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], edx
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0xac], ebx
lea edi, [esi + 0x1678]
cmp dword [esi + 0x17ac], ecx
je 0x52aebd
lea ecx, [edi + 1]
mov dword [ebp - 0x12c], ecx
mov cl, byte [edi]
inc edi
test cl, cl
jne 0x52ae43
mov ecx, dword [esi + 0x17b0]
sub edi, dword [ebp - 0x12c]
mov dword [ecx + 0x38], eax
mov dword [ecx + 0x3c], edx
mov ecx, dword [esi + 0x17b0]
add edi, 2
call fcn.004b3e00
push 0xb4464646
lea edx, [ebp - 0xb8]
push edx
push edi
lea eax, [esi + 0x1678]
push eax
movzx eax, word [esi + 0x16b8]
push eax
mov ecx, 0x603a40
call fcn.004ad3f0
mov ecx, dword [esi + 0x16bc]
sub dword [ebp - 0xb8], ebx
sub dword [ebp - 0xb4], ebx
or ecx, 0xff000000
push ecx
lea edx, [ebp - 0xb8]
push edx
push edi
lea eax, [esi + 0x1678]
push eax
jmp 0x52b58d
cmp byte [edi], cl
je 0x52b050
push 0
push 0x200
mov ecx, 0x6d8700
call fcn.0050bd10
test eax, eax
je 0x52b050
lea edi, [esi + 0x171f]
mov eax, edi
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x52aef0
sub eax, ecx
add eax, 2
push 0x5daf48
push edi
mov dword [ebp - 0x130], eax
call fcn.0059a4c2
mov ecx, dword [esi + 0x1658]
mov edx, dword [ebp + 8]
lea eax, [ecx + edx - 0x19]
mov ecx, dword [esi + 0x1628]
add esp, 8
add ecx, dword [ebp + 0xc]
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x88], eax
mov eax, edi
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], ebx
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x52af61
sub eax, ecx
push eax
movzx eax, word [esi + 0x16b8]
push edi
push eax
mov ecx, 0x603a40
call fcn.004ad390
add dword [ebp - 0x6c], ebx
add dword [ebp - 0x70], ebx
add dword [ebp - 0x78], ebx
cdq
sub eax, edx
mov edx, dword [ebp - 0x130]
push 0xb4464646
sar eax, 1
neg eax
lea ecx, [ebp - 0x78]
push ecx
mov dword [esi + 0x162c], eax
movzx eax, word [esi + 0x16b8]
push edx
push edi
push eax
mov ecx, 0x603a40
call fcn.004ad3f0
mov edx, dword [ebp - 0x130]
movzx eax, word [esi + 0x16b8]
add dword [ebp - 0x74], ebx
sub dword [ebp - 0x7c], ebx
sub dword [ebp - 0x80], ebx
sub dword [ebp - 0x88], ebx
push 0xb4464646
lea ecx, [ebp - 0x88]
push ecx
push edx
push edi
push eax
mov ecx, 0x603a40
call fcn.004ad3f0
mov edx, dword [ebp - 0x130]
movzx eax, word [esi + 0x16b8]
add dword [ebp - 0x84], ebx
sub dword [ebp - 0x34], ebx
push 0xb4464646
lea ecx, [ebp - 0x38]
push ecx
push edx
push edi
push eax
mov ecx, 0x603a40
call fcn.004ad3f0
mov edx, dword [ebp - 0x130]
push 0xb4464646
mov eax, 2
add dword [ebp - 0x2c], eax
add dword [ebp - 0x34], eax
movzx eax, word [esi + 0x16b8]
lea ecx, [ebp - 0x38]
push ecx
push edx
push edi
push eax
mov ecx, 0x603a40
call fcn.004ad3f0
push 0xffffffffffffffff
lea ecx, [ebp - 0x48]
jmp 0x52b584
cmp byte [edi], 0
je 0x52b59f
mov ecx, dword [0x6d8f5c]
cmp byte [ecx + 0x475], bl
jne 0x52b1e0
mov eax, edi
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x52b070
sub eax, ecx
mov ecx, dword [esi + 0x1628]
add eax, 2
mov dword [ebp - 0x130], eax
mov eax, dword [ebp + 8]
add eax, dword [esi + 0x162c]
add ecx, dword [ebp + 0xc]
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x88], eax
mov eax, edi
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], ebx
lea ecx, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x52b0d0
sub eax, ecx
push eax
movzx eax, word [esi + 0x16b8]
push edi
push eax
mov ecx, 0x603a40
call fcn.004ad390
add dword [ebp - 0x6c], ebx
add dword [ebp - 0x70], ebx
add dword [ebp - 0x78], ebx
cdq
sub eax, edx
mov edx, dword [ebp - 0x130]
push 0xb4464646
sar eax, 1
neg eax
lea ecx, [ebp - 0x78]
push ecx
mov dword [esi + 0x162c], eax
movzx eax, word [esi + 0x16b8]
push edx
push edi
push eax
mov ecx, 0x603a40
call fcn.004ad3f0
mov edx, dword [ebp - 0x130]
movzx eax, word [esi + 0x16b8]
add dword [ebp - 0x74], ebx
sub dword [ebp - 0x7c], ebx
sub dword [ebp - 0x80], ebx
sub dword [ebp - 0x88], ebx
push 0xb4464646
lea ecx, [ebp - 0x88]
push ecx
push edx
push edi
push eax
mov ecx, 0x603a40
call fcn.004ad3f0
mov edx, dword [ebp - 0x130]
movzx eax, word [esi + 0x16b8]
add dword [ebp - 0x84], ebx
sub dword [ebp - 0x64], ebx
push 0xb4464646
lea ecx, [ebp - 0x68]
push ecx
push edx
push edi
push eax
mov ecx, 0x603a40
call fcn.004ad3f0
mov edx, dword [ebp - 0x130]
push 0xb4464646
mov eax, 2
add dword [ebp - 0x5c], eax
add dword [ebp - 0x64], eax
movzx eax, word [esi + 0x16b8]
lea ecx, [ebp - 0x68]
push ecx
push edx
push edi
push eax
mov ecx, 0x603a40
call fcn.004ad3f0
mov ecx, dword [esi + 0x16bc]
mov eax, dword [ebp - 0x130]
or ecx, 0xff000000
push ecx
movzx ecx, word [esi + 0x16b8]
lea edx, [ebp - 0x20]
push edx
push eax
push edi
push ecx
mov ecx, 0x603a40
call fcn.004ad3f0
cmp word [esi + 0x179c], bx
jb 0x52b42c
push 0
push 0x300
mov ecx, 0x6d8700
call fcn.0050bd10
test eax, eax
jne 0x52b42c
cmp dword [0x604230], eax
jne 0x52b42c
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x52b217
sub eax, edx
movzx edx, word [esi + 0x16b8]
add eax, 2
push eax
push edi
push edx
mov ecx, 0x603a40
call fcn.004ad390
mov dword [ebp - 0x12c], eax
cmp dword [esi + 0x17fc], eax
jge 0x52b24b
mov dword [esi + 0x17fc], eax
mov ecx, dword [esi + 0x17fc]
sar ecx, 2
mov dword [ebp - 0x5c], ecx
fild dword [ebp - 0x5c]
lea eax, [esi + 0x17c4]
mov dword [ebp - 0x5c], eax
fstp dword [ebp - 0x70]
mov dword [ebp - 0x130], 3
fld1
fstp dword [ebp - 0x6c]
push 0x20
call fcn.00599f65
add esp, 4
mov dword [ebp - 0x7c], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x52b296
mov ecx, eax
call fcn.004b0340
jmp 0x52b298
xor eax, eax
mov ecx, dword [ebp - 0x5c]
mov dword [ecx], eax
add ecx, 4
sub dword [ebp - 0x130], ebx
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x5c], ecx
jne 0x52b275
mov edx, dword [esi + 0x17c4]
push 0
push edx
push 0xec
mov ecx, 0x6d58c8
call fcn.004b5880
mov eax, dword [esi + 0x17c8]
push 0
push eax
push 0xed
mov ecx, 0x6d58c8
call fcn.004b5880
mov ecx, dword [esi + 0x17cc]
push 0
push ecx
push 0xee
mov ecx, 0x6d58c8
call fcn.004b5880
mov eax, dword [ebp - 0x12c]
mov edx, dword [esi + 0x162c]
add edx, dword [ebp + 8]
sar eax, 1
mov dword [ebp - 0x12c], eax
fild dword [ebp - 0x12c]
mov eax, dword [esi + 0x1628]
add eax, dword [ebp + 0xc]
mov dword [ebp - 0x12c], edx
fstp dword [ebp - 0x70]
push 0xffffffffffffffff
fild dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
lea ecx, [ebp - 0x28]
push ecx
fsub qword [0x5d7870]
push ecx
mov ecx, dword [esi + 0x17c4]
fstp dword [ebp - 0x28]
fild dword [ebp - 0x12c]
fsub qword [0x5daf40]
fstp dword [ebp - 0x24]
fldz
fstp dword [esp]
push 0
push 0
call fcn.004b0390
mov edx, dword [esi + 0x162c]
add edx, dword [ebp + 8]
mov eax, dword [esi + 0x1628]
add eax, dword [ebp + 0xc]
mov dword [ebp - 0x12c], edx
fild dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
push 0xffffffffffffffff
lea ecx, [ebp - 0x20]
fadd qword [0x5c76b8]
push ecx
push ecx
mov ecx, dword [esi + 0x17c8]
fstp dword [ebp - 0x20]
lea edx, [ebp - 0x70]
fild dword [ebp - 0x12c]
fsub qword [0x5daf40]
fstp dword [ebp - 0x1c]
fldz
fstp dword [esp]
push 0
push edx
call fcn.004b0390
mov eax, dword [esi + 0x162c]
add eax, dword [ebp + 8]
mov dword [ebp - 0x12c], eax
fild dword [ebp - 0x12c]
fadd dword [ebp - 0x70]
call fcn.0059a110
mov ecx, dword [esi + 0x1628]
add ecx, dword [ebp + 0xc]
mov dword [ebp - 0x12c], eax
fild dword [ebp - 0x12c]
mov dword [ebp - 0x12c], ecx
fadd qword [0x5c76b8]
fstp dword [ebp - 0x18]
fild dword [ebp - 0x12c]
push 0xffffffffffffffff
lea edx, [ebp - 0x18]
push edx
fsub qword [0x5daf40]
push ecx
mov ecx, dword [esi + 0x17cc]
fstp dword [ebp - 0x14]
fldz
fstp dword [esp]
push 0
push 0
call fcn.004b0390
mov eax, edi
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x52b431
sub eax, ecx
mov ecx, dword [ebp + 0xc]
add eax, 2
mov dword [ebp - 0x130], eax
mov eax, dword [esi + 0x162c]
add eax, dword [ebp + 8]
add ecx, dword [esi + 0x1628]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x38], eax
mov eax, edi
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x52b496
movzx edx, word [esi + 0x16b8]
sub eax, ecx
push eax
push edi
push edx
mov ecx, 0x603a40
call fcn.004ad390
mov ecx, dword [ebp - 0x130]
add dword [ebp - 0x4c], ebx
add dword [ebp - 0x50], ebx
add dword [ebp - 0x58], ebx
cdq
sub eax, edx
movzx edx, word [esi + 0x16b8]
sar eax, 1
neg eax
push 0xb4464646
mov dword [esi + 0x162c], eax
lea eax, [ebp - 0x58]
push eax
push ecx
push edi
push edx
mov ecx, 0x603a40
call fcn.004ad3f0
mov ecx, dword [ebp - 0x130]
movzx edx, word [esi + 0x16b8]
add dword [ebp - 0x54], ebx
sub dword [ebp - 0x2c], ebx
sub dword [ebp - 0x30], ebx
sub dword [ebp - 0x38], ebx
push 0xb4464646
lea eax, [ebp - 0x38]
push eax
push ecx
push edi
push edx
mov ecx, 0x603a40
call fcn.004ad3f0
mov ecx, dword [ebp - 0x130]
movzx edx, word [esi + 0x16b8]
add dword [ebp - 0x34], ebx
sub dword [ebp - 0x44], ebx
push 0xb4464646
lea eax, [ebp - 0x48]
push eax
push ecx
push edi
push edx
mov ecx, 0x603a40
call fcn.004ad3f0
mov ecx, dword [ebp - 0x130]
movzx edx, word [esi + 0x16b8]
mov eax, 2
add dword [ebp - 0x3c], eax
add dword [ebp - 0x44], eax
push 0xb4464646
lea eax, [ebp - 0x48]
push eax
push ecx
push edi
push edx
mov ecx, 0x603a40
call fcn.004ad3f0
mov eax, dword [esi + 0x16bc]
or eax, 0xff000000
push eax
lea ecx, [ebp - 0x98]
mov edx, dword [ebp - 0x130]
push ecx
push edx
push edi
movzx eax, word [esi + 0x16b8]
push eax
mov ecx, 0x603a40
call fcn.004ad3f0
cmp byte [esi + 0x16cc], 0
lea edi, [esi + 0x16cc]
mov dword [ebp - 0x5c], 0
je 0x52b77c
push 0
push 0x200
mov ecx, 0x6d8700
call fcn.0050bd10
test eax, eax
jne 0x52b75a
mov eax, edi
mov dword [ebp - 0x5c], 0x10
mov dword [ebp - 0x134], ebx
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x52b5e4
mov edx, dword [ebp + 0xc]
sub eax, ecx
mov ecx, dword [esi + 0x1630]
add eax, 2
mov dword [ebp - 0x130], eax
mov eax, dword [esi + 0x1634]
add eax, dword [ebp + 8]
lea ecx, [ecx + edx - 0x10]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x58], eax
mov eax, edi
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
lea ecx, [eax + 1]
lea ecx, [ecx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x52b650
sub eax, ecx
push eax
movzx eax, word [esi + 0x16b8]
push edi
push eax
mov ecx, 0x603a40
call fcn.004ad390
add dword [ebp - 0x2c], ebx
add dword [ebp - 0x30], ebx
add dword [ebp - 0x38], ebx
cdq
sub eax, edx
mov edx, dword [ebp - 0x130]
push 0xb41e1e1e
sar eax, 1
neg eax
lea ecx, [ebp - 0x38]
push ecx
mov dword [esi + 0x1634], eax
movzx eax, word [esi + 0x16b8]
push edx
push edi
push eax
mov ecx, 0x603a40
call fcn.004ad3f0
mov edx, dword [ebp - 0x130]
movzx eax, word [esi + 0x16b8]
add dword [ebp - 0x34], ebx
sub dword [ebp - 0x4c], ebx
sub dword [ebp - 0x50], ebx
sub dword [ebp - 0x58], ebx
push 0xb41e1e1e
lea ecx, [ebp - 0x58]
push ecx
push edx
push edi
push eax
mov ecx, 0x603a40
call fcn.004ad3f0
mov edx, dword [ebp - 0x130]
movzx eax, word [esi + 0x16b8]
add dword [ebp - 0x54], ebx
sub dword [ebp - 0x44], ebx
push 0xb41e1e1e
lea ecx, [ebp - 0x48]
push ecx
push edx
push edi
push eax
mov ecx, 0x603a40
call fcn.004ad3f0
mov edx, dword [ebp - 0x130]
push 0xb41e1e1e
mov eax, 2
add dword [ebp - 0x3c], eax
add dword [ebp - 0x44], eax
movzx eax, word [esi + 0x16b8]
lea ecx, [ebp - 0x48]
push ecx
push edx
push edi
push eax
mov ecx, 0x603a40
call fcn.004ad3f0
mov ecx, dword [esi + 0x16bc]
mov eax, dword [ebp - 0x130]
or ecx, 0xff000000
push ecx
movzx ecx, word [esi + 0x16b8]
lea edx, [ebp - 0x98]
push edx
push eax
push edi
push ecx
mov ecx, 0x603a40
call fcn.004ad3f0
cmp byte [edi], 0
je 0x52b77c
cmp byte [esi + 0x16dd], 0
je 0x52b77c
push 0
push 0x167
push 0x5daf28
call fcn.0040b590
add esp, 0xc
cmp byte [esi + 0x16dd], 0
lea edi, [esi + 0x16dd]
je 0x52b92a
push 0
push 0x200
mov ecx, 0x6d8700
call fcn.0050bd10
test eax, eax
jne 0x52b92a
add dword [ebp - 0x5c], 0x10
add dword [ebp - 0x134], ebx
mov eax, edi
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x52b7b7
sub eax, ecx
mov ecx, dword [esi + 0x1670]
sub ecx, dword [ebp - 0x5c]
add eax, 2
mov dword [ebp - 0x130], eax
mov eax, dword [ebp + 8]
add eax, dword [esi + 0x1674]
add ecx, dword [ebp + 0xc]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x58], eax
mov eax, edi
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
lea ecx, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x52b820
sub eax, ecx
push eax
movzx eax, word [esi + 0x16b8]
push edi
push eax
mov ecx, 0x603a40
call fcn.004ad390
add dword [ebp - 0x2c], ebx
add dword [ebp - 0x30], ebx
add dword [ebp - 0x38], ebx
cdq
sub eax, edx
mov edx, dword [ebp - 0x130]
push 0xb41e1e1e
sar eax, 1
neg eax
lea ecx, [ebp - 0x38]
push ecx
mov dword [esi + 0x1674], eax
movzx eax, word [esi + 0x16b8]
push edx
push edi
push eax
mov ecx, 0x603a40
call fcn.004ad3f0
mov edx, dword [ebp - 0x130]
movzx eax, word [esi + 0x16b8]
add dword [ebp - 0x34], ebx
sub dword [ebp - 0x4c], ebx
sub dword [ebp - 0x50], ebx
sub dword [ebp - 0x58], ebx
push 0xb41e1e1e
lea ecx, [ebp - 0x58]
push ecx
push edx
push edi
push eax
mov ecx, 0x603a40
call fcn.004ad3f0
mov edx, dword [ebp - 0x130]
movzx eax, word [esi + 0x16b8]
add dword [ebp - 0x54], ebx
sub dword [ebp - 0x44], ebx
push 0xb41e1e1e
lea ecx, [ebp - 0x48]
push ecx
push edx
push edi
push eax
mov ecx, 0x603a40
call fcn.004ad3f0
mov edx, dword [ebp - 0x130]
push 0xb41e1e1e
mov eax, 2
add dword [ebp - 0x3c], eax
add dword [ebp - 0x44], eax
movzx eax, word [esi + 0x16b8]
lea ecx, [ebp - 0x48]
push ecx
push edx
push edi
push eax
mov ecx, 0x603a40
call fcn.004ad3f0
mov ecx, dword [esi + 0x16bc]
mov eax, dword [ebp - 0x130]
or ecx, 0xff000000
push ecx
movzx ecx, word [esi + 0x16b8]
lea edx, [ebp - 0x98]
push edx
push eax
push edi
push ecx
mov ecx, 0x603a40
call fcn.004ad3f0
cmp byte [esi + 0x16fe], 0
lea edi, [esi + 0x16fe]
je 0x52bae3
push 0
push 0x200
mov ecx, 0x6d8700
call fcn.0050bd10
test eax, eax
jne 0x52bae3
cmp dword [0x604230], eax
jne 0x52bae3
mov ecx, dword [ebp - 0x5c]
mov eax, edi
lea edx, [eax + 1]
add ecx, 0x10
add dword [ebp - 0x134], ebx
mov dword [ebp - 0x12c], edx
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x52b980
sub eax, dword [ebp - 0x12c]
mov edx, dword [esi + 0x163c]
add eax, 2
mov dword [ebp - 0x5c], eax
mov eax, dword [esi + 0x1638]
add eax, dword [ebp + 8]
sub edx, ecx
mov ecx, dword [ebp + 0xc]
add ecx, edx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x58], eax
mov eax, edi
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
lea ecx, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x52b9f0
movzx edx, word [esi + 0x16b8]
sub eax, ecx
push eax
push edi
push edx
mov ecx, 0x603a40
call fcn.004ad390
mov ecx, dword [ebp - 0x5c]
add dword [ebp - 0x2c], ebx
add dword [ebp - 0x30], ebx
add dword [ebp - 0x38], ebx
cdq
sub eax, edx
movzx edx, word [esi + 0x16b8]
sar eax, 1
neg eax
push 0xb41e1e1e
mov dword [esi + 0x1638], eax
lea eax, [ebp - 0x38]
push eax
push ecx
push edi
push edx
mov ecx, 0x603a40
call fcn.004ad3f0
mov ecx, dword [ebp - 0x5c]
movzx edx, word [esi + 0x16b8]
add dword [ebp - 0x34], ebx
sub dword [ebp - 0x4c], ebx
sub dword [ebp - 0x50], ebx
sub dword [ebp - 0x58], ebx
push 0xb41e1e1e
lea eax, [ebp - 0x58]
push eax
push ecx
push edi
push edx
mov ecx, 0x603a40
call fcn.004ad3f0
mov ecx, dword [ebp - 0x5c]
movzx edx, word [esi + 0x16b8]
add dword [ebp - 0x54], ebx
sub dword [ebp - 0x44], ebx
push 0xb41e1e1e
lea eax, [ebp - 0x48]
push eax
push ecx
push edi
push edx
mov ecx, 0x603a40
call fcn.004ad3f0
mov ecx, dword [ebp - 0x5c]
movzx edx, word [esi + 0x16b8]
mov eax, 2
add dword [ebp - 0x3c], eax
add dword [ebp - 0x44], eax
push 0xb41e1e1e
lea eax, [ebp - 0x48]
push eax
push ecx
push edi
push edx
mov ecx, 0x603a40
call fcn.004ad3f0
mov ecx, dword [ebp - 0x5c]
movzx edx, word [esi + 0x16b8]
push 0xffff0098
lea eax, [ebp - 0x98]
push eax
push ecx
push edi
push edx
mov ecx, 0x603a40
call fcn.004ad3f0
lea ecx, [ebp - 0xe8]
call fcn.004b0340
lea ecx, [ebp - 0x108]
mov dword [ebp - 4], ebx
call fcn.004b0340
lea ecx, [ebp - 0x128]
mov byte [ebp - 4], 2
call fcn.004b0340
cmp dword [esi + 0x17d4], 0
mov byte [ebp - 4], 3
mov dword [ebp - 0xe4], 0
je 0x52bb57
push 0
lea eax, [ebp - 0x128]
push eax
push 0xf4
mov ecx, 0x6d58c8
call fcn.004b5880
push 0
lea ecx, [ebp - 0xe8]
push ecx
push 0xdd
mov ecx, 0x6d58c8
call fcn.004b5880
jmp 0x52bd4a
cmp dword [esi + 0x17d8], 0
je 0x52bb7d
push 0
lea edx, [ebp - 0xe8]
push edx
push 0xde
mov ecx, 0x6d58c8
call fcn.004b5880
jmp 0x52bd4a
cmp dword [esi + 0x17dc], 0
je 0x52bba3
push 0
lea eax, [ebp - 0xe8]
push eax
push 0xdf
mov ecx, 0x6d58c8
call fcn.004b5880
jmp 0x52bd4a
cmp dword [esi + 0x17e0], 0
jne 0x52bbe6
cmp dword [esi + 0x17e4], 0
jne 0x52bbe6
cmp dword [esi + 0x17e8], 0
jne 0x52bbe6
cmp dword [esi + 0x17ec], 0
jne 0x52bbe6
cmp dword [esi + 0x17f0], 0
jne 0x52bbe6
cmp dword [esi + 0x17f4], 0
jne 0x52bbe6
cmp dword [esi + 0x17f8], 0
je 0x52be41
cmp dword [ebp - 0x104], 0
jne 0x52be41
push 0
push 0x200
mov ecx, 0x6d8700
call fcn.0050bd10
test eax, eax
jne 0x52bd4a
mov ecx, dword [esi + 0x1640]
mov edx, dword [ebp + 8]
add dword [ebp - 0x134], ebx
lea eax, [ecx + edx + 1]
mov ecx, dword [esi + 0x1644]
add ecx, dword [ebp + 0xc]
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x12c], ecx
fild dword [ebp - 0x12c]
fild dword [ebp - 0x134]
fmul qword [0x5daf20]
fsubp st(1)
call fcn.0059a110
fld1
push 0
fst dword [ebp - 0x7c]
lea edx, [ebp - 0x108]
fstp dword [ebp - 0x80]
push edx
push 0xe0
mov ecx, 0x6d58c8
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
call fcn.004b5880
cmp dword [esi + 0x17f8], 0
je 0x52bca5
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x64]
add eax, 0xfffffff1
mov dword [ebp - 0x12c], eax
fild dword [ebp - 0x12c]
add ecx, 0xfffffffe
mov dword [ebp - 0x12c], ecx
fstp dword [ebp - 0x70]
fild dword [ebp - 0x12c]
jmp 0x52bccc
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x64]
add edx, 0xffffffed
mov dword [ebp - 0x12c], edx
fild dword [ebp - 0x12c]
add eax, 0xfffffffe
mov dword [ebp - 0x12c], eax
fstp dword [ebp - 0x70]
fild dword [ebp - 0x12c]
push 0xffffffffffffffff
fstp dword [ebp - 0x6c]
fldz
lea ecx, [ebp - 0x70]
push ecx
push ecx
fstp dword [esp]
push 0
lea edx, [ebp - 0x80]
push edx
lea ecx, [ebp - 0x108]
call fcn.004b0390
lea eax, [esi + 0x1764]
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x52bcf5
movzx ecx, word [esi + 0x16b8]
sub eax, edi
lea edi, [eax + 2]
push 0xb4464646
lea eax, [ebp - 0x68]
push eax
push edi
lea eax, [esi + 0x1764]
push eax
push ecx
mov ecx, 0x603a40
call fcn.004ad3f0
sub dword [ebp - 0x68], ebx
sub dword [ebp - 0x64], ebx
push 0xffffffffffffffff
lea edx, [ebp - 0x68]
push edx
push edi
lea eax, [esi + 0x1764]
push eax
movzx eax, word [esi + 0x16b8]
push eax
mov ecx, 0x603a40
call fcn.004ad3f0
cmp dword [ebp - 0xe4], 0
je 0x52be41
push 0
push 0x200
mov ecx, 0x6d8700
call fcn.0050bd10
test eax, eax
jne 0x52be41
mov eax, dword [esi + 0x1644]
add eax, dword [ebp + 0xc]
add dword [ebp - 0x134], ebx
mov ecx, dword [esi + 0x1640]
mov edx, dword [ebp + 8]
mov dword [ebp - 0x12c], eax
fild dword [ebp - 0x12c]
lea edi, [ecx + edx + 1]
fild dword [ebp - 0x134]
fmul qword [0x5cf8b0]
fsubp st(1)
call fcn.0059a110
fld1
fst dword [ebp - 0x6c]
lea ecx, [edi - 0x14]
fstp dword [ebp - 0x70]
mov dword [ebp - 0x12c], ecx
fild dword [ebp - 0x12c]
mov dword [ebp - 0x94], eax
add eax, 0xfffffffb
mov dword [ebp - 0x12c], eax
push 0xffffffffffffffff
fstp dword [ebp - 0x80]
lea edx, [ebp - 0x80]
fild dword [ebp - 0x12c]
push edx
push ecx
lea eax, [ebp - 0x70]
fstp dword [ebp - 0x7c]
lea ecx, [ebp - 0xe8]
fldz
fstp dword [esp]
push 0
push eax
call fcn.004b0390
mov ecx, dword [ebp - 0x94]
add edi, 0xfffffff1
mov dword [ebp - 0x12c], edi
fild dword [ebp - 0x12c]
add ecx, 0xffffffee
mov dword [ebp - 0x12c], ecx
push 0xffffffffffffffff
fstp dword [ebp - 0x60]
lea edx, [ebp - 0x60]
fild dword [ebp - 0x12c]
push edx
push ecx
lea eax, [ebp - 0x70]
fstp dword [ebp - 0x5c]
lea ecx, [ebp - 0x128]
fldz
fstp dword [esp]
push 0
push eax
call fcn.004b0390
cmp word [esi + 0x17b4], 0
je 0x52bfb0
cmp dword [0x604230], 0
jne 0x52bfb0
push 0
push 0x300
mov ecx, 0x6d8700
call fcn.0050bd10
test eax, eax
jne 0x52bfb0
mov eax, dword [esi + 0x17c0]
test eax, eax
je 0x52bfb0
cmp dword [eax + 2], 0
je 0x52bef4
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
cmp eax, dword [esi + 0x17b8]
jb 0x52bef4
call edi
add eax, 0x50
cmp dword [esi + 0x17bc], 0
mov dword [esi + 0x17b8], eax
jne 0x52beb6
add word [esi + 0x17b6], bx
jmp 0x52bece
mov cx, word [esi + 0x17b4]
mov word [esi + 0x17b6], cx
mov dword [esi + 0x17bc], 0
mov edx, dword [esi + 0x17c0]
movzx eax, word [edx + 6]
movzx ecx, word [esi + 0x17b4]
lea edx, [eax + ecx - 1]
movzx eax, word [esi + 0x17b6]
cmp eax, edx
jl 0x52bef4
mov dword [esi + 0x17bc], ebx
lea ecx, [ebp - 0xa8]
call fcn.004b0340
movzx edx, word [esi + 0x17b6]
push 7
lea ecx, [ebp - 0xa8]
push ecx
push edx
mov ecx, 0x6d58c8
mov byte [ebp - 4], 4
call fcn.004b5880
mov eax, dword [ebp - 0x98]
sub eax, dword [ebp - 0xa0]
mov ecx, dword [esi + 0x17c0]
add dword [ebp - 0x134], ebx
cdq
sub eax, edx
mov edx, dword [ecx + 0x12]
sar eax, 1
sub edx, eax
add edx, dword [ebp + 8]
push 0xffffffffffffffff
mov dword [ebp - 0x12c], edx
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x138], ebx
fild dword [ebp - 0x12c]
fstp dword [ebp - 0x70]
movzx eax, word [ecx + 8]
sub edx, eax
mov dword [ebp - 0x12c], edx
lea eax, [ebp - 0x70]
push eax
fild dword [ebp - 0x12c]
push ecx
fild dword [ebp - 0x134]
add ecx, 0xa
fmul qword [0x5ca9b8]
fsubp st(1)
fsub qword [0x5c76b0]
fstp dword [ebp - 0x6c]
fldz
fstp dword [esp]
push 0
push ecx
lea ecx, [ebp - 0xa8]
call fcn.004b0390
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 3
call fcn.004b0350
mov eax, dword [esi + 0x1798]
cmp eax, 0x3e7
jbe 0x52bfc6
mov dword [ebp - 0x5c], 0x18
jmp 0x52bfe6
cmp eax, 0x63
jbe 0x52bfd4
mov dword [ebp - 0x5c], 0x12
jmp 0x52bfe6
mov ecx, 9
cmp ecx, eax
sbb eax, eax
and eax, 6
add eax, 6
mov dword [ebp - 0x5c], eax
mov al, byte [esi + 0x1785]
lea edi, [esi + 0x1785]
test al, al
je 0x52c0ec
mov edx, dword [0x6008bc]
cmp byte [edx + 0x6c68e8], 0
je 0x52c012
cmp dword [0x6d8a5c], 0
je 0x52c033
test al, al
je 0x52c0ec
push 0
push 0x110
mov ecx, 0x6d8700
call fcn.0050bd10
test eax, eax
je 0x52c0ec
mov ecx, dword [esi + 0x165c]
add ecx, dword [ebp + 0xc]
add dword [ebp - 0x134], ebx
add dword [ebp - 0x138], ebx
mov eax, dword [esi + 0x1658]
sub eax, dword [ebp - 0x5c]
mov dword [ebp - 0x12c], ecx
fild dword [ebp - 0x12c]
add eax, dword [ebp + 8]
fild dword [ebp - 0x134]
mov dword [ebp - 0xc8], eax
fmul qword [0x5cd178]
fsubp st(1)
fld qword [0x5cf8b0]
fsub st(1), st(0)
fimul dword [ebp - 0x138]
fsubp st(1)
call fcn.0059a110
mov dword [ebp - 0xc4], eax
mov eax, edi
mov dword [ebp - 0xc0], ebx
mov dword [ebp - 0xbc], ebx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x52c0a0
push 0xb4141414
sub eax, esi
lea edx, [ebp - 0xc8]
push edx
lea esi, [eax + 2]
push esi
push edi
push 0xc
mov ecx, 0x603a40
call fcn.004ad3f0
sub dword [ebp - 0xc8], ebx
sub dword [ebp - 0xc4], ebx
push 0xffff0000
lea eax, [ebp - 0xc8]
push eax
push esi
push edi
push 0xc
mov ecx, 0x603a40
call fcn.004ad3f0
lea ecx, [ebp - 0x128]
mov byte [ebp - 4], 2
call fcn.004b0350
lea ecx, [ebp - 0x108]
mov byte [ebp - 4], bl
call fcn.004b0350
lea ecx, [ebp - 0xe8]
mov dword [ebp - 4], 0xffffffff
call fcn.004b0350
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00599821
mov esp, ebp
pop ebp
ret 8