Function at 0x74a658
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe8c
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 4], ebx
mov word [ebp - 0xa], cx
mov dword [ebp - 8], edx
mov ebx, eax
mov esi, dword [ebp + 0xc]
xor eax, eax
push ebp
push 0x74c436
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebx + 0xce6], 0
je 0x74a698
mov byte [ebx + 0xce6], 0
jmp 0x74c420
mov eax, dword [ebx + 0x3f0]
cmp eax, dword [ebx + 0x298]
je 0x74a6ae
mov edx, dword [eax]
call dword [edx + 0xf4]
test byte [ebp - 0xa], 0x20
je 0x74a790
mov eax, dword [0x7a70a8]
mov byte [eax], 1
mov eax, dword [ebx + 0xafc]
mov edx, dword [eax + 0x1b0]
mov eax, dword [ebx + 0xc79]
call fcn.0071b804
mov eax, dword [ebx + 0x558]
mov eax, dword [eax + 0x280]
mov edx, dword [eax + 0xc]
add edx, dword [ebx + 0xca4]
sub edx, esi
call fcn.00562890
mov eax, dword [ebx + 0x558]
mov eax, dword [eax + 0x290]
mov edx, dword [eax + 0xc]
add edx, dword [ebx + 0xca8]
sub edx, dword [ebp + 8]
call fcn.00562890
mov edi, dword [ebx + 0x558]
mov eax, edi
call fcn.004934f0
sar eax, 1
jns 0x74a724
adc eax, 0
mov edx, dword [edi + 0x280]
add eax, dword [edx + 0xc]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
sub eax, esi
add dword [ebp - 0x40], eax
mov edi, dword [ebx + 0x558]
mov eax, edi
call fcn.00493530
sar eax, 1
jns 0x74a74c
adc eax, 0
mov edx, dword [edi + 0x290]
add eax, dword [edx + 0xc]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
sub eax, dword [ebp + 8]
add dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x40]
mov eax, ebx
call fcn.007570b0
mov eax, dword [ebx + 0xafc]
mov edx, dword [eax]
call dword [edx + 0xa8]
xor edx, edx
mov eax, ebx
call fcn.00754990
mov dl, 1
mov eax, ebx
call fcn.00754990
jmp 0x74a798
mov eax, dword [0x7a70a8]
mov byte [eax], 0
test byte [ebp - 0xa], 8
je 0x74a7aa
mov ecx, dword [ebp + 8]
mov edx, esi
mov eax, ebx
call fcn.007570b0
mov byte [ebp - 0x41], 0
mov eax, dword [ebx + 0xc79]
add eax, 0x37
call fcn.00408da4
mov eax, dword [0x7a6864]
movzx eax, byte [eax]
cmp eax, 0x11
ja case.0x74a7cd.4
jmp dword [eax*4 + 0x74a7d4]
mov eax, dword [0x7a67d8]
cmp byte [eax], 0
je 0x74a912
mov ecx, dword [ebp + 8]
mov edx, esi
mov eax, ebx
call fcn.007570b0
mov dword [ebp - 0x68], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x64], eax
lea edx, [ebp - 0x20]
lea eax, [ebp - 0x68]
call fcn.00621454
lea edx, [ebp - 0x20]
mov eax, ebx
call fcn.00781aa0
mov byte [ebp - 0x41], al
fld dword [ebp - 0x20]
mov eax, dword [0x7a6a58]
fcomp dword [eax]
wait
fnstsw ax
sahf
jne 0x74a888
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6a58]
fcomp dword [eax + 4]
wait
fnstsw ax
sahf
jne 0x74a888
mov eax, dword [ebx + 0xc79]
cmp byte [eax + 0x31], 0
jne case.0x74a7cd.4
fld dword [ebp - 0x20]
mov eax, dword [0x7a640c]
fmul qword [eax]
call fcn.00404d4c
mov edi, eax
fld dword [ebp - 0x1c]
fchs
mov eax, dword [0x7a640c]
fmul qword [eax]
call fcn.00404d4c
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x6c], eax
push 0
push 0
xor ecx, ecx
lea edx, [ebp - 0x70]
mov eax, ebx
call fcn.00756690
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
jle 0x74a8ec
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [ebp - 0x10]
call fcn.00447f1c
mov edx, dword [eax + 0x18f]
mov eax, dword [ebx + 0xc79]
add eax, 0x37
call fcn.00409184
mov eax, dword [0x7a6a58]
mov edx, dword [ebp - 0x20]
mov dword [eax], edx
mov edx, dword [ebp - 0x1c]
mov dword [eax + 4], edx
movzx eax, byte [ebp - 0x41]
mov byte [ebx + 0xc78], al
mov eax, ebx
call fcn.0074d574
jmp case.0x74a7cd.4
mov dword [ebp - 0x78], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x74], eax
lea edx, [ebp - 0x20]
lea eax, [ebp - 0x78]
call fcn.00621454
lea edx, [ebp - 0x20]
mov eax, ebx
call fcn.00781aa0
mov byte [ebp - 0x41], al
fld dword [ebp - 0x20]
mov eax, dword [0x7a6a58]
fcomp dword [eax]
wait
fnstsw ax
sahf
jne 0x74a964
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6a58]
fcomp dword [eax + 4]
wait
fnstsw ax
sahf
jne 0x74a964
mov eax, dword [ebx + 0xc79]
cmp byte [eax + 0x31], 0
jne case.0x74a7cd.4
fld dword [ebp - 0x20]
mov eax, dword [0x7a640c]
fmul qword [eax]
call fcn.00404d4c
mov edi, eax
fld dword [ebp - 0x1c]
fchs
mov eax, dword [0x7a640c]
fmul qword [eax]
call fcn.00404d4c
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x7c], eax
push 0
push 0
xor ecx, ecx
lea edx, [ebp - 0x80]
mov eax, ebx
call fcn.00756690
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
jle 0x74a9c8
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [ebp - 0x10]
call fcn.00447f1c
mov edx, dword [eax + 0x18f]
mov eax, dword [ebx + 0xc79]
add eax, 0x37
call fcn.00409184
mov eax, dword [0x7a6864]
cmp byte [eax], 1
jne 0x74aac7
cmp dword [ebp - 0x10], 0xffffffff
jle 0x74aa31
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [ebp - 0x10]
call fcn.00447f1c
mov edi, eax
cmp byte [edi], 2
je 0x74a9f7
cmp byte [edi], 8
jne 0x74aa31
mov eax, dword [edi + 0x2d]
cmp dword [eax + 8], 0
jle 0x74aa31
mov byte [edi + 0x1e], 1
mov eax, dword [edi + 0x2d]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x74aa31
inc eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x10], 0
mov eax, dword [edi + 0x2d]
mov edx, dword [ebp - 0x10]
call fcn.00447f1c
mov byte [eax + 0x1e], 1
inc dword [ebp - 0x10]
dec dword [ebp - 0x5c]
jne 0x74aa1a
mov byte [ebp - 0x44], 0
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x74aa83
inc eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x10], 0
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [ebp - 0x10]
call fcn.00447f1c
mov edi, eax
movzx eax, byte [edi + 0x1e]
cmp al, byte [edi + 0x15]
je 0x74aa77
mov byte [edi + 0x15], al
mov eax, edi
call fcn.00638a5c
mov byte [ebp - 0x44], 1
mov byte [edi + 0x1e], 0
inc dword [ebp - 0x10]
dec dword [ebp - 0x5c]
jne 0x74aa4f
cmp byte [ebp - 0x44], 0
je 0x74aab9
push 1
mov eax, dword [ebx + 0xafc]
mov eax, dword [eax + 0x1b0]
call fcn.004756e0
push eax
call sub.gdi32.dll_SetMapMode
mov eax, dword [ebx + 0xafc]
mov edx, dword [eax + 0x1b0]
mov eax, dword [ebx + 0xc79]
call fcn.0071b804
mov eax, dword [ebx + 0xafc]
mov edx, dword [eax]
call dword [edx + 0xa8]
movzx eax, byte [ebp - 0x41]
mov byte [ebx + 0xc78], al
mov eax, dword [0x7a6a58]
mov edx, dword [ebp - 0x20]
mov dword [eax], edx
mov edx, dword [ebp - 0x1c]
mov dword [eax + 4], edx
mov eax, ebx
call fcn.0074d8c0
jmp case.0x74a7cd.4
mov eax, dword [0x7a67d8]
cmp byte [eax], 0
je 0x74b452
mov eax, dword [0x7a6efc]
cmp byte [eax], 0
jne 0x74ab6c
mov eax, dword [0x7a7084]
cmp byte [eax], 0
jne 0x74ab6c
mov eax, dword [0x7a63d8]
cmp byte [eax], 0
jne 0x74ab6c
mov eax, dword [0x7a6cf8]
cmp byte [eax], 0
je 0x74ab2a
mov eax, ebx
call fcn.0074fcc0
mov dword [ebp - 0x88], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x84], eax
lea eax, [ebp - 0x160]
push eax
xor ecx, ecx
lea edx, [ebp - 0x88]
mov eax, ebx
call fcn.007553cc
mov eax, dword [0x7a6a58]
mov edx, dword [ebp - 0x160]
mov dword [eax], edx
mov edx, dword [ebp - 0x15c]
mov dword [eax + 4], edx
mov eax, ebx
call fcn.0074fcc0
mov eax, dword [0x7a63d8]
cmp byte [eax], 0
je 0x74ac59
mov dword [ebp - 0x90], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x8c], eax
lea edx, [ebp - 0x20]
lea eax, [ebp - 0x90]
call fcn.00621454
mov eax, dword [0x7a6434]
fild dword [eax]
fcomp dword [ebp - 0x20]
wait
fnstsw ax
sahf
jae 0x74abb2
mov eax, dword [0x7a6434]
fild dword [eax]
fstp dword [ebp - 0x20]
wait
fld dword [ebp - 0x1c]
fchs
mov eax, dword [0x7a62f8]
fild dword [eax]
fcompp
wait
fnstsw ax
sahf
jae 0x74abdf
mov eax, dword [0x7a62f8]
mov eax, dword [eax]
neg eax
mov dword [ebp - 0x164], eax
fild dword [ebp - 0x164]
fstp dword [ebp - 0x1c]
wait
lea edx, [ebp - 0x20]
mov eax, ebx
call fcn.00781aa0
mov byte [ebp - 0x41], al
movzx eax, byte [ebp - 0x41]
mov byte [ebx + 0xc78], al
fld dword [ebp - 0x20]
call fcn.00404d4c
mov edx, dword [0x7a671c]
mov dword [edx], eax
fld dword [ebp - 0x1c]
call fcn.00404d4c
mov edx, dword [0x7a671c]
mov dword [edx + 4], eax
mov eax, dword [ebx + 0xc79]
mov byte [eax + 0x31], 0
movzx edx, byte [ebp - 0x41]
mov eax, ebx
call fcn.0074f7b0
lea edx, [ebp - 0x160]
mov eax, dword [0x7a671c]
call fcn.00620978
lea ecx, [ebp - 0x160]
mov eax, dword [ebx + 0xafc]
mov edx, dword [eax + 0x1b0]
mov eax, dword [ebx + 0xc79]
call fcn.0071b7d0
mov eax, dword [0x7a6efc]
cmp byte [eax], 0
je 0x74aed4
mov dword [ebp - 0x98], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x94], eax
lea edx, [ebp - 0x20]
lea eax, [ebp - 0x98]
call fcn.00621454
fld dword [ebp - 0x20]
mov eax, dword [0x7a6260]
fsub dword [eax]
fstp dword [ebp - 0x20]
wait
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6260]
fsub dword [eax + 4]
fstp dword [ebp - 0x1c]
wait
lea ecx, [ebp - 0x160]
lea edx, [ebp - 0x20]
mov eax, ebx
call fcn.0074f600
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x1c], eax
fld dword [ebp - 0x20]
mov eax, dword [0x7a6ab4]
fadd dword [eax]
fstp dword [ebp - 0x20]
wait
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6ab4]
fadd dword [eax + 4]
fstp dword [ebp - 0x1c]
wait
lea edx, [ebp - 0x20]
mov cl, 1
mov eax, ebx
call fcn.00781cec
mov byte [ebp - 0x41], al
fld dword [ebp - 0x20]
mov eax, dword [0x7a6ab4]
fsub dword [eax]
fstp dword [ebp - 0x20]
wait
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6ab4]
fsub dword [eax + 4]
fstp dword [ebp - 0x1c]
wait
cmp byte [ebp - 0x41], 0
jne 0x74adc1
test byte [ebp - 0xa], 4
jne 0x74adc1
fld dword [ebp - 0x20]
mov eax, dword [0x7a7064]
fdiv qword [eax]
call fcn.00404d4c
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x15c], edx
fild qword [ebp - 0x160]
mov eax, dword [0x7a7064]
fmul qword [eax]
fstp dword [ebp - 0x20]
wait
fld dword [ebp - 0x1c]
mov eax, dword [0x7a7064]
fdiv qword [eax]
call fcn.00404d4c
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x15c], edx
fild qword [ebp - 0x160]
mov eax, dword [0x7a7064]
fmul qword [eax]
fstp dword [ebp - 0x1c]
wait
fld dword [ebp - 0x20]
mov eax, dword [0x7a6ab4]
fadd dword [eax]
fstp dword [ebp - 0x20]
wait
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6ab4]
fadd dword [eax + 4]
fstp dword [ebp - 0x1c]
wait
lea edx, [ebp - 0x20]
mov cl, 1
mov eax, ebx
call fcn.00781cec
mov byte [ebp - 0x41], al
fld dword [ebp - 0x20]
mov eax, dword [0x7a6ab4]
fsub dword [eax]
fstp dword [ebp - 0x20]
wait
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6ab4]
fsub dword [eax + 4]
fstp dword [ebp - 0x1c]
wait
fld dword [ebp - 0x20]
mov eax, dword [0x7a6a58]
fcomp dword [eax]
wait
fnstsw ax
sahf
jne 0x74adfe
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6a58]
fcomp dword [eax + 4]
wait
fnstsw ax
sahf
jne 0x74adfe
movzx eax, byte [ebp - 0x41]
cmp al, byte [ebx + 0xc78]
jne 0x74adfe
mov eax, dword [ebx + 0xc79]
cmp byte [eax + 0x31], 0
jne 0x74aed4
cmp byte [ebx + 0xc2d], 0
je 0x74aeab
mov byte [ebx + 0xc2d], 0
mov eax, dword [ebx + 0xafc]
mov edx, dword [eax + 0x1b0]
mov eax, dword [ebx + 0xc79]
call fcn.0071b804
mov eax, dword [ebx + 0xce2]
mov edx, dword [eax]
call dword [edx + 8]
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x74ae87
inc eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x10], 0
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [ebp - 0x10]
call fcn.00447f1c
cmp byte [eax + 0x15], 0
je 0x74ae7f
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [ebp - 0x10]
call fcn.00447f1c
mov edx, eax
mov eax, dword [ebx + 0xce2]
call fcn.00447d40
inc dword [ebp - 0x10]
dec dword [ebp - 0x5c]
jne 0x74ae4e
xor edx, edx
mov eax, ebx
call fcn.00786768
call fcn.0063bbbc
xor edx, edx
mov eax, ebx
call fcn.0074d004
call fcn.00620848
mov edx, dword [0x7a67bc]
mov dword [edx], eax
mov eax, dword [0x7a6a58]
mov edx, dword [ebp - 0x20]
mov dword [eax], edx
mov edx, dword [ebp - 0x1c]
mov dword [eax + 4], edx
movzx eax, byte [ebp - 0x41]
mov byte [ebx + 0xc78], al
mov cl, 1
mov edx, dword [ebx + 0xce2]
mov eax, ebx
call fcn.0074ec6c
mov eax, dword [0x7a7084]
cmp byte [eax], 0
je case.0x74a7cd.4
mov edx, dword [0x7a6a30]
mov edx, dword [edx]
mov eax, dword [0x7a6990]
mov eax, dword [eax]
call fcn.00447f1c
mov edi, eax
mov dword [ebp - 0xa0], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x9c], eax
lea edx, [ebp - 0x20]
lea eax, [ebp - 0xa0]
call fcn.00621454
cmp byte [edi], 6
je 0x74af23
cmp byte [edi], 4
jne 0x74b247
mov byte [ebp - 0x42], 0
cmp byte [ebx + 0xca2], 0
je 0x74af69
mov edx, dword [0x7a6260]
lea eax, [ebp - 0x20]
call fcn.00620d20
mov eax, dword [0x7a640c]
fmul qword [eax]
fcomp dword [0x74c448]
wait
fnstsw ax
sahf
jae 0x74af69
mov eax, dword [0x7a6260]
mov edx, dword [eax]
mov dword [ebp - 0x20], edx
mov edx, dword [eax + 4]
mov dword [ebp - 0x1c], edx
mov byte [ebp - 0x42], 1
mov byte [ebp - 0x41], 1
fld dword [ebp - 0x20]
mov eax, dword [0x7a6ab4]
fadd dword [eax]
mov eax, dword [0x7a6260]
fsub dword [eax]
fstp dword [ebp - 0x20]
wait
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6ab4]
fadd dword [eax + 4]
mov eax, dword [0x7a6260]
fsub dword [eax + 4]
fstp dword [ebp - 0x1c]
wait
cmp byte [ebp - 0x42], 0
jne 0x74b0ba
lea edx, [ebp - 0x20]
mov cl, 1
mov eax, ebx
call fcn.00781cec
mov byte [ebp - 0x41], al
cmp byte [ebp - 0x41], 0
jne 0x74b0ba
mov byte [ebp - 0x45], 0
test byte [ebp - 0xa], 2
je 0x74afd6
test byte [ebp - 0xa], 4
setne cl
lea edx, [ebp - 0x20]
mov eax, ebx
call fcn.007886b4
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
jne 0x74b0ba
test byte [ebp - 0xa], 4
jne 0x74b0ba
cmp byte [ebx + 0xca2], 0
jne 0x74b08b
fld dword [ebp - 0x20]
mov eax, dword [0x7a6ab4]
fsub dword [eax]
fstp dword [ebp - 0x20]
wait
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6ab4]
fsub dword [eax + 4]
fstp dword [ebp - 0x1c]
wait
fld dword [ebp - 0x20]
mov eax, dword [0x7a7064]
fdiv qword [eax]
call fcn.00404d4c
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x15c], edx
fild qword [ebp - 0x160]
mov eax, dword [0x7a7064]
fmul qword [eax]
fstp dword [ebp - 0x20]
wait
fld dword [ebp - 0x1c]
mov eax, dword [0x7a7064]
fdiv qword [eax]
call fcn.00404d4c
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x15c], edx
fild qword [ebp - 0x160]
mov eax, dword [0x7a7064]
fmul qword [eax]
fstp dword [ebp - 0x1c]
wait
fld dword [ebp - 0x20]
mov eax, dword [0x7a6ab4]
fadd dword [eax]
fstp dword [ebp - 0x20]
wait
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6ab4]
fadd dword [eax + 4]
fstp dword [ebp - 0x1c]
wait
jmp 0x74b0ab
lea edx, [ebp - 0x160]
lea eax, [ebp - 0x20]
call fcn.0063881c
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x1c], eax
lea edx, [ebp - 0x20]
mov cl, 1
mov eax, ebx
call fcn.00781cec
mov byte [ebp - 0x41], al
fld dword [ebp - 0x20]
mov eax, dword [0x7a6a58]
fcomp dword [eax]
wait
fnstsw ax
sahf
jne 0x74b0f7
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6a58]
fcomp dword [eax + 4]
wait
fnstsw ax
sahf
jne 0x74b0f7
movzx eax, byte [ebp - 0x41]
cmp al, byte [ebx + 0xc78]
jne 0x74b0f7
mov eax, dword [ebx + 0xc79]
cmp byte [eax + 0x31], 0
jne 0x74b247
mov eax, dword [0x7a69c4]
cmp byte [eax], 0
je 0x74b1a4
mov eax, ebx
call fcn.00748cb4
mov eax, dword [0x7a69c4]
mov byte [eax], 0
mov eax, dword [0x7a62d4]
cmp dword [eax], 0x7a120
jl 0x74b19b
mov eax, dword [0x7a6cdc]
cmp byte [eax], 0
jne 0x74b19b
mov eax, dword [0x7a62d4]
mov eax, dword [eax]
sub eax, 0x7a120
inc eax
mov edx, dword [0x7a62d4]
mov dword [edx], eax
mov eax, 8
call fcn.00404644
mov ecx, eax
mov edx, dword [0x7a62d4]
mov edx, dword [edx]
mov eax, dword [edi + 0x18]
call fcn.00447fcc
mov edx, dword [0x7a62d4]
mov edx, dword [edx]
mov eax, dword [edi + 0x18]
call fcn.00447f1c
mov edx, dword [0x7a6ab4]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov byte [ebx + 0xca2], 1
mov edx, dword [0x7a62d4]
mov edx, dword [edx]
mov eax, dword [edi + 0x18]
call fcn.00447f1c
mov edx, dword [0x7a6c24]
mov dword [edx], eax
xor edx, edx
mov eax, ebx
call fcn.0074d004
fld dword [ebp - 0x20]
mov eax, dword [0x7a640c]
fmul qword [eax]
call fcn.00404d4c
mov dword [ebp - 0xa4], eax
fld dword [ebp - 0x1c]
fchs
mov eax, dword [0x7a640c]
fmul qword [eax]
call fcn.00404d4c
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0xac], eax
push 0
push edi
xor ecx, ecx
lea edx, [ebp - 0xb0]
mov eax, ebx
call fcn.00756690
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
jle 0x74b226
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [ebp - 0x10]
call fcn.00447f1c
mov edx, dword [eax + 0x18f]
mov eax, dword [ebx + 0xc79]
add eax, 0x37
call fcn.00409184
mov eax, dword [0x7a6a58]
mov edx, dword [ebp - 0x20]
mov dword [eax], edx
mov edx, dword [ebp - 0x1c]
mov dword [eax + 4], edx
movzx eax, byte [ebp - 0x41]
mov byte [ebx + 0xc78], al
mov eax, ebx
call fcn.0074f7d0
cmp byte [edi], 5
jne case.0x74a7cd.4
mov eax, dword [0x7a69c4]
cmp byte [eax], 0
je 0x74b2af
mov eax, ebx
call fcn.00748cb4
mov byte [ebx + 0xcdd], 1
mov eax, dword [0x7a69c4]
mov byte [eax], 0
mov eax, dword [ebx + 0xafc]
mov edx, dword [eax + 0x1b0]
mov eax, dword [ebx + 0xc79]
xor ecx, ecx
call fcn.0071b814
xor edx, edx
mov eax, ebx
call fcn.0074d004
mov eax, ebx
call fcn.0074f7d0
fld dword [edi + 9]
fsub dword [edi + 0xd]
fdiv dword [0x74c44c]
fsubr dword [edi + 9]
fstp qword [ebx + 0xcf0]
wait
lea ecx, [ebp - 0x20]
mov edx, edi
mov eax, ebx
call fcn.0077caa8
mov dword [ebp - 0x18], eax
fld dword [edi + 9]
fsub dword [edi + 0xd]
fdiv dword [0x74c44c]
fsubr dword [edi + 9]
fstp qword [ebp - 0x58]
wait
test byte [ebp - 0xa], 2
je 0x74b346
lea eax, [edi + 1]
lea edx, [ebp - 0x20]
call fcn.00620d20
fstp qword [ebp - 0x50]
wait
test byte [ebp - 0xa], 4
jne 0x74b324
fld qword [ebp - 0x50]
fsub qword [ebx + 0xcf0]
mov eax, dword [0x7a7064]
fdiv qword [eax]
call fcn.00404d4c
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x15c], edx
fild qword [ebp - 0x160]
mov eax, dword [0x7a7064]
fmul qword [eax]
fadd qword [ebx + 0xcf0]
fstp qword [ebp - 0x50]
wait
mov eax, dword [0x7a62d4]
cmp dword [eax], 0
jne 0x74b334
mov eax, dword [edi + 0x1f]
mov dword [ebp - 0x18], eax
mov eax, dword [0x7a62d4]
cmp dword [eax], 1
jne 0x74b38d
mov eax, dword [edi + 0x11]
mov dword [ebp - 0x18], eax
jmp 0x74b38d
fld dword [ebp - 0x20]
mov eax, dword [0x7a6ab4]
fadd dword [eax]
mov eax, dword [0x7a6260]
fsub dword [eax]
fstp dword [ebp - 0x20]
wait
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6ab4]
fadd dword [eax + 4]
mov eax, dword [0x7a6260]
fsub dword [eax + 4]
fstp dword [ebp - 0x1c]
wait
lea ecx, [ebp - 0x20]
mov edx, edi
mov eax, ebx
call fcn.0077caa8
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x4c], eax
mov eax, dword [0x7a62d4]
cmp dword [eax], 0
jne 0x74b39f
mov eax, dword [edi + 0x1f]
cmp eax, dword [ebp - 0x18]
jne 0x74b3cd
mov eax, dword [0x7a62d4]
cmp dword [eax], 1
jne 0x74b3b1
mov eax, dword [edi + 0x11]
cmp eax, dword [ebp - 0x18]
jne 0x74b3cd
fld qword [ebp - 0x50]
fcomp qword [ebp - 0x58]
wait
fnstsw ax
sahf
jne 0x74b3cd
mov eax, dword [ebx + 0xc79]
cmp byte [eax + 0x31], 0
jne case.0x74a7cd.4
mov eax, dword [0x7a62d4]
cmp dword [eax], 0
jne 0x74b3df
mov eax, dword [ebp - 0x18]
mov dword [edi + 0x1f], eax
jmp 0x74b3e5
mov eax, dword [ebp - 0x18]
mov dword [edi + 0x11], eax
mov eax, dword [0x7a6eb0]
fild dword [eax]
fdiv dword [0x74c44c]
fadd qword [ebp - 0x50]
fstp dword [edi + 9]
wait
mov eax, dword [0x7a6eb0]
fild dword [eax]
fdiv dword [0x74c44c]
fsubr qword [ebp - 0x50]
fstp dword [edi + 0xd]
wait
fild dword [ebp - 0x18]
fdiv dword [0x74c450]
add esp, 0xfffffff8
fstp qword [esp]
wait
push dword [ebp - 0x4c]
push dword [ebp - 0x50]
lea edx, [ebp - 0x160]
mov eax, edi
call fcn.00643188
mov eax, dword [0x7a6a58]
mov edx, dword [ebp - 0x160]
mov dword [eax], edx
mov edx, dword [ebp - 0x15c]
mov dword [eax + 4], edx
mov eax, ebx
call fcn.0074f7d0
jmp case.0x74a7cd.4
mov eax, dword [ebx + 0xafc]
movzx edi, word [eax + 0x80]
xor edx, edx
call fcn.00493e80
mov ecx, dword [ebp + 8]
mov edx, esi
mov eax, ebx
call fcn.00787f9c
test al, al
je 0x74b48a
mov dx, 0xffeb
mov eax, dword [ebx + 0xafc]
call fcn.00493e80
jmp 0x74b5a7
mov dword [ebp - 0xb8], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0xb4], eax
push 0
push 0
xor ecx, ecx
lea edx, [ebp - 0xb8]
mov eax, ebx
call fcn.00756690
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc0], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0xbc], eax
lea ecx, [ebp - 0xc0]
mov edx, dword [ebp - 0x10]
mov eax, ebx
call fcn.0074d150
cmp dword [ebp - 0x10], 0xffffffff
jle 0x74b5a7
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, dword [ebp - 0x10]
call fcn.00447f1c
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x60]
cmp byte [eax], 6
je 0x74b506
mov eax, dword [ebp - 0x60]
cmp byte [eax], 4
je 0x74b506
mov eax, dword [ebp - 0x60]
cmp byte [eax], 5
jne 0x74b5a7
mov eax, dword [ebp - 0x60]
cmp byte [eax + 0x15], 0
je 0x74b5a7
mov eax, dword [0x7a67ac]
cmp byte [eax], 0
je 0x74b5a7
mov dword [ebp - 0xc8], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc4], eax
lea eax, [ebp - 0x20]
push eax
xor ecx, ecx
lea edx, [ebp - 0xc8]
mov eax, ebx
call fcn.007553cc
mov eax, dword [0x7a640c]
push dword [eax + 4]
push dword [eax]
lea edx, [ebp - 0x160]
lea eax, [ebp - 0x20]
call fcn.0062094c
lea edx, [ebp - 0x160]
mov eax, dword [ebp - 0x60]
call fcn.00647950
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jl 0x74b5a7
push 0x12
call sub.user32.dll_GetAsyncKeyState
test ax, ax
je 0x74b598
cmp dword [ebp - 0x14], 0x7a120
jl 0x74b598
mov dx, 0xffea
mov eax, dword [ebx + 0xafc]
call fcn.00493e80
jmp 0x74b5a7
mov dx, 3
mov eax, dword [ebx + 0xafc]
call fcn.00493e80
mov eax, dword [ebx + 0xafc]
cmp di, word [eax + 0x80]
je case.0x74a7cd.4
mov edx, ebx
mov eax, ebx
call fcn.007606cc
jmp case.0x74a7cd.4
mov dword [ebp - 0xd0], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0xcc], eax
lea edx, [ebp - 0x20]
lea eax, [ebp - 0xd0]
call fcn.00621454
lea edx, [ebp - 0x20]
mov eax, ebx
call fcn.00781aa0
mov byte [ebp - 0x41], al
fld dword [ebp - 0x20]
mov eax, dword [0x7a6a58]
fcomp dword [eax]
wait
fnstsw ax
sahf
jne 0x74b623
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6a58]
fcomp dword [eax + 4]
wait
fnstsw ax
sahf
jne 0x74b623
mov eax, dword [ebx + 0xc79]
cmp byte [eax + 0x31], 0
jne case.0x74a7cd.4
mov eax, dword [0x7a6a58]
mov edx, dword [ebp - 0x20]
mov dword [eax], edx
mov edx, dword [ebp - 0x1c]
mov dword [eax + 4], edx
movzx eax, byte [ebp - 0x41]
mov byte [ebx + 0xc78], al
mov eax, ebx
call fcn.0074dad0
jmp case.0x74a7cd.4
mov dword [ebp - 0xd8], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0xd4], eax
lea edx, [ebp - 0x20]
lea eax, [ebp - 0xd8]
call fcn.00621454
lea edx, [ebp - 0x20]
mov eax, ebx
call fcn.00781aa0
mov byte [ebp - 0x41], al
fld dword [ebp - 0x20]
mov eax, dword [0x7a6a58]
fcomp dword [eax]
wait
fnstsw ax
sahf
jne 0x74b6a4
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6a58]
fcomp dword [eax + 4]
wait
fnstsw ax
sahf
jne 0x74b6a4
mov eax, dword [ebx + 0xc79]
cmp byte [eax + 0x31], 0
jne case.0x74a7cd.4
mov eax, dword [0x7a6a58]
mov edx, dword [ebp - 0x20]
mov dword [eax], edx
mov edx, dword [ebp - 0x1c]
mov dword [eax + 4], edx
movzx eax, byte [ebp - 0x41]
mov byte [ebx + 0xc78], al
mov eax, ebx
call fcn.0074dbc4
jmp case.0x74a7cd.4
mov eax, dword [0x7a67d8]
cmp byte [eax], 0
je 0x74b776
mov dword [ebp - 0xe0], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0xdc], eax
lea eax, [ebp - 0x160]
push eax
test byte [ebp - 0xa], 4
setne cl
xor cl, 1
lea edx, [ebp - 0xe0]
mov eax, ebx
call fcn.007553cc
mov eax, dword [0x7a67b8]
mov edx, dword [ebp - 0x160]
mov dword [eax], edx
mov edx, dword [ebp - 0x15c]
mov dword [eax + 4], edx
mov eax, dword [0x7a67b8]
fld dword [eax]
mov eax, dword [0x7a6a58]
fcomp dword [eax]
wait
fnstsw ax
sahf
jne 0x74b755
mov eax, dword [0x7a67b8]
fld dword [eax + 4]
mov eax, dword [0x7a6a58]
fcomp dword [eax + 4]
wait
fnstsw ax
sahf
jne 0x74b755
mov eax, dword [ebx + 0xc79]
cmp byte [eax + 0x31], 0
jne case.0x74a7cd.4
mov eax, dword [0x7a6a58]
mov edx, dword [0x7a67b8]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov eax, ebx
call fcn.0074e908
jmp case.0x74a7cd.4
mov dword [ebp - 0xe8], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0xe4], eax
lea edx, [ebp - 0x20]
lea eax, [ebp - 0xe8]
call fcn.00621454
lea edx, [ebp - 0x20]
mov eax, ebx
call fcn.00781aa0
mov byte [ebp - 0x41], al
fld dword [ebp - 0x20]
mov eax, dword [0x7a6a58]
fcomp dword [eax]
wait
fnstsw ax
sahf
jne 0x74b7d1
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6a58]
fcomp dword [eax + 4]
wait
fnstsw ax
sahf
jne 0x74b7d1
mov eax, dword [ebx + 0xc79]
cmp byte [eax + 0x31], 0
jne case.0x74a7cd.4
mov eax, dword [0x7a6a58]
mov edx, dword [ebp - 0x20]
mov dword [eax], edx
mov edx, dword [ebp - 0x1c]
mov dword [eax + 4], edx
movzx eax, byte [ebp - 0x41]
mov byte [ebx + 0xc78], al
mov eax, dword [ebx + 0xc79]
mov byte [eax + 0x31], 0
movzx edx, byte [ebx + 0xc78]
mov eax, ebx
call fcn.0074f7b0
mov ecx, dword [0x7a6a58]
mov eax, dword [ebx + 0xafc]
mov edx, dword [eax + 0x1b0]
mov eax, dword [ebx + 0xc79]
call fcn.0071b7d0
jmp case.0x74a7cd.4
mov eax, dword [0x7a67d8]
cmp byte [eax], 0
je 0x74b8b4
mov dword [ebp - 0xf0], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0xec], eax
lea edx, [ebp - 0x20]
lea eax, [ebp - 0xf0]
call fcn.00621454
lea edx, [ebp - 0x20]
mov eax, ebx
call fcn.00781aa0
mov byte [ebp - 0x41], al
fld dword [ebp - 0x20]
mov eax, dword [0x7a6a58]
fcomp dword [eax]
wait
fnstsw ax
sahf
jne 0x74b88e
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6a58]
fcomp dword [eax + 4]
wait
fnstsw ax
sahf
jne 0x74b88e
mov eax, dword [ebx + 0xc79]
cmp byte [eax + 0x31], 0
jne case.0x74a7cd.4
mov eax, dword [0x7a6a58]
mov edx, dword [ebp - 0x20]
mov dword [eax], edx
mov edx, dword [ebp - 0x1c]
mov dword [eax + 4], edx
movzx eax, byte [ebp - 0x41]
mov byte [ebx + 0xc78], al
mov eax, ebx
call fcn.0074eaec
jmp case.0x74a7cd.4
mov dword [ebp - 0xf8], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0xf4], eax
lea edx, [ebp - 0x20]
lea eax, [ebp - 0xf8]
call fcn.00621454
lea edx, [ebp - 0x20]
mov eax, ebx
call fcn.00781aa0
mov byte [ebp - 0x41], al
fld dword [ebp - 0x20]
mov eax, dword [0x7a6a58]
fcomp dword [eax]
wait
fnstsw ax
sahf
jne 0x74b90f
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6a58]
fcomp dword [eax + 4]
wait
fnstsw ax
sahf
jne 0x74b90f
mov eax, dword [ebx + 0xc79]
cmp byte [eax + 0x31], 0
jne case.0x74a7cd.4
mov eax, dword [0x7a6a58]
mov edx, dword [ebp - 0x20]
mov dword [eax], edx
mov edx, dword [ebp - 0x1c]
mov dword [eax + 4], edx
movzx eax, byte [ebp - 0x41]
mov byte [ebx + 0xc78], al
mov eax, ebx
call fcn.0074d8c0
jmp case.0x74a7cd.4
mov ecx, dword [ebp + 8]
mov edx, esi
mov eax, ebx
call fcn.007570b0
mov dword [ebp - 0x100], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0x160]
push eax
test byte [ebp - 0xa], 4
setne cl
xor cl, 1
lea edx, [ebp - 0x100]
mov eax, ebx
call fcn.007553cc
mov eax, dword [0x7a67b8]
mov edx, dword [ebp - 0x160]
mov dword [eax], edx
mov edx, dword [ebp - 0x15c]
mov dword [eax + 4], edx
lea ecx, [ebp - 0x160]
mov edx, dword [0x7a67b8]
mov eax, ebx
call fcn.0074f600
mov eax, dword [0x7a67b8]
mov edx, dword [ebp - 0x160]
mov dword [eax], edx
mov edx, dword [ebp - 0x15c]
mov dword [eax + 4], edx
mov edx, dword [0x7a6a58]
mov eax, dword [0x7a67b8]
call fcn.00620f58
test al, al
je 0x74b9d1
mov eax, dword [ebx + 0xc79]
cmp byte [eax + 0x31], 0
jne case.0x74a7cd.4
mov eax, dword [0x7a6a58]
mov edx, dword [0x7a67b8]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov eax, ebx
call fcn.0074dc8c
jmp case.0x74a7cd.4
mov eax, dword [0x7a67d8]
cmp byte [eax], 0
je case.0x74a7cd.4
mov eax, dword [0x7a6cf8]
cmp byte [eax], 0
je 0x74ba11
mov eax, ebx
call fcn.0074fcc0
mov dword [ebp - 0x108], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x104], eax
lea eax, [ebp - 0x160]
push eax
xor ecx, ecx
lea edx, [ebp - 0x108]
mov eax, ebx
call fcn.007553cc
mov eax, dword [0x7a6a58]
mov edx, dword [ebp - 0x160]
mov dword [eax], edx
mov edx, dword [ebp - 0x15c]
mov dword [eax + 4], edx
mov eax, dword [0x7a6434]
fild dword [eax]
mov eax, dword [0x7a6a58]
fcomp dword [eax]
wait
fnstsw ax
sahf
jae 0x74ba6f
mov eax, dword [0x7a6434]
fild dword [eax]
mov eax, dword [0x7a6a58]
fstp dword [eax]
wait
mov eax, dword [0x7a62f8]
mov eax, dword [eax]
neg eax
mov dword [ebp - 0x164], eax
fild dword [ebp - 0x164]
mov eax, dword [0x7a6a58]
fcomp dword [eax + 4]
wait
fnstsw ax
sahf
jbe 0x74bab0
mov eax, dword [0x7a62f8]
mov eax, dword [eax]
neg eax
mov dword [ebp - 0x164], eax
fild dword [ebp - 0x164]
mov eax, dword [0x7a6a58]
fstp dword [eax + 4]
wait
mov eax, dword [0x7a6a58]
fld dword [eax]
fcomp dword [0x74c454]
wait
fnstsw ax
sahf
jae 0x74bacc
mov eax, dword [0x7a6a58]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x7a6a58]
fld dword [eax + 4]
fcomp dword [0x74c454]
wait
fnstsw ax
sahf
jbe 0x74baea
mov eax, dword [0x7a6a58]
xor edx, edx
mov dword [eax + 4], edx
mov eax, ebx
call fcn.0074fcc0
jmp case.0x74a7cd.4
mov eax, dword [0x7a692c]
cmp byte [eax], 0
je 0x74bb07
mov eax, ebx
call fcn.0074fd84
mov byte [ebp - 0x43], 0
mov dword [ebp - 0x110], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10c], eax
push 0
push 0
mov cl, 1
lea edx, [ebp - 0x110]
mov eax, ebx
call fcn.00756690
mov edi, eax
test edi, edi
jl 0x74bc87
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, edi
call fcn.00447f1c
cmp byte [eax], 2
je 0x74bb61
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, edi
call fcn.00447f1c
cmp byte [eax], 8
jne 0x74bc87
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, edi
call fcn.00447f1c
movzx eax, byte [eax + 0x16]
sub al, 1
je 0x74bb85
sub al, 2
je 0x74bb85
add al, 0xfe
sub al, 2
jae 0x74bc87
mov byte [ebp - 0x43], 1
cmp byte [ebx + 0xc2c], 0
je 0x74bc1a
mov eax, dword [ebx + 0xce7]
mov byte [eax + 0x15], 0
mov eax, dword [ebx + 0xceb]
mov byte [eax + 0x15], 0
mov eax, dword [ebx + 0xce7]
call fcn.00638a5c
mov eax, dword [ebx + 0xceb]
call fcn.00638a5c
lea eax, [ebp - 0x158]
push eax
mov ecx, dword [ebx + 0xceb]
mov edx, dword [ebx + 0xce7]
mov eax, ebx
call fcn.00750064
push 0
lea eax, [ebp - 0x158]
push eax
mov eax, dword [0x7a6e20]
mov eax, dword [eax]
call fcn.0049ca5c
push eax
call sub.user32.dll_InvalidateRect
mov eax, dword [ebx + 0xafc]
mov edx, dword [eax]
call dword [edx + 0xa8]
xor eax, eax
mov dword [ebx + 0xce7], eax
xor eax, eax
mov dword [ebx + 0xceb], eax
mov byte [ebx + 0xc2c], 0
mov eax, dword [0x7a6e64]
cmp edi, dword [eax]
je 0x74bcc8
mov eax, dword [0x7a6e64]
cmp dword [eax], 0xffffffff
jle 0x74bc5d
mov edx, dword [0x7a6e64]
mov edx, dword [edx]
mov eax, dword [0x7a6990]
mov eax, dword [eax]
call fcn.00447f1c
mov byte [eax + 0x15], 0
mov edx, dword [0x7a6990]
mov edx, dword [edx]
mov eax, dword [0x7a6e64]
mov eax, dword [eax]
call fcn.00638a44
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, edi
call fcn.00447f1c
mov byte [eax + 0x15], 1
mov edx, dword [0x7a6990]
mov edx, dword [edx]
mov eax, edi
call fcn.00638a44
mov eax, dword [0x7a6e64]
mov dword [eax], edi
jmp 0x74bcc8
mov eax, dword [0x7a6e64]
cmp dword [eax], 0xffffffff
jle 0x74bcbd
mov edx, dword [0x7a6e64]
mov edx, dword [edx]
mov eax, dword [0x7a6990]
mov eax, dword [eax]
call fcn.00447f1c
mov byte [eax + 0x15], 0
mov edx, dword [0x7a6990]
mov edx, dword [edx]
mov eax, dword [0x7a6e64]
mov eax, dword [eax]
call fcn.00638a44
mov eax, dword [0x7a6e64]
mov dword [eax], 0xffffffff
mov eax, dword [0x7a6164]
cmp dword [eax], 0xffffffff
jle 0x74bd14
mov dword [ebp - 0x118], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x114], eax
lea eax, [ebp - 0x160]
push eax
xor ecx, ecx
lea edx, [ebp - 0x118]
mov eax, ebx
call fcn.007553cc
mov eax, dword [0x7a6a58]
mov edx, dword [ebp - 0x160]
mov dword [eax], edx
mov edx, dword [ebp - 0x15c]
mov dword [eax + 4], edx
mov eax, ebx
call fcn.0074fd84
mov eax, dword [ebx + 0xafc]
movzx edi, word [eax + 0x80]
mov byte [ebx + 0xc2c], 0
cmp byte [ebp - 0x43], 0
jne 0x74bd4e
mov eax, dword [0x7a6164]
cmp dword [eax], 0xffffffff
jne 0x74bd4e
mov ecx, dword [ebp + 8]
mov edx, esi
mov eax, ebx
call fcn.0077c278
dec eax
sete al
mov byte [ebx + 0xc2c], al
cmp byte [ebx + 0xc2c], 0
je 0x74bd68
mov dx, 7
mov eax, dword [ebx + 0xafc]
call fcn.00493e80
jmp 0x74bd77
mov dx, 4
mov eax, dword [ebx + 0xafc]
call fcn.00493e80
mov eax, dword [ebx + 0xafc]
cmp di, word [eax + 0x80]
je 0x74bd8d
mov eax, ebx
call fcn.00788ea0
mov eax, dword [ebx + 0xafc]
mov edx, dword [eax]
call dword [edx + 0xa8]
jmp case.0x74a7cd.4
mov ecx, dword [ebp + 8]
mov edx, esi
mov eax, ebx
call fcn.0077c278
mov edi, eax
mov dword [ebx + 0xc28], edi
dec edi
sete al
mov byte [ebx + 0xc2c], al
jmp case.0x74a7cd.4
mov dword [ebp - 0x120], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x11c], eax
push 0
push 0
mov cl, 1
lea edx, [ebp - 0x120]
mov eax, ebx
call fcn.00756690
mov edi, eax
test edi, edi
jl 0x74beaf
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, edi
call fcn.00447f1c
mov edx, 1
call fcn.0063a2d8
test al, al
jne 0x74be2b
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, edi
call fcn.00447f1c
mov edx, 3
call fcn.0063a2d8
test al, al
je 0x74beaf
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, edi
call fcn.00447f1c
call fcn.0064a3d0
test al, al
jne 0x74beaf
mov eax, dword [0x7a6eac]
cmp edi, dword [eax]
je 0x74bef0
mov eax, dword [0x7a6eac]
cmp dword [eax], 0xffffffff
jle 0x74be85
mov edx, dword [0x7a6eac]
mov edx, dword [edx]
mov eax, dword [0x7a6990]
mov eax, dword [eax]
call fcn.00447f1c
mov byte [eax + 0x15], 0
mov edx, dword [0x7a6990]
mov edx, dword [edx]
mov eax, dword [0x7a6eac]
mov eax, dword [eax]
call fcn.00638a44
mov eax, dword [0x7a6990]
mov eax, dword [eax]
mov edx, edi
call fcn.00447f1c
mov byte [eax + 0x15], 1
mov edx, dword [0x7a6990]
mov edx, dword [edx]
mov eax, edi
call fcn.00638a44
mov eax, dword [0x7a6eac]
mov dword [eax], edi
jmp 0x74bef0
mov eax, dword [0x7a6eac]
cmp dword [eax], 0xffffffff
jle 0x74bee5
mov edx, dword [0x7a6eac]
mov edx, dword [edx]
mov eax, dword [0x7a6990]
mov eax, dword [eax]
call fcn.00447f1c
mov byte [eax + 0x15], 0
mov edx, dword [0x7a6990]
mov edx, dword [edx]
mov eax, dword [0x7a6eac]
mov eax, dword [eax]
call fcn.00638a44
mov eax, dword [0x7a6eac]
mov dword [eax], 0xffffffff
mov eax, dword [ebx + 0xafc]
mov edx, dword [eax]
call dword [edx + 0xa8]
jmp case.0x74a7cd.4
mov ecx, dword [ebp + 8]
mov edx, esi
mov eax, ebx
call fcn.007570b0
mov eax, dword [0x7a67d8]
cmp byte [eax], 0
jne 0x74bfb3
lea edx, [ebp - 0x174]
mov eax, dword [0x7a6374]
mov eax, dword [eax]
call fcn.00639ab8
mov eax, dword [0x7a6368]
push esi
lea esi, [ebp - 0x174]
mov edi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
lea ecx, [ebp - 0x160]
mov edx, dword [0x7a6374]
mov edx, dword [edx]
mov eax, ebx
call fcn.0075cc60
mov eax, dword [0x7a6260]
mov edx, dword [ebp - 0x160]
mov dword [eax], edx
mov edx, dword [ebp - 0x15c]
mov dword [eax + 4], edx
mov eax, dword [0x7a67d8]
mov byte [eax], 1
mov eax, dword [0x7a6ab4]
mov edx, dword [0x7a6260]
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov eax, dword [ebx + 0xc79]
mov edx, dword [0x7a6260]
mov ecx, dword [edx]
mov dword [eax + 0x21], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 0x25], ecx
call fcn.00620848
mov edx, dword [0x7a67bc]
mov dword [edx], eax
jmp case.0x74a7cd.4
mov dword [ebp - 0x128], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x124], eax
lea edx, [ebp - 0x20]
lea eax, [ebp - 0x128]
call fcn.00621454
fld dword [ebp - 0x20]
mov eax, dword [0x7a6260]
fsub dword [eax]
fstp dword [ebp - 0x20]
wait
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6260]
fsub dword [eax + 4]
fstp dword [ebp - 0x1c]
wait
lea ecx, [ebp - 0x160]
lea edx, [ebp - 0x20]
mov eax, ebx
call fcn.0074f600
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x1c], eax
fld dword [ebp - 0x20]
mov eax, dword [0x7a6ab4]
fadd dword [eax]
fstp dword [ebp - 0x20]
wait
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6ab4]
fadd dword [eax + 4]
fstp dword [ebp - 0x1c]
wait
lea edx, [ebp - 0x20]
mov cl, 1
mov eax, ebx
call fcn.00781cec
mov byte [ebp - 0x41], al
fld dword [ebp - 0x20]
mov eax, dword [0x7a6ab4]
fsub dword [eax]
fstp dword [ebp - 0x20]
wait
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6ab4]
fsub dword [eax + 4]
fstp dword [ebp - 0x1c]
wait
cmp byte [ebp - 0x41], 0
jne 0x74c10d
test byte [ebp - 0xa], 4
jne 0x74c10d
fld dword [ebp - 0x20]
mov eax, dword [0x7a7064]
fdiv qword [eax]
call fcn.00404d4c
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x15c], edx
fild qword [ebp - 0x160]
mov eax, dword [0x7a7064]
fmul qword [eax]
fstp dword [ebp - 0x20]
wait
fld dword [ebp - 0x1c]
mov eax, dword [0x7a7064]
fdiv qword [eax]
call fcn.00404d4c
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x15c], edx
fild qword [ebp - 0x160]
mov eax, dword [0x7a7064]
fmul qword [eax]
fstp dword [ebp - 0x1c]
wait
fld dword [ebp - 0x20]
mov eax, dword [0x7a6ab4]
fadd dword [eax]
fstp dword [ebp - 0x20]
wait
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6ab4]
fadd dword [eax + 4]
fstp dword [ebp - 0x1c]
wait
lea edx, [ebp - 0x20]
mov cl, 1
mov eax, ebx
call fcn.00781cec
mov byte [ebp - 0x41], al
fld dword [ebp - 0x20]
mov eax, dword [0x7a6ab4]
fsub dword [eax]
fstp dword [ebp - 0x20]
wait
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6ab4]
fsub dword [eax + 4]
fstp dword [ebp - 0x1c]
wait
fld dword [ebp - 0x20]
mov eax, dword [0x7a6a58]
fcomp dword [eax]
wait
fnstsw ax
sahf
jne 0x74c14a
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6a58]
fcomp dword [eax + 4]
wait
fnstsw ax
sahf
jne 0x74c14a
movzx eax, byte [ebp - 0x41]
cmp al, byte [ebx + 0xc78]
jne 0x74c14a
mov eax, dword [ebx + 0xc79]
cmp byte [eax + 0x31], 0
jne case.0x74a7cd.4
mov eax, dword [0x7a6a58]
mov edx, dword [ebp - 0x20]
mov dword [eax], edx
mov edx, dword [ebp - 0x1c]
mov dword [eax + 4], edx
movzx eax, byte [ebp - 0x41]
mov byte [ebx + 0xc78], al
mov eax, dword [0x7a6ab4]
fld dword [eax]
mov eax, dword [0x7a6a58]
fadd dword [eax]
fstp dword [ebp - 0x20]
wait
mov eax, dword [0x7a6ab4]
fld dword [eax + 4]
mov eax, dword [0x7a6a58]
fadd dword [eax + 4]
fstp dword [ebp - 0x1c]
wait
mov edx, dword [0x7a6374]
mov edx, dword [edx]
xor ecx, ecx
mov eax, ebx
call fcn.0074ec6c
jmp case.0x74a7cd.4
call fcn.0062072c
mov dword [ebp - 0x130], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x12c], eax
lea edx, [ebp - 0x20]
lea eax, [ebp - 0x130]
call fcn.00621454
lea edx, [ebp - 0x20]
mov eax, ebx
call fcn.00781aa0
mov byte [ebp - 0x41], al
movzx eax, byte [ebp - 0x41]
mov byte [ebx + 0xc78], al
fld dword [ebp - 0x20]
mov eax, dword [0x7a6a58]
fcomp dword [eax]
wait
fnstsw ax
sahf
jne 0x74c1fe
fld dword [ebp - 0x1c]
mov eax, dword [0x7a6a58]
fcomp dword [eax + 4]
wait
fnstsw ax
sahf
je case.0x74a7cd.4
mov eax, dword [0x7a6a58]
mov edx, dword [ebp - 0x20]
mov dword [eax], edx
mov edx, dword [ebp - 0x1c]
mov dword [eax + 4], edx
mov eax, dword [ebx + 0xc79]
mov byte [eax + 0x31], 0
movzx edx, byte [ebx + 0xc78]
mov eax, ebx
call fcn.0074f7b0
mov ecx, dword [0x7a6a58]
mov eax, dword [ebx + 0xafc]
mov edx, dword [eax + 0x1b0]
mov eax, dword [ebx + 0xc79]
call fcn.0071b7d0
jmp case.0x74a7cd.4
mov dword [ebp - 0x138], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x134], eax
push 0
push 0
xor ecx, ecx
lea edx, [ebp - 0x138]
mov eax, ebx
call fcn.00756690
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x140], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x13c], eax
lea ecx, [ebp - 0x140]
mov edx, dword [ebp - 0x10]
mov eax, ebx
call fcn.0074d150
xor eax, eax
mov edx, dword [0x7a6efc]
cmp byte [edx], 0
jne 0x74c2a1
mov edx, dword [0x7a6864]
cmp byte [edx], 0xc
jne 0x74c2db
mov eax, dword [0x7a6a58]
fld dword [eax]
mov eax, dword [0x7a6ab4]
fadd dword [eax]
fstp dword [ebp - 0x28]
wait
mov eax, dword [0x7a6a58]
fld dword [eax + 4]
mov eax, dword [0x7a6ab4]
fadd dword [eax + 4]
fstp dword [ebp - 0x24]
wait
push 1
mov ecx, dword [0x7a6a58]
lea edx, [ebp - 0x28]
mov eax, ebx
call fcn.0074d358
mov al, 1
mov edx, dword [0x7a6864]
cmp byte [edx], 1
je 0x74c2f1
mov edx, dword [0x7a6864]
cmp byte [edx], 5
jne 0x74c336
mov edx, dword [0x7a67d8]
cmp byte [edx], 0
je 0x74c336
mov eax, dword [0x7a6a58]
fld dword [eax]
mov eax, dword [0x7a6260]
fsub dword [eax]
fstp dword [ebp - 0x28]
wait
mov eax, dword [0x7a6a58]
fld dword [eax + 4]
mov eax, dword [0x7a6260]
fsub dword [eax + 4]
fstp dword [ebp - 0x24]
wait
push 1
mov edx, dword [0x7a6a58]
lea ecx, [ebp - 0x28]
mov eax, ebx
call fcn.0074d358
mov al, 1
mov edx, dword [0x7a7084]
cmp byte [edx], 0
je 0x74c37b
mov eax, dword [0x7a6a58]
fld dword [eax]
mov eax, dword [0x7a6260]
fsub dword [eax]
fstp dword [ebp - 0x28]
wait
mov eax, dword [0x7a6a58]
fld dword [eax + 4]
mov eax, dword [0x7a6260]
fsub dword [eax + 4]
fstp dword [ebp - 0x24]
wait
push 1
mov edx, dword [0x7a6a58]
lea ecx, [ebp - 0x28]
mov eax, ebx
call fcn.0074d358
mov al, 1
test al, al
jne 0x74c420
mov eax, dword [ebx + 0xc79]
cmp byte [eax + 0x31], 0
je 0x74c39d
mov edx, dword [eax + 0x19]
mov dword [ebp - 0x28], edx
mov edx, dword [eax + 0x1d]
mov dword [ebp - 0x24], edx
jmp 0x74c3fb
mov dword [ebp - 0x148], esi
mov eax, dword [ebp + 8]
mov dword [ebp - 0x144], eax
lea eax, [ebp - 0x28]
push eax
test byte [ebp - 0xa], 4
jne 0x74c3e8
mov eax, dword [0x7a6864]
cmp byte [eax], 0
je 0x74c3e8
mov eax, dword [0x7a6864]
cmp byte [eax], 3
je 0x74c3e8
mov eax, dword [0x7a6864]
cmp byte [eax], 9
je 0x74c3e8
mov eax, dword [0x7a6864]
cmp byte [eax], 8
je 0x74c3e8
mov eax, dword [0x7a6864]
cmp byte [eax], 0xb
jne 0x74c3ec
xor ecx, ecx
jmp 0x74c3ee
mov cl, 1
lea edx, [ebp - 0x148]
mov eax, ebx
call fcn.007553cc
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x160]
call fcn.00620938
lea ecx, [ebp - 0x160]
lea edx, [ebp - 0x28]
mov eax, ebx
call fcn.0074d358
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x74c43d
lea eax, [ebp - 4]
call fcn.00408da4
ret