Function at 0x45fc70
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb8
push ebx
push ebp
push esi
push edi
mov ebp, ecx
xor ebx, ebx
mov dword [esp + 0x20], ebx
cmp byte [ebp + 0x213], bl
jne 0x45fc98
cmp dword [ebp + 0x244], ebx
jne 0x45fca2
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x37c], ebx
je 0x45fc98
cmp dword [ebp + 0x380], ebx
je 0x45fc98
mov ecx, dword [ebp + 0x3b8]
or esi, 0xffffffff
cmp ecx, ebx
mov byte [ebp + 0x360], bl
mov byte [esp + 0x28], bl
mov byte [esp + 0x27], bl
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x18], esi
lea edi, [esi + 2]
je 0x45fe33
mov eax, dword [ecx]
mov edx, dword [ebp + 0x3bc]
mov eax, dword [eax + 8]
push edx
call eax
cmp eax, esi
mov dword [esp + 0x18], eax
je 0x45fe27
cmp dword [ebp + 0x358], edi
jne 0x45fd25
mov edi, dword [ebp + 0xed4]
jmp 0x45fe09
cmp dword [ebp + 0x2b4], ebx
jbe 0x45fe03
cmp dword [ebp + 0x294], ebx
mov dword [esp + 0x2c], ebx
mov word [esp + 0x42], bx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], ebx
je 0x45fd8a
lea ecx, [esp + 0x2c]
lea eax, [ebp + 0x28c]
push ecx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov word [esp + 0x44], bx
mov dword [esp + 0x40], ebx
call fcn.00458520
mov edi, dword [esp + 0x4c]
lea esi, [esp + 0x2c]
call fcn.00458440
mov eax, dword [esp + 0x18]
jmp 0x45fe09
cmp dword [ebp + 0x318], ebx
ja 0x45fdc3
lea eax, [esp + 0x2c]
mov word [esp + 0x40], di
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
call fcn.00458300
mov edi, dword [esp + 0x4c]
lea esi, [esp + 0x2c]
call fcn.00458440
mov eax, dword [esp + 0x18]
jmp 0x45fe09
mov eax, dword [ebp + 0x31c]
mov edx, dword [ebp + 0x320]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x2b8]
add eax, dword [ebp + 0x2b4]
lea esi, [esp + 0x2c]
mov word [esp + 0x40], bx
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
call fcn.00458440
mov eax, dword [esp + 0x18]
jmp 0x45fe09
mov edi, dword [ebp + 0x344]
cmp edi, eax
je 0x45fe27
mov esi, ebp
call fcn.0045f050
mov ecx, dword [ebp + 0x3c0]
cmp ecx, dword [ebp + 0x3bc]
jne 0x45fe27
mov byte [esp + 0x27], 1
mov edx, dword [ebp + 0x3bc]
mov dword [ebp + 0x3c0], edx
push ebp
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x68]
lea edi, [esp + 0x58]
call fcn.0045eca0
cmp eax, ebx
jne 0x460aa8
cmp byte [ebp + 0x20f], bl
je 0x45fe6d
mov ecx, edi
mov eax, ebp
call fcn.0042d620
mov ecx, ebp
call fcn.00452b30
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x64]
cmp eax, esi
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], ecx
jge 0x45fe9c
mov dword [esp + 0x74], esi
mov eax, dword [esp + 0x68]
cmp edi, eax
jge 0x45feaa
mov edi, eax
mov dword [esp + 0x78], edi
mov eax, dword [esp + 0x6c]
cmp edx, eax
jle 0x45feb8
mov edx, eax
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0x70]
cmp ecx, eax
jle 0x45fec9
mov ecx, eax
mov dword [esp + 0x80], ecx
sub edx, dword [esp + 0x74]
cmp dword [ebp + 0x32c], edx
jne 0x45fee3
sub ecx, edi
cmp dword [ebp + 0x330], ecx
mov byte [esp + 0x17], bl
je 0x45fee8
mov byte [esp + 0x17], 1
cmp dword [ebp + 0x3b8], ebx
je 0x460008
cmp dword [ebp + 0x358], ebx
jne 0x45ff0b
lea eax, [esp + 0x74]
push eax
push ebp
lea eax, [esp + 0x5c]
call fcn.00460f90
cmp dword [ebp + 0x358], 1
je 0x460008
mov ecx, ebp
call fcn.0045dcf0
test al, al
jne 0x460002
cmp byte [ebp + 0x363], bl
je 0x460002
lea esi, [esp + 0x84]
mov eax, ebp
call fcn.0045eaa0
fld dword [ebp + 0x3a4]
push ecx
mov ecx, dword [esp + 0x94]
fstp dword [esp]
sub ecx, dword [esp + 0x8c]
lea eax, [esp + 0xa4]
push ecx
mov ecx, dword [esp + 0x94]
sub ecx, dword [esp + 0x8c]
call fcn.0045d960
mov ecx, dword [ebp + 0x3b8]
lea esi, [ebp + 0x362]
push esi
lea eax, [esp + 0xa4]
push eax
mov eax, dword [ebp + 0x3bc]
mov byte [esp + 0xcb], bl
mov edx, dword [ecx]
mov edx, dword [edx + 0x20]
push eax
call edx
cmp eax, ebx
jne 0x460aa8
cmp byte [esi], bl
jne 0x460008
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov word [esp + 0x40], 1
mov word [esp + 0x42], bx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x50], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
call fcn.00458300
lea eax, [ebp + 0xe20]
push eax
lea eax, [esp + 0x30]
call fcn.00458520
lea esi, [esp + 0x2c]
call fcn.00458440
jmp 0x460008
mov byte [ebp + 0x362], bl
mov ecx, ebp
call fcn.0045dd10
test al, al
je 0x46028b
cmp dword [ebp + 0x354], ebx
jne 0x46028b
mov eax, dword [ebp + 0xed0]
cmp eax, dword [ebp + 0x3bc]
lea ecx, [ebp + 0xe48]
jne 0x46028b
cmp eax, 0xffffffff
je 0x46028b
cmp ecx, ebx
je 0x460050
lea edi, [ebp + 0xe4c]
jmp 0x460052
xor edi, edi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
mov eax, dword [edi + 0x20]
cmp eax, ebx
je 0x46006b
cmp eax, esi
jne 0x46006b
add dword [edi + 0x24], 1
jmp 0x46008b
cmp byte [edi + 0xc], bl
je 0x46007c
lea ecx, [edi + 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
jmp 0x460085
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
mov dword [edi + 0x24], ebx
mov dword [edi + 0x20], esi
cmp dword [ebp + 0xea4], ebx
je 0x460239
mov ecx, dword [esp + 0x18]
cmp ecx, dword [ebp + 0xebc]
jne 0x460239
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov word [esp + 0x40], 1
mov word [esp + 0x42], bx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x50], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
call fcn.00458300
lea edx, [ebp + 0xe20]
push edx
lea eax, [esp + 0x30]
call fcn.00458520
lea esi, [esp + 0x2c]
call fcn.00458440
cmp byte [ebp + 0x362], bl
je 0x460197
lea ecx, [ebp + 0x324]
lea eax, [ebp + 0xe9c]
push ecx
call fcn.00458520
mov eax, dword [ebp + 0xef0]
cmp eax, ebx
je 0x460134
mov esi, dword [ebp + 0xec4]
cmp esi, ebx
je 0x460134
call fcn.00460ab0
mov edx, ebp
call fcn.0045e5d0
mov esi, eax
cmp esi, ebx
je 0x460220
cmp dword [edi + 0x24], ebx
je 0x460168
cmp dword [edi + 0x20], ebx
je 0x460168
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [edi + 0x20], eax
jne 0x460168
add dword [edi + 0x24], 0xffffffff
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [edi + 0xc], bl
mov dword [edi + 0x20], ebx
je 0x460184
add edi, 0x28
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [edi]
mov eax, dword [edx + 0x1c]
mov ecx, edi
call eax
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
or ecx, 0xffffffff
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
or edx, ecx
or esi, ecx
mov dword [eax + 4], edx
or ecx, ecx
mov dword [eax + 8], esi
mov dword [eax + 0xc], ecx
lea ecx, [ebp + 0x288]
lea eax, [ebp + 0xe9c]
push ecx
call fcn.0044d980
mov eax, dword [ebp + 0xef0]
cmp eax, ebx
je 0x4601db
mov esi, dword [ebp + 0xec4]
cmp esi, ebx
je 0x4601db
call fcn.00460ab0
lea esi, [ebp + 0x288]
lea eax, [esp + 0x84]
mov ecx, esi
call fcn.0045d900
mov ecx, dword [eax + 8]
sub ecx, dword [eax]
lea eax, [esp + 0x84]
mov dword [ebp + 0x37c], ecx
mov ecx, esi
call fcn.0045d900
mov edx, dword [eax + 0xc]
sub edx, dword [eax + 4]
mov eax, dword [ebp + 0xecc]
mov dword [ebp + 0x380], edx
mov dword [ebp + 0x3c4], eax
cmp dword [ebp + 0x358], 1
jne 0x460233
mov dword [ebp + 0x358], 2
mov byte [ebp + 0x366], bl
lea eax, [ebp + 0xe48]
push eax
call fcn.0045db60
or dword [ebp + 8], 7
mov byte [ebp + 0x35f], bl
cmp dword [edi + 0x24], ebx
mov byte [esp + 0x17], bl
je 0x46026e
cmp dword [edi + 0x20], ebx
je 0x46026e
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [edi + 0x20], eax
jne 0x46026e
add dword [edi + 0x24], 0xffffffff
jmp 0x46028b
cmp byte [edi + 0xc], bl
mov dword [edi + 0x20], ebx
je 0x460282
add edi, 0x28
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x46028b
mov edx, dword [edi]
mov eax, dword [edx + 0x1c]
mov ecx, edi
call eax
cmp byte [0x59b495], bl
jne 0x460299
mov byte [esp + 0x1f], bl
jmp 0x4602c8
mov eax, dword [0x587aa4]
cmp eax, ebx
jne 0x4602b8
push 0x17
call dword [sym.imp.USER32.dll_GetSystemMetrics]
neg eax
sbb eax, eax
neg eax
add eax, 1
mov dword [0x587aa4], eax
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, 0x8000
seta byte [esp + 0x1f]
mov eax, dword [ebp + 8]
test al, 1
je 0x4602d5
or eax, 8
mov dword [ebp + 8], eax
mov esi, dword [ebp + 0x358]
cmp esi, 2
jne 0x460304
cmp byte [esp + 0x17], bl
je 0x460304
mov ecx, ebp
call fcn.0045dcf0
test al, al
jne 0x460300
fldz
fcomp dword [ebp + 0x3a0]
fnstsw ax
test ah, 0x44
jnp 0x460304
mov byte [esp + 0x17], bl
cmp esi, ebx
je 0x46030d
cmp esi, 1
jne 0x46033d
cmp dword [ebp + 0x334], ebx
je 0x46033d
mov eax, dword [ebp + 0x344]
cmp eax, dword [esp + 0x18]
je 0x46033d
cmp eax, 0xffffffff
je 0x46033d
mov ecx, ebp
call fcn.0045dd10
test al, al
je 0x46033d
cmp byte [ebp + 0x366], bl
jne 0x46033d
mov byte [esp + 0x17], bl
mov eax, dword [esp + 0x64]
cmp dword [ebp + 0x390], eax
jne 0x46036d
mov ecx, dword [ebp + 0x398]
cmp ecx, dword [esp + 0x6c]
jne 0x46036d
mov edx, dword [ebp + 0x394]
cmp edx, dword [esp + 0x68]
jne 0x46036d
mov ecx, dword [ebp + 0x39c]
cmp ecx, dword [esp + 0x70]
je 0x4603a5
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x70]
mov dword [ebp + 0x390], eax
mov eax, dword [esp + 0x6c]
mov dword [ebp + 0x394], edx
mov dword [ebp + 0x398], eax
mov dword [ebp + 0x38c], ebx
mov dword [ebp + 0x388], ebx
mov dword [ebp + 0x384], ebx
mov dword [ebp + 0x39c], ecx
jmp 0x4603ed
cmp byte [esp + 0x17], bl
je 0x4603ed
cmp esi, 2
jne 0x4603ed
cmp dword [ebp + 0x3b8], ebx
je 0x4603ed
cmp byte [esp + 0x1f], bl
jne 0x4603cb
cmp dword [ebp + 0x354], ebx
mov byte [esp + 0x18], 1
je 0x4603cf
mov byte [esp + 0x18], bl
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x17]
push edx
lea eax, [esp + 0x2b]
push eax
push ecx
mov edi, ebp
call fcn.0045ed30
cmp eax, ebx
jne 0x460aa8
mov esi, dword [ebp + 0x358]
mov edi, 2
cmp esi, edi
jne 0x46040e
cmp byte [esp + 0x17], bl
jne 0x46040e
cmp byte [ebp + 0x35f], bl
je 0x4607d9
fldz
fcomp dword [ebp + 0x3a0]
fnstsw ax
test ah, 0x44
jp 0x460487
cmp esi, ebx
je 0x460487
cmp dword [ebp + 0x32c], ebx
je 0x460487
mov eax, dword [ebp + 0x354]
cmp eax, 1
je 0x460487
cmp byte [esp + 0x1f], bl
jne 0x46043e
cmp eax, edi
jne 0x460487
push ebp
call fcn.0045ea00
mov eax, dword [esp + 0x7c]
sub eax, dword [esp + 0x74]
mov edx, dword [ebp + 0x32c]
test edx, edx
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
mov byte [ebp + 0x360], 1
fild dword [ebp + 0x32c]
mov byte [ebp + 0x35f], 1
jge 0x460478
fadd dword [0x567d50]
fdivp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
jmp 0x460606
mov ecx, ebp
call fcn.0045dd10
test al, al
jne 0x46049b
cmp esi, 1
jne 0x460629
cmp dword [ebp + 0x3bc], 0xffffffff
je 0x460629
cmp esi, 1
je 0x460542
cmp dword [ebp + 0x354], ebx
jne 0x460542
mov ecx, ebp
mov byte [ebp + 0x35f], bl
call fcn.0045dcf0
test al, al
je 0x4604d4
xor esi, esi
xor eax, eax
jmp 0x4604fe
lea esi, [esp + 0x84]
mov eax, ebp
call fcn.0045eaa0
mov eax, dword [esp + 0x8c]
mov esi, dword [esp + 0x90]
sub eax, dword [esp + 0x84]
sub esi, dword [esp + 0x88]
cmp byte [esp + 0x27], bl
fld dword [ebp + 0x3a4]
mov edx, dword [ebp + 0x3bc]
sete cl
push ecx
push ecx
fstp dword [esp]
push esi
push eax
push edx
lea esi, [ebp + 0xe48]
call fcn.0045e210
mov eax, dword [ebp + 0xe4c]
mov edx, dword [eax + 0xc]
lea ecx, [ebp + 0xe4c]
push ebx
push 0xffffffffffffffff
call edx
mov dword [ebp + 0x358], 1
cmp dword [ebp + 0xe30], ebx
je 0x46056a
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x78]
push ecx
push edx
lea eax, [ebp + 0xe20]
push ebp
call fcn.00460bc0
jmp 0x4607d9
cmp dword [ebp + 0x334], ebx
jne 0x4605a5
push ebp
call fcn.0045ea00
mov eax, ebp
call fcn.0045e880
push ebp
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x68]
lea edi, [esp + 0x58]
mov byte [esp + 0x2c], bl
call fcn.0045eca0
cmp eax, ebx
je 0x4607d9
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
fldz
fcomp dword [ebp + 0x3a0]
fnstsw ax
test ah, 0x44
jp 0x4607d9
cmp byte [esp + 0x17], bl
je 0x4607d9
cmp dword [ebp + 0x354], 1
je 0x4607d9
mov eax, dword [esp + 0x7c]
sub eax, dword [esp + 0x74]
mov byte [ebp + 0x35f], 1
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x32c]
fild dword [esp + 0x18]
test eax, eax
fild dword [ebp + 0x32c]
jge 0x4605fc
fadd dword [0x567d50]
fdivp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
push ecx
mov eax, ebp
fstp dword [esp]
call fcn.0045f090
cmp byte [ebp + 0x20b], 1
je 0x46061d
or dword [ebp + 8], edi
mov byte [ebp + 0x20b], 1
jmp 0x4607d9
cmp dword [ebp + 0xe08], ebx
mov dword [ebp + 0x358], edi
mov byte [ebp + 0x35f], bl
je 0x46065d
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x78]
push edx
push eax
lea eax, [ebp + 0xdf8]
push ebp
call fcn.00460bc0
jmp 0x460773
cmp dword [ebp + 0x3cc], ebx
je 0x4606ec
lea ecx, [ebp + 0x3c8]
push ecx
lea esi, [esp + 0x30]
call fcn.004612d0
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x64]
sub esp, 8
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x78]
sub eax, dword [esp + 0x70]
mov byte [esp + 0x94], bl
mov dword [esp + 0x90], eax
mov eax, esp
mov dword [esp + 0x98], 0x80
mov dword [eax], ebx
lea edx, [ebp + 0x324]
mov dword [eax + 4], edx
push ebx
lea eax, [esp + 0x90]
push eax
lea ecx, [esp + 0x3c]
push ecx
call fcn.00468980
mov esi, eax
add esp, 0x14
lea eax, [esp + 0x2c]
call fcn.0043c750
cmp esi, ebx
je 0x460773
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
lea esi, [ebp + 0x3d0]
mov eax, esi
call fcn.00401970
test al, al
je 0x460726
mov eax, dword [esi]
cmp eax, ebx
je 0x460715
add eax, 4
push eax
lea esi, [esp + 0x30]
call fcn.0043dd90
jmp 0x460679
xor eax, eax
push eax
lea esi, [esp + 0x30]
call fcn.0043dd90
jmp 0x460679
cmp dword [ebp + 0x3b8], ebx
je 0x460aa1
cmp dword [ebp + 0x354], ebx
je 0x460743
mov byte [ebp + 0x35f], 1
jmp 0x460773
mov ecx, ebp
call fcn.0045dd10
test al, al
jne 0x460773
mov eax, ebp
call fcn.0045e880
push ebp
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x68]
lea edi, [esp + 0x58]
mov byte [esp + 0x2c], bl
call fcn.0045eca0
cmp eax, ebx
jne 0x460aa8
or dword [ebp + 8], 7
cmp dword [ebp + 0x354], ebx
jne 0x4607cc
mov edx, dword [esp + 0x5c]
sub edx, dword [esp + 0x54]
cmp dword [ebp + 0x32c], edx
je 0x4607cc
mov eax, dword [esp + 0x60]
sub eax, dword [esp + 0x58]
cmp dword [ebp + 0x330], eax
je 0x4607cc
fldz
fcomp dword [ebp + 0x3a0]
fnstsw ax
test ah, 0x44
jnp 0x4607cc
mov ecx, dword [ebp + 0x32c]
mov edx, dword [ebp + 0x330]
xor eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edx
cmp byte [esp + 0x27], bl
je 0x4607d9
mov edx, ebp
call fcn.0045e5d0
cmp dword [ebp + 0x2b4], ebx
jbe 0x460807
cmp byte [esp + 0x1f], bl
jne 0x460807
mov ecx, ebp
call fcn.0045dcf0
test al, al
jne 0x460807
lea eax, [esp + 0x74]
push eax
push ebp
lea eax, [esp + 0x5c]
call fcn.00460f90
push ebp
call fcn.0045ea00
fldz
fcomp dword [ebp + 0x3a0]
fnstsw ax
test ah, 0x44
jnp 0x46081e
cmp dword [ebp + 0x37c], ebx
jne 0x46082a
cmp dword [ebp + 0x2b4], ebx
jbe 0x460a7e
cmp byte [esp + 0x28], bl
fld dword [0x567f48]
je 0x460862
fstp st(0)
fld dword [ebp + 0x3a0]
fld qword [0x567de8]
fmul st(1), st(0)
fxch st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
call fcn.00538920
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
jmp 0x4609b3
cmp dword [ebp + 0x2b4], ebx
jbe 0x46091c
fcomp dword [ebp + 0x3a0]
fnstsw ax
test ah, 0x41
jne 0x4608ea
lea ecx, [ebp + 0x288]
lea eax, [esp + 0x84]
call fcn.0045d900
mov ecx, dword [esp + 0x5c]
sub ecx, dword [esp + 0x54]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 8]
fild dword [esp + 0x18]
sub ecx, dword [eax]
mov dword [esp + 0x18], ecx
fidiv dword [esp + 0x18]
fstp dword [esp + 0x20]
fld dword [ebp + 0x3a0]
fld qword [0x567de8]
fmul st(1), st(0)
fxch st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
call fcn.00538920
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fld1
fsub st(1), st(0)
fld dword [esp + 0x20]
fld st(0)
fsubp st(2)
fxch st(2)
fmulp st(1)
faddp st(1)
jmp 0x4609b3
fld dword [ebp + 0x3a0]
fsub qword [0x54cdc8]
fmul qword [0x567dc0]
fstp dword [esp + 0x20]
fld qword [0x567de8]
fld dword [esp + 0x20]
call fcn.00538920
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
jmp 0x4609b3
mov edx, dword [ebp + 0x37c]
fild dword [ebp + 0x37c]
test edx, edx
jge 0x460932
fadd dword [0x567d50]
mov eax, dword [esp + 0x5c]
sub eax, dword [esp + 0x54]
mov dword [esp + 0x20], eax
fidiv dword [esp + 0x20]
fstp dword [esp + 0x18]
fcomp dword [ebp + 0x3a0]
fnstsw ax
fld dword [ebp + 0x3a0]
test ah, 0x41
jne 0x460988
fld qword [0x567de8]
fmul st(1), st(0)
fxch st(1)
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
call fcn.00538920
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fld1
fsub st(1), st(0)
fld dword [esp + 0x18]
fsub st(1)
fmulp st(2)
faddp st(1)
jmp 0x4609b3
fsub qword [0x54cdc8]
fmul qword [0x567dc0]
fstp dword [esp + 0x20]
fld qword [0x567de8]
fld dword [esp + 0x20]
call fcn.00538920
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fmul dword [esp + 0x18]
lea eax, [esp + 0x84]
fstp dword [esp + 0x18]
push eax
lea eax, [esp + 0x24]
mov ecx, str.BlockyZoom
mov dword [esp + 0x24], ebx
call fcn.004077f0
lea eax, [esp + 0x84]
call fcn.004028c0
test eax, eax
je 0x4609f9
fld dword [0x567f48]
mov byte [esp + 0x1f], 1
fcomp dword [ebp + 0x3a0]
fnstsw ax
test ah, 5
jnp 0x4609fd
mov byte [esp + 0x1f], bl
lea esi, [esp + 0x84]
call fcn.004346f0
cmp byte [esp + 0x1f], bl
jne 0x460a46
cmp dword [ebp + 0x2b4], ebx
jbe 0x460a30
fld dword [0x567f48]
fcomp dword [ebp + 0x3a0]
fnstsw ax
test ah, 0x44
jp 0x460a30
cmp byte [esp + 0x28], bl
je 0x460a46
cmp byte [ebp + 0x20b], 1
je 0x460a3d
or dword [ebp + 8], 2
mov byte [ebp + 0x20b], 1
jmp 0x460a58
cmp byte [ebp + 0x20b], bl
je 0x460a52
or dword [ebp + 8], 2
mov byte [ebp + 0x20b], bl
cmp dword [ebp + 0x354], ebx
jne 0x460aa1
fld dword [esp + 0x18]
push ecx
mov eax, ebp
fstp dword [esp]
call fcn.0045f090
mov ecx, ebp
call fcn.00452b30
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x354], ebx
jne 0x460aa1
cmp byte [ebp + 0x35f], bl
jne 0x460aa1
fld1
sub esp, 8
fst dword [esp + 4]
mov ecx, ebp
fstp dword [esp]
call fcn.00451b30
mov ecx, ebp
call fcn.00452b30
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret