Function at 0x402a90
Capabilities:
Check for time delay via gettickcount
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x520
push esi
mov dword [ebp - 0x464], ecx
mov dword [ebp - 0x24c], 0
call fcn.004b0b40
mov eax, dword [ebp - 0x464]
cmp dword [eax + 0x4bb8], 0
jle 0x402b7f
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x4bbc]
add edx, dword [ebp + 8]
mov eax, dword [ebp - 0x464]
mov dword [eax + 0x4bbc], edx
mov ecx, dword [ebp - 0x464]
mov esi, dword [ebp - 0x464]
mov eax, dword [ecx + 0x4bbc]
cdq
idiv dword [esi + 0x4bb8]
and eax, 1
je 0x402b3a
mov edx, dword [ebp - 0x464]
mov ecx, dword [ebp - 0x464]
mov eax, dword [edx + 0x4bbc]
cdq
idiv dword [ecx + 0x4bb8]
mov dword [ebp - 0x468], edx
fild dword [ebp - 0x468]
mov edx, dword [ebp - 0x464]
fidiv dword [edx + 0x4bb8]
mov eax, dword [ebp - 0x464]
fstp dword [eax + 0x328]
jmp 0x402b7d
mov ecx, dword [ebp - 0x464]
mov esi, dword [ebp - 0x464]
mov eax, dword [ecx + 0x4bbc]
cdq
idiv dword [esi + 0x4bb8]
mov dword [ebp - 0x46c], edx
fild dword [ebp - 0x46c]
mov edx, dword [ebp - 0x464]
fidiv dword [edx + 0x4bb8]
fsubr dword [0x692668]
mov eax, dword [ebp - 0x464]
fstp dword [eax + 0x328]
jmp 0x402b8f
mov ecx, dword [ebp - 0x464]
mov dword [ecx + 0x328], 0x3f800000
mov edx, dword [ebp - 0x464]
mov eax, dword [ebp - 0x464]
mov ecx, dword [edx + 0x4bc0]
cmp ecx, dword [eax + 0x4bc4]
je 0x402c1a
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x4bc4]
add eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x464]
mov dword [ecx + 0x4bc4], eax
mov edx, dword [ebp - 0x464]
mov eax, dword [ebp - 0x464]
mov ecx, dword [edx + 0x4bc4]
cmp ecx, dword [eax + 0x4bc0]
jle 0x402bf6
mov edx, dword [ebp - 0x464]
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax + 0x4bc0]
mov dword [edx + 0x4bc4], ecx
mov edx, dword [ebp - 0x464]
fild dword [edx + 0x4bc4]
mov eax, dword [ebp - 0x464]
fidiv dword [eax + 0x4bc0]
mov ecx, dword [ebp - 0x464]
fstp dword [ecx + 0x328]
mov edx, dword [ebp - 0x464]
mov eax, dword [ebp - 0x464]
mov ecx, dword [edx + 0x4bc8]
cmp ecx, dword [eax + 0x4bcc]
je 0x402cab
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x4bcc]
add eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x464]
mov dword [ecx + 0x4bcc], eax
mov edx, dword [ebp - 0x464]
mov eax, dword [ebp - 0x464]
mov ecx, dword [edx + 0x4bcc]
cmp ecx, dword [eax + 0x4bc8]
jle 0x402c81
mov edx, dword [ebp - 0x464]
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax + 0x4bc8]
mov dword [edx + 0x4bcc], ecx
mov edx, dword [ebp - 0x464]
fild dword [edx + 0x4bcc]
mov eax, dword [ebp - 0x464]
fidiv dword [eax + 0x4bc8]
fsubr dword [0x692668]
mov ecx, dword [ebp - 0x464]
fstp dword [ecx + 0x328]
mov edx, dword [ebp - 0x464]
fld dword [0x692668]
fld dword [edx + 0x328]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x402ce3
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax + 0xd4]
or ecx, 2
mov edx, dword [ebp - 0x464]
mov dword [edx + 0xd4], ecx
jmp 0x402cfe
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax + 0xd4]
and ecx, 0xfffffffd
mov edx, dword [ebp - 0x464]
mov dword [edx + 0xd4], ecx
mov eax, dword [ebp - 0x464]
cmp dword [eax + 0x4bd0], 0
je 0x403320
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x46b4]
and edx, 0x100
jne 0x402d2e
cmp dword [0x70eaa0], 0
je 0x402d3f
mov eax, dword [ebp - 0x464]
movzx ecx, byte [eax + 0x4638]
test ecx, ecx
je 0x402d4f
mov edx, dword [ebp - 0x464]
mov dword [edx + 0x4b4c], 0
cmp dword [0x70f38c], 0
je 0x40303a
mov eax, dword [ebp - 0x464]
movzx ecx, byte [eax + 0x4638]
cmp ecx, 1
jne 0x402d7e
mov edx, dword [ebp - 0x464]
mov dword [edx + 0x4b4c], 1
mov eax, dword [ebp - 0x464]
cmp dword [eax + 0x4b4c], 0
je 0x402e6e
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x4720]
mov eax, dword [edx + 0x48]
mov dword [ebp - 0x1ec], eax
mov dword [ebp - 0x158], 0
mov ecx, dword [ebp - 0x1ec]
mov dword [ebp - 0x154], ecx
mov dword [ebp - 0x150], 0
push 2
mov ecx, dword [ebp - 0x464]
call fcn.004013a0
mov dword [ebp - 0x1fc], eax
mov edx, dword [ebp - 0x1fc]
fld dword [ebp - 0x150]
fadd dword [edx + 8]
fstp dword [ebp - 0x1f0]
mov eax, dword [ebp - 0x1fc]
fld dword [ebp - 0x154]
fadd dword [eax + 4]
fstp dword [ebp - 0x1f4]
mov ecx, dword [ebp - 0x1fc]
fld dword [ebp - 0x158]
fadd dword [ecx]
fstp dword [ebp - 0x1f8]
mov edx, dword [ebp - 0x1f8]
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x1f4]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0x1f0]
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x4bd0]
mov dword [ebp - 0x200], eax
mov ecx, dword [ebp - 0x200]
add ecx, 0x3c
mov edx, dword [ebp - 0x10]
mov dword [ecx], edx
mov eax, dword [ebp - 0xc]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 8]
mov dword [ecx + 8], edx
mov ecx, dword [ebp - 0x200]
call fcn.00538690
jmp 0x403035
mov eax, dword [ebp - 0x464]
movzx ecx, byte [eax + 0x470c]
test ecx, ecx
je 0x402fa3
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x4bd8]
cmp eax, dword [ebp + 8]
jbe 0x402fa3
mov ecx, dword [ebp - 0x464]
cmp dword [ecx + 0x4b4c], 0
jne 0x402fa3
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x4bd8]
sub eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x464]
mov dword [ecx + 0x4bd8], eax
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x4720]
mov ecx, dword [eax + 0x48]
mov dword [ebp - 0x204], ecx
mov dword [ebp - 0x164], 0
mov edx, dword [ebp - 0x204]
mov dword [ebp - 0x160], edx
mov dword [ebp - 0x15c], 0
push 2
mov ecx, dword [ebp - 0x464]
call fcn.004013a0
mov dword [ebp - 0x214], eax
mov eax, dword [ebp - 0x214]
fld dword [ebp - 0x15c]
fadd dword [eax + 8]
fstp dword [ebp - 0x208]
mov ecx, dword [ebp - 0x214]
fld dword [ebp - 0x160]
fadd dword [ecx + 4]
fstp dword [ebp - 0x20c]
mov edx, dword [ebp - 0x214]
fld dword [ebp - 0x164]
fadd dword [edx]
fstp dword [ebp - 0x210]
mov eax, dword [ebp - 0x210]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x20c]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x208]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax + 0x4bd0]
mov dword [ebp - 0x218], ecx
mov edx, dword [ebp - 0x218]
add edx, 0x3c
mov eax, dword [ebp - 0x1c]
mov dword [edx], eax
mov ecx, dword [ebp - 0x18]
mov dword [edx + 4], ecx
mov eax, dword [ebp - 0x14]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 0x218]
call fcn.00538690
jmp 0x403035
mov ecx, dword [ebp - 0x464]
mov dword [ecx + 0x4bd8], 0
mov edx, dword [ebp - 0x464]
cmp dword [edx + 0x4bd0], 0
je 0x403035
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax + 0x4bd0]
mov dword [ebp - 0x16c], ecx
mov edx, dword [ebp - 0x16c]
mov dword [ebp - 0x168], edx
cmp dword [ebp - 0x168], 0
je 0x40301b
mov ecx, dword [ebp - 0x168]
call fcn.005375a0
mov eax, 1
and eax, 1
je 0x40300d
mov ecx, dword [ebp - 0x168]
push ecx
call fcn.0067483b
add esp, 4
mov edx, dword [ebp - 0x168]
mov dword [ebp - 0x470], edx
jmp 0x403025
mov dword [ebp - 0x470], 0
mov eax, dword [ebp - 0x464]
mov dword [eax + 0x4bd0], 0
jmp 0x40331b
mov ecx, dword [ebp - 0x464]
movzx edx, byte [ecx + 0x470c]
test edx, edx
je 0x403154
mov eax, dword [ebp - 0x464]
cmp dword [eax + 0x4b4c], 0
je 0x403154
mov ecx, dword [ebp - 0x464]
movzx edx, byte [ecx + 0x4638]
test edx, edx
jne 0x403154
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax + 0x4720]
mov edx, dword [ecx + 0x48]
mov dword [ebp - 0x21c], edx
mov dword [ebp - 0x178], 0
mov eax, dword [ebp - 0x21c]
mov dword [ebp - 0x174], eax
mov dword [ebp - 0x170], 0
push 2
mov ecx, dword [ebp - 0x464]
call fcn.004013a0
mov dword [ebp - 0x22c], eax
mov ecx, dword [ebp - 0x22c]
fld dword [ebp - 0x170]
fadd dword [ecx + 8]
fstp dword [ebp - 0x220]
mov edx, dword [ebp - 0x22c]
fld dword [ebp - 0x174]
fadd dword [edx + 4]
fstp dword [ebp - 0x224]
mov eax, dword [ebp - 0x22c]
fld dword [ebp - 0x178]
fadd dword [eax]
fstp dword [ebp - 0x228]
mov ecx, dword [ebp - 0x228]
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x224]
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x220]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x4bd0]
mov dword [ebp - 0x230], edx
mov eax, dword [ebp - 0x230]
add eax, 0x3c
mov ecx, dword [ebp - 0x28]
mov dword [eax], ecx
mov edx, dword [ebp - 0x24]
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0x20]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x230]
call fcn.00538690
jmp 0x40331b
mov edx, dword [ebp - 0x464]
movzx eax, byte [edx + 0x470c]
test eax, eax
je 0x403289
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x4bd8]
cmp edx, dword [ebp + 8]
jbe 0x403289
mov eax, dword [ebp - 0x464]
cmp dword [eax + 0x4b4c], 0
jne 0x403289
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x4bd8]
sub edx, dword [ebp + 8]
mov eax, dword [ebp - 0x464]
mov dword [eax + 0x4bd8], edx
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x4720]
mov eax, dword [edx + 0x48]
mov dword [ebp - 0x234], eax
mov dword [ebp - 0x184], 0
mov ecx, dword [ebp - 0x234]
mov dword [ebp - 0x180], ecx
mov dword [ebp - 0x17c], 0
push 2
mov ecx, dword [ebp - 0x464]
call fcn.004013a0
mov dword [ebp - 0x244], eax
mov edx, dword [ebp - 0x244]
fld dword [ebp - 0x17c]
fadd dword [edx + 8]
fstp dword [ebp - 0x238]
mov eax, dword [ebp - 0x244]
fld dword [ebp - 0x180]
fadd dword [eax + 4]
fstp dword [ebp - 0x23c]
mov ecx, dword [ebp - 0x244]
fld dword [ebp - 0x184]
fadd dword [ecx]
fstp dword [ebp - 0x240]
mov edx, dword [ebp - 0x240]
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x23c]
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x238]
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x4bd0]
mov dword [ebp - 0x248], eax
mov ecx, dword [ebp - 0x248]
add ecx, 0x3c
mov edx, dword [ebp - 0x34]
mov dword [ecx], edx
mov eax, dword [ebp - 0x30]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0x2c]
mov dword [ecx + 8], edx
mov ecx, dword [ebp - 0x248]
call fcn.00538690
jmp 0x40331b
mov eax, dword [ebp - 0x464]
mov dword [eax + 0x4bd8], 0
mov ecx, dword [ebp - 0x464]
cmp dword [ecx + 0x4bd0], 0
je 0x40331b
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x4bd0]
mov dword [ebp - 0x18c], eax
mov ecx, dword [ebp - 0x18c]
mov dword [ebp - 0x188], ecx
cmp dword [ebp - 0x188], 0
je 0x403301
mov ecx, dword [ebp - 0x188]
call fcn.005375a0
mov edx, 1
and edx, 1
je 0x4032f3
mov eax, dword [ebp - 0x188]
push eax
call fcn.0067483b
add esp, 4
mov ecx, dword [ebp - 0x188]
mov dword [ebp - 0x474], ecx
jmp 0x40330b
mov dword [ebp - 0x474], 0
mov edx, dword [ebp - 0x464]
mov dword [edx + 0x4bd0], 0
jmp 0x4034d2
mov eax, dword [ebp - 0x464]
movzx ecx, byte [eax + 0x470c]
test ecx, ecx
je 0x4034d2
mov edx, dword [ebp - 0x464]
movzx eax, byte [edx + 0x4638]
test eax, eax
jne 0x4034d2
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x46b4]
and edx, 0x100
je 0x4033b1
mov eax, dword [ebp - 0x464]
mov dword [ebp - 0x478], eax
mov ecx, dword [ebp - 0x478]
cmp dword [ecx + 0x46c0], 0
jne 0x40338b
mov edx, dword [ebp - 0x478]
cmp dword [edx + 0x46c4], 0x10000
je 0x4033ac
push 1
push 0
push 0xff
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax + 0x442c]
push ecx
mov ecx, dword [ebp - 0x464]
call fcn.0040e730
jmp 0x4034d2
cmp dword [0x70eaa0], 0
je 0x4034d2
push 1
lea ecx, [ebp - 0xd0]
call fcn.00404a10
lea edx, [ebp - 0xd0]
test edx, edx
je 0x4033e3
lea eax, [ebp - 0xc8]
mov dword [ebp - 0x47c], eax
jmp 0x4033ed
mov dword [ebp - 0x47c], 0
push 0x6926d8
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x442c]
push edx
push 0x6926d4
mov eax, dword [ebp - 0x47c]
push eax
call fcn.00411a10
add esp, 8
push eax
call fcn.00411a10
add esp, 8
push eax
call fcn.00411a10
add esp, 8
mov dword [ebp - 0x420], eax
push 0
mov ecx, dword [ebp - 0x420]
call fcn.004068c0
mov ecx, dword [ebp - 0x464]
mov dword [ebp - 0x480], ecx
mov edx, dword [ebp - 0x480]
cmp dword [edx + 0x46c0], 0
jne 0x403465
mov eax, dword [ebp - 0x480]
cmp dword [eax + 0x46c4], 0x10000
je 0x4034aa
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0x428], ecx
push 1
mov ecx, dword [ebp - 0x428]
call fcn.0067371b
mov edx, dword [ebp - 0x428]
mov eax, dword [edx + 0x20]
mov ecx, dword [eax]
mov dword [ebp - 0x424], ecx
push 1
push 0
push 0xff
mov edx, dword [ebp - 0x424]
push edx
mov ecx, dword [ebp - 0x464]
call fcn.0040e730
lea ecx, [ebp - 0x70]
call fcn.00673cbf
lea eax, [ebp - 0x70]
mov dword [ebp - 0x42c], eax
mov ecx, dword [ebp - 0x42c]
mov dword [ecx], 0x6cd8e8
mov ecx, dword [ebp - 0x42c]
call fcn.00673480
mov edx, dword [ebp - 0x464]
cmp dword [edx + 0x4bd4], 0
je 0x403686
mov eax, dword [ebp - 0x464]
movzx ecx, byte [eax + 0x4638]
test ecx, ecx
jne 0x403604
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x46b4]
and eax, 0x10
je 0x403604
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x4720]
fld dword [edx + 0x48]
fadd dword [0x6926d0]
fstp dword [ebp - 0x430]
mov dword [ebp - 0x198], 0
mov eax, dword [ebp - 0x430]
mov dword [ebp - 0x194], eax
mov dword [ebp - 0x190], 0
push 2
mov ecx, dword [ebp - 0x464]
call fcn.004013a0
mov dword [ebp - 0x440], eax
mov ecx, dword [ebp - 0x440]
fld dword [ebp - 0x190]
fadd dword [ecx + 8]
fstp dword [ebp - 0x434]
mov edx, dword [ebp - 0x440]
fld dword [ebp - 0x194]
fadd dword [edx + 4]
fstp dword [ebp - 0x438]
mov eax, dword [ebp - 0x440]
fld dword [ebp - 0x198]
fadd dword [eax]
fstp dword [ebp - 0x43c]
mov ecx, dword [ebp - 0x43c]
mov dword [ebp - 0xdc], ecx
mov edx, dword [ebp - 0x438]
mov dword [ebp - 0xd8], edx
mov eax, dword [ebp - 0x434]
mov dword [ebp - 0xd4], eax
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x4bd4]
mov dword [ebp - 0x444], edx
mov eax, dword [ebp - 0x444]
add eax, 0x3c
mov ecx, dword [ebp - 0xdc]
mov dword [eax], ecx
mov edx, dword [ebp - 0xd8]
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0xd4]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x444]
call fcn.00538690
jmp 0x403686
mov edx, dword [ebp - 0x464]
cmp dword [edx + 0x4bd4], 0
je 0x403686
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax + 0x4bd4]
mov dword [ebp - 0x1a0], ecx
mov edx, dword [ebp - 0x1a0]
mov dword [ebp - 0x19c], edx
cmp dword [ebp - 0x19c], 0
je 0x40366c
mov ecx, dword [ebp - 0x19c]
call fcn.005375a0
mov eax, 1
and eax, 1
je 0x40365e
mov ecx, dword [ebp - 0x19c]
push ecx
call fcn.0067483b
add esp, 4
mov edx, dword [ebp - 0x19c]
mov dword [ebp - 0x484], edx
jmp 0x403676
mov dword [ebp - 0x484], 0
mov eax, dword [ebp - 0x464]
mov dword [eax + 0x4bd4], 0
mov ecx, dword [ebp - 0x464]
cmp dword [ecx + 0x4714], 0
je 0x4036d3
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x4714]
cmp eax, dword [ebp + 8]
jbe 0x4036c3
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x4714]
sub edx, dword [ebp + 8]
mov eax, dword [ebp - 0x464]
mov dword [eax + 0x4714], edx
jmp 0x4036d3
mov ecx, dword [ebp - 0x464]
mov dword [ecx + 0x4714], 0
mov edx, dword [ebp - 0x464]
movzx eax, byte [edx + 0x4638]
test eax, eax
jne 0x40393d
mov ecx, dword [ebp - 0x464]
movzx edx, byte [ecx + 0x46f6]
test edx, edx
je 0x40372f
mov eax, dword [ebp - 0x464]
cmp dword [eax + 0x46e8], 1
jne 0x40372f
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x48c], ecx
mov dword [ebp - 0x488], 0
fild qword [ebp - 0x48c]
fmul qword [0x6926c8]
call fcn.00674a00
mov dword [ebp + 8], eax
mov edx, dword [ebp - 0x464]
cmp dword [edx + 0x46e8], 1
jne 0x403838
mov eax, dword [ebp - 0x464]
add eax, 0x4648
mov dword [ebp - 0x448], eax
mov ecx, dword [ebp - 0x464]
add ecx, 0x4660
mov dword [ebp - 0x44c], ecx
mov edx, dword [ebp - 0x44c]
mov eax, dword [ebp - 0x448]
fld dword [eax]
fld dword [edx]
fucompp
fnstsw ax
test ah, 0x44
jp 0x4037c0
mov ecx, dword [ebp - 0x44c]
mov edx, dword [ebp - 0x448]
fld dword [edx + 4]
fld dword [ecx + 4]
fucompp
fnstsw ax
test ah, 0x44
jp 0x4037c0
mov eax, dword [ebp - 0x44c]
mov ecx, dword [ebp - 0x448]
fld dword [ecx + 8]
fld dword [eax + 8]
fucompp
fnstsw ax
test ah, 0x44
jp 0x4037c0
mov dword [ebp - 0x490], 1
jmp 0x4037ca
mov dword [ebp - 0x490], 0
cmp dword [ebp - 0x490], 0
je 0x403838
mov edx, dword [ebp - 0x464]
cmp dword [edx + 0x4b50], 0
jne 0x4037f6
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp - 0x464]
mov dword [ecx + 0x4b50], eax
jmp 0x403836
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [ebp - 0x464]
sub eax, dword [edx + 0x4b50]
cmp eax, 0x1388
jbe 0x403836
push 0
push 1
push 0
mov eax, dword [ebp - 0x464]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x464]
call dword [edx + 0x68]
mov eax, dword [ebp - 0x464]
mov dword [eax + 0x4b50], 0
jmp 0x403848
mov ecx, dword [ebp - 0x464]
mov dword [ecx + 0x4b50], 0
mov edx, dword [ebp - 0x464]
cmp dword [edx + 0x46d0], 0
jne 0x403938
mov eax, dword [ebp - 0x464]
movzx ecx, byte [eax + 0x4b0c]
cmp ecx, 1
jle 0x403938
mov edx, dword [ebp - 0x464]
cmp dword [edx + 0x46e8], 7
jne 0x403938
mov eax, dword [ebp - 0x464]
cmp dword [eax + 0x4710], 0
je 0x403938
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x4710]
push edx
call fcn.00407a50
add esp, 4
mov dword [ebp - 0xe0], eax
cmp dword [ebp - 0xe0], 0
je 0x403938
push 1
mov ecx, dword [ebp - 0x464]
call fcn.004013a0
mov ecx, dword [ebp - 0x464]
add ecx, 0x4654
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
mov ecx, dword [ebp - 0x464]
add ecx, 0x4648
push ecx
mov edx, dword [ebp - 0x464]
add edx, 0x4654
push edx
call fcn.0040a640
add esp, 8
fstp dword [ebp - 0xe4]
mov eax, dword [ebp - 0x464]
fld dword [ebp - 0xe4]
fld dword [eax + 0x46e0]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x403938
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x464]
call dword [edx + 0x58]
jmp 0x4039fb
mov eax, dword [ebp - 0x464]
movzx ecx, byte [eax + 0x4638]
cmp ecx, 1
jne 0x4039fb
mov edx, dword [ebp - 0x464]
cmp dword [edx + 0x46f8], 0
je 0x4039fb
mov eax, dword [ebp - 0x464]
cmp dword [eax + 0x46d0], 0
jne 0x4039fb
mov ecx, dword [ebp - 0x464]
cmp dword [ecx + 0x46dc], 0
jne 0x4039fb
mov edx, dword [ebp - 0x464]
cmp dword [edx + 0x46e8], 1
je 0x4039a6
mov eax, dword [ebp - 0x464]
cmp dword [eax + 0x46e8], 2
jne 0x4039fb
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x46f8]
cmp edx, dword [ebp + 8]
jbe 0x4039d4
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax + 0x46f8]
sub ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x464]
mov dword [edx + 0x46f8], ecx
jmp 0x4039fb
mov eax, dword [ebp - 0x464]
mov dword [eax + 0x46f8], 0
push 0
push 1
push 0
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x464]
call dword [edx + 0x68]
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0x464]
mov eax, dword [0x7e0ba8]
sub eax, dword [edx + 0x40]
cdq
xor eax, edx
sub eax, edx
cmp eax, 1
jg 0x403a21
mov dword [ebp - 4], 1
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax + 0xd4]
and ecx, 0xfffffffe
mov edx, dword [ebp - 0x464]
mov dword [edx + 0xd4], ecx
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax + 0x46c0]
and ecx, 0x1000
mov edx, dword [eax + 0x46c4]
and edx, 0
mov dword [ebp - 0x498], ecx
mov dword [ebp - 0x494], edx
mov eax, dword [ebp - 0x498]
or eax, dword [ebp - 0x494]
jne 0x403aa9
mov ecx, dword [ebp - 0x464]
cmp dword [ecx + 0x4b20], 0xffffffff
je 0x403aa9
push 0
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x4b20]
push eax
mov ecx, 0x700550
call fcn.00442c60
mov ecx, dword [ebp - 0x464]
mov dword [ecx + 0x4b20], 0xffffffff
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x46c0]
and eax, 0x100
mov ecx, dword [edx + 0x46c4]
and ecx, 0
mov dword [ebp - 0x4a0], eax
mov dword [ebp - 0x49c], ecx
mov edx, dword [ebp - 0x4a0]
or edx, dword [ebp - 0x49c]
jne 0x403b15
mov eax, dword [ebp - 0x464]
cmp dword [eax + 0x4b24], 0xffffffff
je 0x403b15
push 0
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x4b24]
push edx
mov ecx, 0x700550
call fcn.00442c60
mov eax, dword [ebp - 0x464]
mov dword [eax + 0x4b24], 0xffffffff
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x46c0]
and edx, 0x10000000
mov eax, dword [ecx + 0x46c4]
and eax, 0
mov dword [ebp - 0x4a8], edx
mov dword [ebp - 0x4a4], eax
mov ecx, dword [ebp - 0x4a8]
or ecx, dword [ebp - 0x4a4]
jne 0x403b80
mov edx, dword [ebp - 0x464]
cmp dword [edx + 0x4b28], 0xffffffff
je 0x403b80
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax + 0x4b28]
push ecx
mov ecx, 0x70be58
call fcn.00446010
mov edx, dword [ebp - 0x464]
mov dword [edx + 0x4b28], 0xffffffff
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax + 0x46c0]
and ecx, 0x40000000
mov edx, dword [eax + 0x46c4]
and edx, 0
mov dword [ebp - 0x4b0], ecx
mov dword [ebp - 0x4ac], edx
mov eax, dword [ebp - 0x4b0]
or eax, dword [ebp - 0x4ac]
jne 0x403beb
mov ecx, dword [ebp - 0x464]
cmp dword [ecx + 0x4b2c], 0xffffffff
je 0x403beb
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x4b2c]
push eax
mov ecx, 0x70be58
call fcn.00446010
mov ecx, dword [ebp - 0x464]
mov dword [ecx + 0x4b2c], 0xffffffff
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x46c0]
and eax, 0x200
mov ecx, dword [edx + 0x46c4]
and ecx, 0
mov dword [ebp - 0x4b8], eax
mov dword [ebp - 0x4b4], ecx
mov edx, dword [ebp - 0x4b8]
or edx, dword [ebp - 0x4b4]
jne 0x403c79
mov eax, dword [ebp - 0x464]
cmp dword [eax + 0x4b30], 0xffffffff
je 0x403c79
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x4b30]
push edx
mov ecx, 0x70be58
call fcn.00446010
cmp dword [ebp - 4], 0
je 0x403c69
push 1
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax + 0x4424]
push ecx
push 0x6926b4
mov ecx, 0x70be58
call fcn.00445dc0
mov edx, dword [ebp - 0x464]
mov dword [edx + 0x4b30], 0xffffffff
mov eax, dword [ebp - 0x464]
cmp dword [eax + 0x46ac], 0
jle 0x40444d
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x46c0]
and edx, 2
mov eax, dword [ecx + 0x46c4]
and eax, 0
mov dword [ebp - 0x4c0], edx
mov dword [ebp - 0x4bc], eax
mov ecx, dword [ebp - 0x4c0]
or ecx, dword [ebp - 0x4bc]
jne 0x403d05
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x46c0]
and eax, 0x2000
mov ecx, dword [edx + 0x46c4]
and ecx, 0
mov dword [ebp - 0x4c8], eax
mov dword [ebp - 0x4c4], ecx
mov edx, dword [ebp - 0x4c8]
or edx, dword [ebp - 0x4c4]
jne 0x403d05
mov eax, dword [ebp - 0x464]
cmp dword [eax + 0x4b14], 0
je 0x403e2e
mov ecx, dword [ebp - 0x464]
xor edx, edx
cmp dword [ecx + 0x46e8], 2
sete dl
mov dword [ebp - 0x11c], edx
mov eax, dword [ebp - 0x464]
cmp dword [eax + 0x4b14], 0
jle 0x403d7f
mov ecx, dword [ebp - 0x464]
cmp dword [ecx + 0x46e8], 1
jne 0x403d7f
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x4720]
mov ecx, dword [ebp - 0x11c]
fild dword [eax + ecx*4 + 0x68]
fmul dword [0x692664]
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x4b14]
add eax, 0x64
mov dword [ebp - 0x4cc], eax
fidiv dword [ebp - 0x4cc]
call fcn.00674a00
mov dword [ebp - 0x120], eax
jmp 0x403df1
mov ecx, dword [ebp - 0x464]
cmp dword [ecx + 0x4b14], 0
jge 0x403dd5
mov edx, dword [ebp - 0x464]
mov eax, 0x64
sub eax, dword [edx + 0x4b14]
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x4720]
mov ecx, dword [ebp - 0x11c]
imul eax, dword [edx + ecx*4 + 0x68]
mov dword [ebp - 0x4d0], eax
fild dword [ebp - 0x4d0]
fdiv dword [0x692664]
call fcn.00674a00
mov dword [ebp - 0x120], eax
jmp 0x403df1
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x4720]
mov ecx, dword [ebp - 0x11c]
mov edx, dword [eax + ecx*4 + 0x68]
mov dword [ebp - 0x120], edx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x4d8], eax
mov dword [ebp - 0x4d4], 0
fild qword [ebp - 0x4d8]
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x4720]
mov eax, dword [ebp - 0x11c]
fimul dword [edx + eax*4 + 0x68]
fidiv dword [ebp - 0x120]
call fcn.00674a00
mov dword [ebp + 8], eax
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x46c0]
and edx, 0x1000
mov eax, dword [ecx + 0x46c4]
and eax, 0
mov dword [ebp - 0x4e0], edx
mov dword [ebp - 0x4dc], eax
mov ecx, dword [ebp - 0x4e0]
or ecx, dword [ebp - 0x4dc]
je 0x403ecb
mov edx, dword [ebp - 0x464]
cmp dword [edx + 0x4b20], 0xffffffff
jne 0x403ecb
cmp dword [ebp - 4], 0
je 0x403ecb
mov dword [ebp - 0x1ac], 0
mov dword [ebp - 0x1a8], 0
mov dword [ebp - 0x1a4], 0
push 0
lea eax, [ebp - 0x1ac]
push eax
push 0
push 1
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x4424]
push edx
push 0x6926a4
mov ecx, 0x700550
call fcn.004428e0
mov ecx, dword [ebp - 0x464]
mov dword [ecx + 0x4b20], eax
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x46c0]
and eax, 0x100
mov ecx, dword [edx + 0x46c4]
and ecx, 0
mov dword [ebp - 0x4e8], eax
mov dword [ebp - 0x4e4], ecx
mov edx, dword [ebp - 0x4e8]
or edx, dword [ebp - 0x4e4]
je 0x403f67
mov eax, dword [ebp - 0x464]
cmp dword [eax + 0x4b24], 0xffffffff
jne 0x403f67
cmp dword [ebp - 4], 0
je 0x403f67
mov dword [ebp - 0x1b8], 0
mov dword [ebp - 0x1b4], 0x40e00000
mov dword [ebp - 0x1b0], 0
push 0
lea ecx, [ebp - 0x1b8]
push ecx
push 0
push 2
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x4424]
push eax
push 0x69269c
mov ecx, 0x700550
call fcn.004428e0
mov ecx, dword [ebp - 0x464]
mov dword [ecx + 0x4b24], eax
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x46c0]
and eax, 0x10000000
mov ecx, dword [edx + 0x46c4]
and ecx, 0
mov dword [ebp - 0x4f0], eax
mov dword [ebp - 0x4ec], ecx
mov edx, dword [ebp - 0x4f0]
or edx, dword [ebp - 0x4ec]
je 0x403fda
mov eax, dword [ebp - 0x464]
cmp dword [eax + 0x4b28], 0xffffffff
jne 0x403fda
cmp dword [ebp - 4], 0
je 0x403fda
push 0
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x4424]
push edx
push 0x69268c
mov ecx, 0x70be58
call fcn.00445dc0
mov ecx, dword [ebp - 0x464]
mov dword [ecx + 0x4b28], eax
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x46c0]
and eax, 0x40000000
mov ecx, dword [edx + 0x46c4]
and ecx, 0
mov dword [ebp - 0x4f8], eax
mov dword [ebp - 0x4f4], ecx
mov edx, dword [ebp - 0x4f8]
or edx, dword [ebp - 0x4f4]
je 0x40404d
mov eax, dword [ebp - 0x464]
cmp dword [eax + 0x4b2c], 0xffffffff
jne 0x40404d
cmp dword [ebp - 4], 0
je 0x40404d
push 0
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x4424]
push edx
push 0x69267c
mov ecx, 0x70be58
call fcn.00445dc0
mov ecx, dword [ebp - 0x464]
mov dword [ecx + 0x4b2c], eax
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x46c0]
and eax, 0x200
mov ecx, dword [edx + 0x46c4]
and ecx, 0
mov dword [ebp - 0x500], eax
mov dword [ebp - 0x4fc], ecx
mov edx, dword [ebp - 0x500]
or edx, dword [ebp - 0x4fc]
je 0x4040c0
mov eax, dword [ebp - 0x464]
cmp dword [eax + 0x4b30], 0xffffffff
jne 0x4040c0
cmp dword [ebp - 4], 0
je 0x4040c0
push 0
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x4424]
push edx
push 0x69266c
mov ecx, 0x70be58
call fcn.00445dc0
mov ecx, dword [ebp - 0x464]
mov dword [ecx + 0x4b30], eax
mov dword [ebp - 0x450], 3
mov dword [ebp - 0x454], 0x10
lea edx, [ebp - 0x118]
mov dword [ebp - 0x458], edx
mov eax, dword [ebp - 0x450]
sub eax, 1
mov dword [ebp - 0x450], eax
js 0x404105
mov ecx, dword [ebp - 0x458]
add ecx, dword [ebp - 0x454]
mov dword [ebp - 0x458], ecx
jmp 0x4040e0
mov dword [ebp - 0xe8], 0
mov edx, dword [ebp - 0x464]
mov eax, dword [edx + 0x46c0]
and eax, 2
mov ecx, dword [edx + 0x46c4]
and ecx, 0
mov dword [ebp - 0x508], eax
mov dword [ebp - 0x504], ecx
mov edx, dword [ebp - 0x508]
or edx, dword [ebp - 0x504]
jne 0x40417a
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax + 0x46c0]
and ecx, 0x200
mov edx, dword [eax + 0x46c4]
and edx, 0
mov dword [ebp - 0x510], ecx
mov dword [ebp - 0x50c], edx
mov eax, dword [ebp - 0x510]
or eax, dword [ebp - 0x50c]
je 0x4041ff
mov dword [ebp - 0x1c8], 0
mov dword [ebp - 0x1c4], 0x3f000000
mov dword [ebp - 0x1c0], 0x3f000000
mov dword [ebp - 0x1bc], 0x3f800000
mov ecx, dword [ebp - 0xe8]
shl ecx, 4
lea edx, [ebp + ecx - 0x118]
mov eax, dword [ebp - 0x1c8]
mov dword [edx], eax
mov ecx, dword [ebp - 0x1c4]
mov dword [edx + 4], ecx
mov eax, dword [ebp - 0x1c0]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 0x1bc]
mov dword [edx + 0xc], ecx
mov edx, dword [ebp - 0xe8]
add edx, 1
mov dword [ebp - 0xe8], edx
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax + 0xd4]
or ecx, 1
mov edx, dword [ebp - 0x464]
mov dword [edx + 0xd4], ecx
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax + 0x46c0]
and ecx, 0x1000
mov edx, dword [eax + 0x46c4]
and edx, 0
mov dword [ebp - 0x518], ecx
mov dword [ebp - 0x514], edx
mov eax, dword [ebp - 0x518]
or eax, dword [ebp - 0x514]
je 0x4042bd
mov dword [ebp - 0x1d8], 0
mov dword [ebp - 0x1d4], 0x3f000000
mov dword [ebp - 0x1d0], 0
mov dword [ebp - 0x1cc], 0x3f800000
mov ecx, dword [ebp - 0xe8]
shl ecx, 4
lea edx, [ebp + ecx - 0x118]
mov eax, dword [ebp - 0x1d8]
mov dword [edx], eax
mov ecx, dword [ebp - 0x1d4]
mov dword [edx + 4], ecx
mov eax, dword [ebp - 0x1d0]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 0x1cc]
mov dword [edx + 0xc], ecx
mov edx, dword [ebp - 0xe8]
add edx, 1
mov dword [ebp - 0xe8], edx
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax + 0xd4]
or ecx, 1
mov edx, dword [ebp - 0x464]
mov dword [edx + 0xd4], ecx
cmp dword [ebp - 0xe8], 0
jle 0x40444d
mov dword [ebp - 0x1e8], 0
mov dword [ebp - 0x1e4], 0
mov dword [ebp - 0x1e0], 0
mov dword [ebp - 0x1dc], 0
mov eax, dword [ebp - 0x464]
add eax, 0x2e0
mov ecx, dword [ebp - 0x1e8]
mov dword [eax], ecx
mov edx, dword [ebp - 0x1e4]
mov dword [eax + 4], edx
mov ecx, dword [ebp - 0x1e0]
mov dword [eax + 8], ecx
mov edx, dword [ebp - 0x1dc]
mov dword [eax + 0xc], edx
mov dword [ebp - 0x124], 0
jmp 0x40433b
mov eax, dword [ebp - 0x124]
add eax, 1
mov dword [ebp - 0x124], eax
mov ecx, dword [ebp - 0x124]
cmp ecx, dword [ebp - 0xe8]
jge 0x4043e3
mov edx, dword [ebp - 0x124]
shl edx, 4
lea eax, [ebp + edx - 0x118]
mov dword [ebp - 0x45c], eax
mov ecx, dword [ebp - 0x464]
add ecx, 0x2e0
mov dword [ebp - 0x460], ecx
mov edx, dword [ebp - 0x460]
mov eax, dword [ebp - 0x45c]
fld dword [edx]
fadd dword [eax]
mov ecx, dword [ebp - 0x460]
fstp dword [ecx]
mov edx, dword [ebp - 0x460]
mov eax, dword [ebp - 0x45c]
fld dword [edx + 4]
fadd dword [eax + 4]
mov ecx, dword [ebp - 0x460]
fstp dword [ecx + 4]
mov edx, dword [ebp - 0x460]
mov eax, dword [ebp - 0x45c]
fld dword [edx + 8]
fadd dword [eax + 8]
mov ecx, dword [ebp - 0x460]
fstp dword [ecx + 8]
mov edx, dword [ebp - 0x460]
mov eax, dword [ebp - 0x45c]
fld dword [edx + 0xc]
fadd dword [eax + 0xc]
mov ecx, dword [ebp - 0x460]
fstp dword [ecx + 0xc]
jmp 0x40432c
fild dword [ebp - 0xe8]
mov edx, dword [ebp - 0x464]
fdivr dword [edx + 0x2e0]
mov eax, dword [ebp - 0x464]
fstp dword [eax + 0x2e0]
fild dword [ebp - 0xe8]
mov ecx, dword [ebp - 0x464]
fdivr dword [ecx + 0x2e4]
mov edx, dword [ebp - 0x464]
fstp dword [edx + 0x2e4]
fild dword [ebp - 0xe8]
mov eax, dword [ebp - 0x464]
fdivr dword [eax + 0x2e8]
mov ecx, dword [ebp - 0x464]
fstp dword [ecx + 0x2e8]
mov edx, dword [ebp - 0x464]
mov dword [edx + 0x2ec], 0x3f800000
mov eax, dword [ebp - 0x464]
cmp eax, dword [0x6f3840]
jne 0x4049e2
mov ecx, dword [ebp - 0x464]
cmp dword [ecx + 0x46dc], 0
jne 0x4049dd
cmp dword [0x6f3864], 0
je 0x4044b5
mov edx, dword [0x6f3840]
mov eax, dword [0x6e2710]
mov dword [edx + 0x4710], eax
fld dword [0x6f3854]
fcomp dword [0x7de000]
fnstsw ax
test ah, 5
jp 0x4044b0
push 0
mov cl, byte [0x6dc200]
push ecx
call fcn.0040b2f0
add esp, 8
jmp 0x4049dd
mov edx, dword [ebp - 0x464]
cmp dword [edx + 0x46e8], 7
jne 0x404563
movzx eax, byte [0x6f3851]
test eax, eax
jne 0x404563
mov ecx, dword [0x6f3840]
mov edx, dword [0x6e2710]
mov dword [ecx + 0x4710], edx
fld dword [0x6f3854]
fcomp dword [0x7de000]
fnstsw ax
test ah, 5
jp 0x404528
movzx eax, byte [0x70eb8c]
cmp eax, 1
jne 0x40450f
call fcn.004aaa10
jmp 0x404526
push 1
mov ecx, dword [0x6f3840]
mov dl, byte [ecx + 0x4b0c]
push edx
call fcn.0040b2f0
add esp, 8
jmp 0x40455e
movzx eax, byte [0x70eb8c]
cmp eax, 1
jne 0x40453b
call fcn.004aaa10
jmp 0x40455e
movzx ecx, byte [0x70eb8c]
cmp ecx, 2
jne 0x40455e
push 1
mov edx, dword [0x6f3840]
mov al, byte [edx + 0x4b0c]
push eax
call fcn.0040b2f0
add esp, 8
jmp 0x4049dd
movzx ecx, byte [0x6f3848]
test ecx, ecx
je 0x4049dd
cmp dword [0x6e2718], 0
jne 0x404836
cmp dword [0x6e2714], 1
jne 0x4046fc
mov edx, dword [0x6f3840]
mov eax, dword [0x6e2710]
mov dword [edx + 0x4710], eax
fld dword [0x7de000]
fsub dword [0x6f384c]
fstp dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x464]
mov edx, dword [ecx + 0x4b54]
mov dword [ebp - 0x128], edx
mov eax, dword [0x6f3840]
cmp dword [eax + 0x4b18], 0
je 0x40463c
mov ecx, dword [0x6f3840]
cmp dword [ecx + 0x4b18], 0
jle 0x40460d
fld dword [0x692664]
fmul dword [ebp - 0x128]
mov edx, dword [0x6f3840]
mov eax, dword [edx + 0x4b18]
add eax, 0x64
mov dword [ebp - 0x51c], eax
fidiv dword [ebp - 0x51c]
fstp dword [ebp - 0x128]
jmp 0x40463c
mov ecx, dword [0x6f3840]
mov edx, 0x64
sub edx, dword [ecx + 0x4b18]
mov dword [ebp - 0x520], edx
fild dword [ebp - 0x520]
fmul dword [ebp - 0x128]
fdiv dword [0x692664]
fstp dword [ebp - 0x128]
fld dword [ebp - 0x12c]
fcomp dword [ebp - 0x128]
fnstsw ax
test ah, 0x41
jne 0x4046f7
call fcn.004a85c0
test eax, eax
je 0x404674
mov eax, dword [0x6f3840]
cmp dword [eax + 0x46e8], 8
jne 0x40466f
jmp 0x4049fe
jmp 0x4046f7
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
movsx ecx, ax
and ecx, 0xfff0
neg ecx
sbb ecx, ecx
neg ecx
mov word [ebp - 0x130], cx
mov edx, dword [0x6e2710]
push edx
call fcn.00407a50
add esp, 4
mov dword [ebp - 0x134], eax
cmp dword [ebp - 0x134], 0
je 0x4046f7
mov eax, dword [ebp - 0x134]
cmp dword [eax + 0x46dc], 0
jne 0x4046f7
movsx ecx, word [ebp - 0x130]
push ecx
mov edx, dword [ebp - 0x134]
add edx, 0x4648
sub esp, 0xc
mov eax, esp
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov edx, dword [edx + 8]
mov dword [eax + 8], edx
mov eax, dword [ebp - 0x134]
push eax
call fcn.004ad850
add esp, 0x14
jmp 0x404831
cmp dword [0x6e2714], 0
jne 0x40481e
call fcn.004a8a70
test eax, eax
je 0x404809
mov ecx, dword [0x6f3840]
mov edx, dword [0x6e2710]
mov dword [ecx + 0x4710], edx
fld dword [0x7de000]
fsub dword [0x6f384c]
fstp dword [ebp - 0x13c]
mov eax, dword [ebp - 0x464]
mov ecx, dword [eax + 0x4b54]
mov dword [ebp - 0x138], ecx
fld dword [ebp - 0x13c]
fcomp dword [ebp - 0x138]
fnstsw ax
test ah, 0x41
jne 0x404807
call fcn.004a8c10
test eax, eax
je 0x404785
mov edx, dword [0x6f3840]
cmp dword [edx + 0x46e8], 8
jne 0x404780
jmp 0x4049fe
jmp 0x404807
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
movsx eax, ax
and eax, 0xfff0
neg eax
sbb eax, eax
neg eax
mov word [ebp - 0x140], ax
mov ecx, dword [0x6e2710]
push ecx
call fcn.00407a50
add esp, 4
mov dword [ebp - 0x144], eax
cmp dword [ebp - 0x144], 0
je 0x404807
mov edx, dword [ebp - 0x144]
cmp dword [edx + 0x46dc], 0
jne 0x404807
movsx eax, word [ebp - 0x140]
push eax
mov ecx, dword [ebp - 0x144]
add ecx, 0x4648
sub esp, 0xc
mov edx, esp
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
mov edx, dword [ebp - 0x144]
push edx
call fcn.004ad850
add esp, 0x14
jmp 0x40481c
mov byte [0x6f3848], 0
push 0
push 0xfffffffffffffffe
call fcn.0040a070
add esp, 8
jmp 0x404831
mov byte [0x6f3848], 0
push 0
push 0xfffffffffffffffe
call fcn.0040a070
add esp, 8
jmp 0x4049dd
cmp dword [0x6e2718], 1
jne 0x4049ca
mov dword [ebp - 0x148], 0
call fcn.004aa650
mov byte [ebp - 0x149], al
mov eax, dword [0x6f3840]
movzx ecx, byte [eax + 0x4b0c]
test ecx, ecx
je 0x404880
mov edx, dword [0x6f3840]
movzx eax, byte [edx + 0x4b0c]
movzx ecx, byte [ebp - 0x149]
cmp eax, ecx
jne 0x4048c7
movzx edx, byte [ebp - 0x149]
cmp edx, 0x40
jl 0x4048b1
movzx eax, byte [ebp - 0x149]
push eax
mov ecx, dword [0x6f3840]
mov edx, dword [ecx + 0x9c9c]
push edx
call fcn.0054c730
add esp, 8
mov dword [ebp - 0x148], eax
jmp 0x4048c7
movzx eax, byte [ebp - 0x149]
push eax
call fcn.0054c6e0
add esp, 4
mov dword [ebp - 0x148], eax
cmp dword [0x6e2714], 1
je 0x4048dd
cmp dword [0x6e2714], 0
jne 0x4049b5
cmp dword [ebp - 0x148], 0
je 0x4049b5
mov ecx, dword [ebp - 0x148]
movzx edx, byte [ecx + 0x302]
cmp edx, 1
jne 0x4049b5
movzx eax, byte [0x6f3851]
test eax, eax
je 0x4049b5
cmp dword [0x6e2714], 0
jne 0x404971
call fcn.004a8a70
test eax, eax
je 0x40495c
mov ecx, dword [0x6f3840]
mov edx, dword [0x6e2710]
mov dword [ecx + 0x4710], edx
mov ecx, dword [ebp - 0x148]
call fcn.0054f010
test eax, eax
jne 0x40495a
mov byte [0x6f3848], 0
push 0
mov al, byte [ebp - 0x149]
push eax
call fcn.0040b2f0
add esp, 8
jmp 0x40496f
mov byte [0x6f3848], 0
push 0
push 0xfffffffffffffffe
call fcn.0040a070
add esp, 8
jmp 0x4049b3
cmp dword [0x6e2714], 1
jne 0x4049b3
mov ecx, dword [0x6f3840]
mov edx, dword [0x6e2710]
mov dword [ecx + 0x4710], edx
mov ecx, dword [ebp - 0x148]
call fcn.0054f010
test eax, eax
jne 0x4049b3
mov byte [0x6f3848], 0
push 0
mov al, byte [ebp - 0x149]
push eax
call fcn.0040b2f0
add esp, 8
jmp 0x4049c8
mov byte [0x6f3848], 0
push 0
push 0xfffffffffffffffe
call fcn.0040a070
add esp, 8
jmp 0x4049dd
mov byte [0x6f3848], 0
push 0
push 0xfffffffffffffffe
call fcn.0040a070
add esp, 8
call fcn.004c7940
mov ecx, dword [ebp + 8]
push ecx
mov ecx, dword [ebp - 0x464]
call fcn.00520690
mov edx, dword [ebp - 0x464]
mov byte [edx + 0x4930], 0
pop esi
mov esp, ebp
pop ebp
ret 4