Function at 0x413e7a
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
lea ebp, [esp - 0x6c]
sub esp, 0xfc
mov eax, dword [ebp + 0x78]
and dword [ebp + 8], 0
and eax, 0x10000
mov dword [ebp - 0x48], eax
mov eax, dword [ebp + 0x78]
and eax, 0x20000
mov dword [ebp + 0x50], ecx
xor ecx, ecx
mov dword [ebp - 0x28], eax
movzx eax, byte [ebp + 0x78]
test eax, eax
sete cl
push ebx
push esi
push edi
mov esi, ecx
xor ecx, ecx
cmp eax, 1
sete cl
mov dword [ebp + 0x28], ecx
xor ecx, ecx
cmp eax, 2
sete cl
test esi, esi
mov dword [ebp + 4], ecx
jne 0x413ed5
cmp dword [ebp + 0x28], esi
mov byte [ebp + 0x3f], 0
je 0x413ed9
mov byte [ebp + 0x3f], 1
mov edi, dword [ebp + 0x74]
and dword [ebp + 0x2c], 0
push 1
lea eax, [ebp + 0x74]
push eax
add edi, 0xfffffffe
push 0x47d444
mov dword [ebp - 0x38], edi
mov dword [ebp + 0x10], edi
call fcn.0042c7e8
add esp, 0xc
test esi, esi
push 0x24
pop edx
movzx eax, al
push 0x23
mov dword [ebp - 0x20], eax
mov dword [ebp + 0x1c], 0x100001
mov dword [ebp + 0xc], 0x100002
mov dword [ebp + 0x18], 0x100003
pop ebx
je 0x413f2a
mov dword [ebp + 0x18], 0x7c
jmp 0x413f4b
cmp dword [ebp + 0x28], 0
je 0x413f3c
mov dword [ebp + 0x1c], 0x7c
mov dword [ebp + 0x18], edx
jmp 0x413f4e
cmp dword [ebp + 4], 0
je 0x413f51
push 0x7c
pop eax
mov dword [ebp + 0x18], eax
mov dword [ebp + 8], eax
mov dword [ebp + 0x1c], edx
mov dword [ebp + 0xc], ebx
mov eax, dword [ebp + 0x74]
mov cx, word [eax]
cmp cx, dx
mov byte [ebp + 0x3e], 0
je 0x413f6b
cmp cx, bx
je 0x413f6b
cmp cx, 0x7c
jne 0x413f79
movzx ecx, cx
inc eax
inc eax
mov dword [ebp + 8], ecx
mov byte [ebp + 0x3e], cl
mov dword [ebp + 0x74], eax
mov dword [ebp + 0x5c], eax
mov ax, word [eax]
cmp ax, 0x5b
sete byte [ebp + 0x4f]
cmp byte [ebp + 0x4f], 0
je 0x413fcf
push 2
pop esi
add dword [ebp + 0x5c], esi
mov word [edi], ax
lea edx, [edi + 2]
xor ecx, ecx
jmp 0x413fc1
mov eax, ecx
call fcn.00426083
test al, al
je 0x413fad
add dword [ebp + 0x5c], esi
jmp 0x413fc4
cmp cx, 0x5b
je 0x413fb9
cmp cx, 0x28
jne 0x413fcf
mov word [edx], cx
add edx, esi
add dword [ebp + 0x5c], esi
mov dword [ebp + 0x10], edx
mov eax, dword [ebp + 0x5c]
mov cx, word [eax]
test cx, cx
jne 0x413f9d
mov eax, dword [ebp + 0x5c]
mov dword [ebp + 0x74], eax
push 1
lea eax, [ebp + 0x74]
push eax
push 0x47d444
xor edi, edi
call fcn.0042c7e8
mov ebx, dword [ebp + 0x74]
movzx eax, al
add esp, 0xc
cmp byte [ebp + 0x4f], 0
mov esi, ebx
mov dword [ebp - 0x30], eax
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x58], edi
mov dword [ebp + 0x60], edi
mov dword [ebp + 0x64], edi
mov dword [ebp + 0x38], esi
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x48], edi
mov dword [ebp + 0x34], edi
mov dword [ebp + 0x14], edi
mov byte [ebp + 0x7b], 0
je 0x4141d5
mov eax, dword [ebp + 0x28]
mov dword [ebp + 0x24], eax
mov ax, word [ebx]
xor dl, dl
cmp ax, 0x22
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x30], ebx
mov byte [ebp + 0x6b], 0
jne 0x41406f
xor eax, eax
mov ax, word [ebx + 2]
push eax
call fcn.0042aa31
add esp, 4
test al, al
jne 0x41404f
mov dword [ebp + 0x24], edi
mov eax, dword [ebp + 0x50]
add eax, 0x48
push 1
push eax
lea eax, [ebp + 0x30]
push eax
call fcn.00413db8
add esp, 0xc
mov byte [ebp + 0x6b], 1
mov dl, 1
mov dword [ebp + 0x5c], eax
jmp 0x414087
cmp ax, di
je 0x41408a
push eax
call fcn.0042aa31
add esp, 4
test al, al
jne 0x414084
mov dword [ebp + 0x24], edi
lea eax, [ebx + 2]
mov dword [ebp + 0x38], eax
lea ecx, [ebp + 0x38]
call fcn.00409aad
mov esi, dword [ebp + 0x38]
xor ecx, ecx
jmp 0x414128
mov eax, ecx
call fcn.00426083
test al, al
je 0x4140c1
cmp dl, 1
jg 0x414134
lea ecx, [ebp + 0x38]
inc dl
call fcn.00409aad
mov esi, dword [ebp + 0x38]
dec esi
dec esi
jmp 0x414123
cmp cx, 0x3e
je 0x41418e
cmp cx, 0x3c
je 0x41418e
cmp cx, 0x3d
je 0x41418e
cmp cx, 0x21
je 0x41418e
cmp dword [ebp + 0x24], edi
je 0x41411f
cmp dword [ebp + 0x28], edi
je 0x41411f
cmp cx, 0x26
je 0x414105
cmp cx, 0x7c
je 0x414105
cmp cx, 0x40
jne 0x41411f
mov ax, word [esi + 2]
call fcn.00426083
test al, al
je 0x41411f
mov ax, word [esi - 2]
call fcn.00426083
test al, al
jne 0x41416f
test dl, dl
jg 0x414134
inc esi
inc esi
mov dword [ebp + 0x38], esi
mov cx, word [esi]
cmp cx, di
jne 0x41409c
cmp byte [ebp + 0x6b], 0
jne 0x4141c3
mov eax, dword [ebp + 0x50]
add eax, 0x48
push 1
push eax
lea eax, [ebp + 0x30]
push eax
call fcn.00413db8
add esp, 0xc
cmp byte [ebp + 0x7b], 0
mov dword [ebp + 0x5c], eax
je 0x4141c3
sub eax, esi
sar eax, 1
push eax
push esi
lea ecx, [ebp + 0x14]
call fcn.00409fd6
jmp 0x41420d
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, word [esi]
jne 0x414188
mov word [esi], di
mov ebx, dword [ebp + 0x74]
mov esi, eax
mov byte [ebp + 0x7b], 5
jmp 0x414192
mov byte [ebp + 0x7b], 3
jmp 0x414192
mov byte [ebp + 0x7b], 1
cmp byte [ebp + 0x7b], 1
lea ecx, [esi + 2]
mov dword [ebp + 0x30], ecx
jne 0x41413e
mov ax, word [ecx]
cmp ax, 0x3e
je 0x4141b9
cmp ax, 0x3c
je 0x4141b9
cmp ax, 0x3d
je 0x4141b9
cmp ax, 0x21
jne 0x41413e
inc ecx
inc ecx
mov dword [ebp + 0x30], ecx
jmp 0x41413e
mov eax, dword [ebp + 0x5c]
cmp word [eax], di
je 0x414219
mov word [eax], di
inc eax
inc eax
mov dword [ebp + 0x5c], eax
jmp 0x414216
xor eax, eax
mov ax, word [ebx]
jmp 0x4141f9
cmp ax, 0x3e
je 0x414200
cmp ax, 0x3c
je 0x414200
cmp ax, 0x3d
je 0x414200
cmp ax, 0x21
je 0x414200
inc esi
inc esi
mov ax, word [esi]
cmp ax, di
jne 0x4141dc
jmp 0x414219
push esi
lea ecx, [ebp + 0x14]
mov byte [ebp + 0x7b], 1
call fcn.00426075
mov eax, dword [ebp + 0x14]
mov word [esi], di
mov dword [ebp + 0x44], eax
mov ebx, dword [ebp + 0x74]
mov eax, dword [ebp + 0x50]
cmp byte [eax + 0x86], 0
jne 0x4142bb
cmp byte [eax + 0xb], 0
jne 0x4142bb
mov ecx, dword [ebp + 0x50]
push 1
push edi
lea eax, [ebp + 0x48]
push eax
push ebx
call fcn.0043b18c
mov eax, dword [ebp + 0x48]
push edi
push edi
lea ecx, [ebp + 0x48]
push ecx
mov ecx, dword [ebp + 0x50]
push eax
mov dword [ebp - 0x2c], eax
mov dword [ebp + 0x48], edi
call fcn.00439f58
cmp dword [ebp + 0x44], edi
je 0x4142b1
mov ecx, dword [ebp + 0x50]
push 1
push edi
lea eax, [ebp + 0x34]
push eax
push dword [ebp + 0x44]
call fcn.0043b18c
mov eax, dword [ebp + 0x34]
push edi
push edi
lea ecx, [ebp + 0x34]
push ecx
mov ecx, dword [ebp + 0x50]
push eax
mov dword [ebp - 0x34], eax
mov dword [ebp + 0x34], edi
call fcn.00439f58
push dword [ebp + 0x48]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push dword [ebp + 0x34]
lea ecx, [ebp + 0x48]
mov esi, eax
call fcn.0042af26
mov eax, dword [ebp + 0x48]
lea eax, [eax + esi*2]
lea ecx, [ebp - 0x34]
mov dword [ebp + 0x44], eax
call fcn.0042602e
lea ecx, [ebp - 0x2c]
call fcn.0042602e
jmp 0x414301
mov ecx, dword [ebp + 0x50]
push 1
push edi
lea eax, [ebp + 0x48]
push eax
push ebx
call fcn.0043b18c
cmp dword [ebp + 0x44], edi
je 0x414301
mov ecx, dword [ebp + 0x50]
push 1
push edi
lea eax, [ebp + 0x34]
push eax
push dword [ebp + 0x44]
call fcn.0043b18c
push dword [ebp + 0x48]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push dword [ebp + 0x34]
lea ecx, [ebp + 0x48]
mov esi, eax
call fcn.0042af26
mov eax, dword [ebp + 0x48]
lea eax, [eax + esi*2]
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x48]
push eax
mov dword [ebp + 0x74], eax
call fcn.0040aea9
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
pop ecx
push dword [ebp + 0x74]
call ebx
mov edx, dword [ebp + 0x74]
mov esi, dword [ebp + 0x44]
cmp esi, edi
lea eax, [edx + eax*2]
mov dword [ebp], eax
mov dword [ebp + 0x24], edx
mov dword [ebp + 0x38], esi
jne 0x41433b
push edx
call ebx
mov edx, dword [ebp + 0x74]
lea esi, [edx + eax*2]
mov dword [ebp + 0x38], esi
cmp esi, edi
mov eax, dword [ebp + 8]
mov ecx, edx
mov dword [ebp + 0x30], eax
je 0x41435e
mov ax, word [edx]
jmp 0x414355
cmp ecx, esi
jae 0x41435e
inc ecx
inc ecx
mov ax, word [ecx]
call fcn.00426083
test al, al
je 0x41434c
sub ecx, edx
sar ecx, 1
cmp byte [ebp + 0x7b], 0
mov dword [ebp + 0x44], ecx
jne 0x41437e
cmp dword [ebp + 4], edi
jne 0x41437e
cmp dword [ebp + 0x28], edi
je 0x414823
jmp 0x414a01
cmp byte [ebp + 0x7b], 1
mov dword [ebp + 0x40], esi
jne 0x4143a2
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x3d
je 0x41439f
cmp word [esi], 0x3c
jne 0x4143a8
cmp cx, 0x3e
jne 0x4143a8
mov dword [ebp + 0x40], eax
cmp byte [ebp + 0x7b], 0
je 0x4143ac
add dword [ebp + 0x40], 2
lea ecx, [ebp + 0x40]
call fcn.00409aad
cmp byte [ebp + 0x3f], 0
mov ebx, dword [ebp + 0x40]
je 0x414453
cmp word [ebx], 0x3f
jne 0x414453
inc ebx
inc ebx
lea ecx, [ebp + 0x7c]
mov byte [ebp + 0x6b], 1
mov dword [ebp + 0x40], ebx
call fcn.00409aad
mov eax, dword [ebp + 8]
cmp eax, dword [ebp + 0x1c]
je 0x4143fe
movzx eax, word [edx]
cmp dword [ebp + 0x1c], eax
je 0x4143f6
cmp dword [ebp + 0xc], eax
je 0x4143f6
cmp dword [ebp + 0x18], eax
jne 0x4143fe
inc edx
inc edx
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x74], edx
cmp dword [ebp + 4], edi
je 0x414434
cmp byte [ebp + 0x3e], 0
jne 0x414434
mov eax, dword [ebp + 0x30]
cmp eax, dword [ebp + 0x18]
je 0x414434
lea ecx, [ebp + 0x74]
call fcn.00409aad
mov edx, dword [ebp + 0x74]
mov ax, word [edx]
cmp ax, 0x30
jb 0x41442b
cmp ax, 0x39
jbe 0x414434
cmp ax, 0x2e
je 0x414434
mov dword [ebp + 0x30], edi
mov eax, dword [ebp + 0x30]
cmp dword [ebp + 0x1c], eax
jne 0x4144d7
lea ecx, [ebp + 0x78]
mov dword [ebp + 0x78], edx
call fcn.00409aad
mov edi, dword [ebp + 0x78]
lea ecx, [esi - 2]
jmp 0x414467
mov byte [ebp + 0x6b], 0
jmp 0x4143dc
mov ax, word [ecx]
call fcn.00426083
test al, al
je 0x41446b
dec ecx
dec ecx
cmp ecx, edi
jae 0x414459
sub ecx, edi
inc ecx
inc ecx
sar ecx, 1
mov esi, ecx
lea ecx, [ebp + 0x78]
mov dword [ebp + 0x78], ebx
call fcn.00409aad
mov ecx, dword [ebp]
mov edx, dword [ebp + 0x78]
add ecx, 0xfffffffe
jmp 0x414497
mov ax, word [ecx]
call fcn.00426083
test al, al
je 0x41449b
dec ecx
dec ecx
cmp ecx, edx
jae 0x414489
sub ecx, edx
inc ecx
inc ecx
sar ecx, 1
mov ebx, ecx
cmp esi, ebx
mov eax, esi
jle 0x4144ab
mov eax, ebx
test eax, eax
jle 0x4144ce
cmp dword [ebp - 0x48], 0
push eax
push edx
push edi
je 0x4144c0
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
jmp 0x4144c6
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x41457b
sub esi, ebx
mov eax, esi
jmp 0x41457b
cmp dword [ebp + 0x18], eax
jne 0x414585
fldz
lea eax, [ebp + 0x20]
fstp qword [ebp + 0x20]
push eax
lea eax, [ebp + 0x74]
fldz
push eax
fstp qword [ebp - 4]
call fcn.0042f391
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x40]
push eax
call fcn.0042f391
fld qword [ebp + 0x20]
add esp, 0x10
call fcn.00467ae4
fld qword [ebp - 4]
mov esi, eax
mov dword [ebp + 0x54], esi
mov dword [ebp + 0x58], edx
call fcn.00467ae4
cmp byte [ebp + 0x7b], 1
mov ecx, eax
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x64], edx
jg 0x4148e5
fild qword [ebp + 0x54]
fld qword [ebp + 0x20]
fucompp
fnstsw ax
test ah, 0x44
jp 0x414553
fild qword [ebp + 0x60]
fld qword [ebp - 4]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x4148e5
fld qword [ebp + 0x20]
fcomp qword [ebp - 4]
fnstsw ax
test ah, 0x41
jne 0x414565
xor eax, eax
inc eax
jmp 0x41457b
fld qword [ebp - 4]
fld qword [ebp + 0x20]
fucompp
fnstsw ax
test ah, 0x44
jp 0x414578
xor eax, eax
jmp 0x41457b
or eax, 0xffffffff
xor ecx, ecx
mov dword [ebp + 0x64], ecx
jmp 0x4148d9
cmp dword [ebp + 0xc], eax
jne 0x4145b2
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x74]
push eax
call fcn.0042f2aa
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x40]
push eax
call fcn.0042f2aa
add esp, 0x10
mov esi, dword [ebp + 0x54]
mov ecx, dword [ebp + 0x60]
jmp 0x4148e5
cmp dword [ebp + 0x44], 3
jl 0x4149f8
lea ecx, [ebp + 0x40]
xor bl, bl
call fcn.00409aad
mov eax, dword [ebp + 0x40]
cmp word [eax], 0x23
jne 0x4145d6
inc eax
inc eax
mov dword [ebp + 0x40], eax
inc bl
mov dword [ebp - 0x24], eax
fldz
lea eax, [ebp - 0x14]
fstp qword [ebp - 0x14]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.0042f391
fld qword [ebp - 0x14]
pop ecx
pop ecx
mov dword [ebp + 0x78], eax
call fcn.00467ae4
push 4
pop edi
cmp dword [ebp + 0x44], edi
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], edx
jne 0x41466b
push edi
push str.MEMB
push dword [ebp + 0x24]
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x4147f9
push dword [ebp + 0x28]
call fcn.0040f7ea
cmp byte [ebp + 0x6b], 0
mov esi, eax
pop ecx
mov dword [ebp + 0x54], esi
mov dword [ebp + 0x58], edx
jne 0x414b1f
cmp dword [ebp + 0x78], 0
jg 0x4145aa
mov esi, 0x80070057
lea ecx, [ebp + 0x14]
call fcn.0042602e
lea ecx, [ebp + 0x34]
call fcn.0042602e
lea ecx, [ebp + 0x48]
call fcn.0042602e
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x6c
leave
ret 0xc
cmp dword [ebp + 0x44], 3
jne 0x4147f9
mov esi, dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
push 3
push 0x47d430
push dword [ebp + 0x24]
call esi
test eax, eax
jne 0x4146ea
xor edi, edi
cmp dword [ebp + 0x28], edi
je 0x414699
call fcn.0040f827
jmp 0x41469e
call fcn.0040f83e
cmp byte [ebp + 0x6b], 0
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
fild qword [ebp - 0xc]
jne 0x414b36
cmp dword [ebp + 0x78], edi
jle 0x414b43
fcom qword [ebp - 0x14]
fnstsw ax
test ah, 0x41
jne 0x4146cb
xor eax, eax
fstp st(0)
inc eax
jmp 0x4146e2
fld qword [ebp - 0x14]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x4146df
xor eax, eax
jmp 0x4146e2
or eax, 0xffffffff
mov dword [ebp + 0x64], edi
jmp 0x4148d7
push 3
push 0x47d428
push dword [ebp + 0x24]
call esi
test eax, eax
jne 0x4147f9
mov edx, dword [ebp + 0x40]
mov ax, word [edx]
push eax
call fcn.0042aa31
add esp, 4
test al, al
je 0x414730
xor ecx, ecx
mov cx, word [edx + 2]
push ecx
call fcn.0042aa31
add esp, 4
test al, al
jne 0x41472e
or cx, 0x20
cmp cx, 0x78
jne 0x414730
mov bl, 2
xor esi, esi
test bl, bl
jne 0x414746
push esi
push edx
call fcn.00411e6e
cdq
pop ecx
pop ecx
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], edx
cmp dword [ebp + 0x64], esi
jl 0x414642
jg 0x41475a
cmp dword [ebp + 0x60], esi
jbe 0x414642
cmp dword [ebp + 0x64], esi
jl 0x41477c
jg 0x414767
cmp dword [ebp + 0x60], 0x61
jb 0x41477c
cmp dword [ebp + 0x64], esi
jg 0x41477c
jl 0x414774
cmp dword [ebp + 0x60], 0x7a
ja 0x41477c
add dword [ebp + 0x60], 0xffffffe0
adc dword [ebp + 0x64], 0xffffffff
push dword [ebp + 0x60]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov cx, ax
and cx, 0x8000
neg cx
mov word [ebp - 0x8e], si
sbb ecx, ecx
and ecx, dword [ebp + 0x60]
cmp ecx, 0x41
mov eax, ecx
cdq
mov dword [ebp + 0x54], eax
mov dword [ebp + 0x58], edx
mov word [ebp - 0x90], cx
jl 0x4147b6
cmp ecx, 0x5a
jle 0x4147d6
cmp ecx, 0x30
jl 0x4147c0
cmp ecx, 0x39
jle 0x4147d6
push ecx
lea eax, [ebp - 0x90]
push str.0x_lX
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
cmp byte [ebp + 0x6b], 0
mov ecx, dword [ebp + 0x50]
lea eax, [ebp - 0x90]
push eax
jne 0x414b4a
push str.PressKey
call fcn.00429dbf
jmp 0x4145a7
mov edx, dword [ebp + 0x74]
cmp word [edx], 0x3a
jne 0x41483e
mov ax, word [edx + 2]
cmp ax, 0x65
jne 0x414816
add edx, edi
mov dword [ebp + 0x74], edx
jmp 0x414a01
cmp ax, 0x70
jne 0x41483e
add edx, edi
mov dword [ebp + 0x74], edx
xor edi, edi
push edi
push edi
push edi
push edi
push edx
call fcn.00412089
xor ecx, ecx
add esp, 0x14
test eax, eax
setg cl
mov esi, ecx
jmp 0x414a6d
mov eax, dword [ebp + 0x24]
mov ax, word [eax]
mov word [ebp - 0x44], ax
xor ebx, ebx
xor eax, eax
push ebx
push dword [ebp + 0x28]
mov word [ebp - 0x42], 0x3a
mov word [ebp - 0x40], 0x5c
mov word [ebp - 0x3e], bx
lea edi, [ebp - 0x3c]
stosd dword es:[edi], eax
lea eax, [ebp - 0x44]
push eax
call fcn.0040af05
add esp, 0xc
cmp byte [ebp + 0x6b], bl
jne 0x414b57
cmp dword [ebp + 0x78], ebx
jle 0x414b5e
shrd eax, edx, 0x14
shr edx, 0x14
mov dword [ebp - 0x18], edx
and dword [ebp - 0x18], 0x80000000
and edx, 0x7fffffff
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x1c], ebx
fild qword [ebp - 0x50]
fild qword [ebp - 0x1c]
fchs
faddp st(1)
fcom qword [ebp - 0x14]
fnstsw ax
test ah, 0x41
jne 0x4148bd
xor eax, eax
fstp st(0)
inc eax
jmp 0x4148d4
fld qword [ebp - 0x14]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x4148d1
xor eax, eax
jmp 0x4148d4
or eax, 0xffffffff
mov dword [ebp + 0x64], ebx
xor ecx, ecx
cdq
mov esi, eax
mov dword [ebp + 0x54], esi
mov dword [ebp + 0x58], edx
mov dword [ebp + 0x60], ecx
mov edi, dword [ebp + 0x38]
mov dx, word [edi]
test dx, dx
jne 0x4148f5
or esi, dword [ebp + 0x58]
jmp 0x414956
cmp dx, 0x3d
jne 0x414914
cmp esi, ecx
jne 0x4149c0
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x58], eax
jne 0x4149c0
jmp 0x4149d2
push 0x3e
pop ebx
cmp dx, bx
jne 0x414923
cmp word [edi + 2], 0x3d
je 0x414975
cmp dx, 0x3c
jne 0x414938
mov ax, word [edi + 2]
cmp ax, 0x3d
je 0x41495f
cmp ax, bx
je 0x414948
cmp dx, 0x21
jne 0x414985
mov ax, word [edi + 2]
cmp ax, 0x3d
jne 0x41495a
cmp esi, ecx
jne 0x4149d2
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x58], eax
je 0x4149c0
jmp 0x4149d2
cmp ax, bx
jne 0x41496f
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x58], eax
jg 0x4149c0
jl 0x4149d2
cmp esi, ecx
ja 0x4149c0
jmp 0x4149d2
cmp ax, 0x3c
jne 0x414985
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x58], eax
jl 0x4149c0
jg 0x4149d2
cmp esi, ecx
jb 0x4149c0
jmp 0x4149d2
cmp dx, bx
jne 0x41499a
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x58], eax
jl 0x4149c0
jg 0x4149d2
cmp esi, ecx
jbe 0x4149c0
jmp 0x4149d2
cmp dx, 0x3c
jne 0x4149b0
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x58], eax
jg 0x4149c0
jl 0x4149d2
cmp esi, ecx
jae 0x4149c0
jmp 0x4149d2
cmp dx, 0x26
jne 0x4149c7
or esi, dword [ebp + 0x58]
je 0x4149c0
or ecx, dword [ebp + 0x64]
jne 0x4149d2
xor esi, esi
jmp 0x414a6d
cmp dx, 0x7c
jne 0x4149da
or esi, dword [ebp + 0x58]
je 0x4149bb
xor esi, esi
inc esi
jmp 0x414a6d
cmp dx, 0x40
jne 0x414642
xor eax, eax
or esi, dword [ebp + 0x58]
je 0x4149ec
inc eax
xor esi, esi
or ecx, dword [ebp + 0x64]
je 0x4149f4
inc esi
xor esi, eax
jmp 0x414a6d
cmp dword [ebp + 4], edi
je 0x414642
push edx
call fcn.0040ca55
pop ecx
push eax
mov dword [ebp + 0x74], eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
mov edx, dword [ebp + 0x74]
lea ecx, [edx + eax*2 - 2]
jle 0x414a7d
mov si, word [ecx]
cmp si, 0x5c
je 0x414a2c
cmp si, 0x2f
jne 0x414a7d
and word [ecx], 0
mov edx, dword [ebp + 0x74]
mov bl, 1
xor esi, esi
test eax, eax
je 0x414a6d
cmp dword [ebp - 0x28], esi
je 0x414a5f
xor eax, eax
mov ax, word [edx]
test ax, ax
je 0x414a5f
cmp word [edx + 2], 0x3a
jne 0x414a5f
push eax
call fcn.004662a2
test eax, eax
pop ecx
je 0x414a6d
mov edx, dword [ebp + 0x74]
movsx eax, bl
push eax
push edx
call fcn.004664cd
pop ecx
pop ecx
mov esi, eax
xor edi, edi
xor eax, eax
cmp dword [ebp - 0x30], edi
je 0x414a81
cmp esi, edi
sete al
jmp 0x414a86
xor bl, bl
jmp 0x414a35
cmp esi, edi
setne al
mov ecx, dword [ebp + 0x10]
mov dword [ebp + 0x2c], eax
add eax, 0x30
push 2
pop esi
mov word [ecx], ax
add ecx, esi
cmp byte [ebp + 0x4f], 0
mov dword [ebp + 0x10], ecx
je 0x414b90
mov edx, dword [ebp + 0x5c]
mov ax, word [edx]
cmp ax, di
je 0x414b66
cmp ax, 0x5b
je 0x414ae8
cmp ax, 0x5d
je 0x414ae8
cmp ax, 0x28
je 0x414ae8
cmp ax, 0x29
je 0x414ae8
cmp ax, 0x26
je 0x414ae8
cmp ax, 0x7c
je 0x414ae8
cmp ax, 0x40
je 0x414ae8
call fcn.00426083
test al, al
je 0x414afd
jmp 0x414af0
mov word [ecx], ax
add ecx, esi
mov dword [ebp + 0x10], ecx
add edx, esi
mov ax, word [edx]
cmp ax, di
mov dword [ebp + 0x5c], edx
jne 0x414ab3
cmp word [edx], di
je 0x414b66
lea ecx, [ebp + 0x14]
call fcn.0042602e
lea ecx, [ebp + 0x34]
call fcn.0042602e
lea ecx, [ebp + 0x48]
call fcn.0042602e
jmp 0x413fcf
push dword [ebp + 0x50]
push edx
push esi
push dword [ebp + 0x7c]
call fcn.0040c93d
add esp, 0x10
mov esi, eax
jmp 0x414647
push dword [ebp + 0x50]
fstp st(0)
push dword [ebp - 8]
push dword [ebp - 0xc]
jmp 0x414b24
fstp st(0)
jmp 0x414642
push dword [ebp + 0x7c]
call fcn.00429dbf
jmp 0x414647
push dword [ebp + 0x50]
push edx
push eax
jmp 0x414b24
or esi, 0xffffffff
jmp 0x414647
mov eax, dword [ebp - 0x38]
mov word [eax - 6], 0x23
mov word [eax - 4], 0x26
add eax, 0xfffffffe
mov word [eax], 0x3d
mov word [ecx], di
lea ecx, [ebp + 0x2c]
push ecx
mov ecx, dword [ebp + 0x50]
push eax
call fcn.0045e046
mov dword [ebp + 0x2c], eax
cmp dword [ebp - 0x20], edi
je 0x414ba0
xor eax, eax
cmp dword [ebp + 0x2c], edi
sete al
mov dword [ebp + 0x2c], eax
mov esi, dword [ebp + 0x2c]
jmp 0x414647