Function at 0x4196df
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
lea ebp, [esp - 0x6c]
sub esp, 0xfc
mov eax, dword [ebp + 0x78]
and eax, 0x10000
mov dword [ebp - 0x48], eax
mov eax, dword [ebp + 0x78]
and eax, 0x20000
mov dword [ebp + 0x44], ecx
xor ecx, ecx
push ebx
xor ebx, ebx
mov dword [ebp - 0x28], eax
movzx eax, byte [ebp + 0x78]
cmp eax, ebx
sete cl
push esi
push edi
mov dword [ebp + 0x24], ebx
mov esi, ecx
xor ecx, ecx
cmp eax, 1
sete cl
mov dword [ebp + 0x2c], ecx
xor ecx, ecx
cmp eax, 2
sete cl
cmp esi, ebx
mov dword [ebp + 4], ecx
jne 0x41973a
cmp dword [ebp + 0x2c], ebx
mov byte [ebp + 0x3b], bl
je 0x41973e
mov byte [ebp + 0x3b], 1
mov edi, dword [ebp + 0x74]
push 1
lea eax, [ebp + 0x74]
push eax
add edi, 0xfffffffe
push 0x4786b0
mov dword [ebp + 0x28], ebx
mov dword [ebp - 0x38], edi
mov dword [ebp + 0xc], edi
call fcn.0042c9b5
movzx eax, al
add esp, 0xc
cmp esi, ebx
mov dword [ebp - 0x20], eax
mov ecx, 0x100002
mov eax, 0x100003
push 0x7c
mov dword [ebp + 8], 0x100001
mov dword [ebp + 0x10], ecx
mov dword [ebp + 0x14], eax
pop edx
je 0x41979a
push 0x24
pop esi
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 0x74]
cmp word [eax], si
mov dword [ebp + 8], esi
mov dword [ebp + 0x10], ecx
jne 0x4197f6
jmp 0x4197e5
cmp dword [ebp + 0x2c], ebx
je 0x4197c3
mov eax, dword [ebp + 0x74]
mov ax, word [eax]
push 0x24
pop esi
cmp ax, si
mov dword [ebp + 8], edx
mov dword [ebp + 0x10], ecx
mov dword [ebp + 0x14], esi
je 0x4197bb
cmp ax, dx
jne 0x4197f6
movzx eax, ax
mov dword [ebp + 0x24], eax
jmp 0x4197f2
cmp dword [ebp + 4], ebx
je 0x4197f6
push 0x24
pop esi
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x24], eax
mov eax, dword [ebp + 0x74]
mov ax, word [eax]
cmp ax, si
push 0x23
pop ecx
mov dword [ebp + 8], esi
mov dword [ebp + 0x10], ecx
jne 0x4197ea
mov dword [ebp + 0x24], esi
jmp 0x4197f2
cmp ax, cx
jne 0x4197f6
mov dword [ebp + 0x24], ecx
add dword [ebp + 0x74], 2
mov eax, dword [ebp + 0x74]
mov dword [ebp + 0x5c], eax
mov ax, word [eax]
cmp ax, 0x5b
sete byte [ebp + 0x53]
cmp byte [ebp + 0x53], 0
je 0x41984f
push 2
pop edx
add dword [ebp + 0x5c], edx
mov word [edi], ax
add edi, 2
xor ecx, ecx
jmp 0x419841
mov eax, ecx
call fcn.004213da
test al, al
je 0x41982d
add dword [ebp + 0x5c], edx
jmp 0x419844
cmp cx, 0x5b
je 0x419839
cmp cx, 0x28
jne 0x41984f
mov word [edi], cx
add edi, edx
add dword [ebp + 0x5c], edx
mov dword [ebp + 0xc], edi
mov eax, dword [ebp + 0x5c]
mov cx, word [eax]
cmp cx, bx
jne 0x41981d
mov eax, dword [ebp + 0x5c]
mov dword [ebp + 0x74], eax
push 1
lea eax, [ebp + 0x74]
push eax
push 0x4786b0
call fcn.0042c9b5
mov edi, dword [ebp + 0x74]
movzx eax, al
add esp, 0xc
cmp byte [ebp + 0x53], 0
mov esi, edi
mov dword [ebp - 0x30], eax
mov dword [ebp + 0x54], ebx
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], ebx
mov dword [ebp + 0x3c], esi
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x30], ebx
mov dword [ebp + 0x18], ebx
mov byte [ebp + 0x7b], 0
je 0x419a46
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x20], eax
mov ax, word [edi]
xor dl, dl
cmp ax, 0x22
mov dword [ebp + 0x5c], edi
mov dword [ebp + 0x34], edi
mov byte [ebp + 0x6b], 0
jne 0x4198ea
xor eax, eax
mov ax, word [edi + 2]
push eax
call fcn.0040e5a7
add esp, 4
test al, al
jne 0x4198cd
mov dword [ebp + 0x20], ebx
push 1
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x34]
push eax
call fcn.004124b4
add esp, 0xc
mov byte [ebp + 0x6b], 1
mov dl, 1
mov dword [ebp + 0x5c], eax
jmp 0x419902
cmp ax, bx
je 0x419905
push eax
call fcn.0040e5a7
add esp, 4
test al, al
jne 0x4198ff
mov dword [ebp + 0x20], ebx
lea eax, [edi + 2]
mov dword [ebp + 0x3c], eax
lea ecx, [ebp + 0x3c]
call fcn.0040e58b
mov esi, dword [ebp + 0x3c]
xor ecx, ecx
jmp 0x4199a3
mov eax, ecx
call fcn.004213da
test al, al
je 0x41993c
cmp dl, 1
jg 0x4199af
lea ecx, [ebp + 0x3c]
inc dl
call fcn.0040e58b
mov esi, dword [ebp + 0x3c]
dec esi
dec esi
jmp 0x41999e
cmp cx, 0x3e
je 0x419a02
cmp cx, 0x3c
je 0x419a02
cmp cx, 0x3d
je 0x419a02
cmp cx, 0x21
je 0x419a02
cmp dword [ebp + 0x20], ebx
je 0x41999a
cmp dword [ebp + 0x2c], ebx
je 0x41999a
cmp cx, 0x26
je 0x419980
cmp cx, 0x7c
je 0x419980
cmp cx, 0x40
jne 0x41999a
mov ax, word [esi + 2]
call fcn.004213da
test al, al
je 0x41999a
mov ax, word [esi - 2]
call fcn.004213da
test al, al
jne 0x4199e3
test dl, dl
jg 0x4199af
inc esi
inc esi
mov dword [ebp + 0x3c], esi
mov cx, word [esi]
cmp cx, bx
jne 0x419917
cmp byte [ebp + 0x6b], 0
jne 0x419a34
push 1
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp + 0x34]
push eax
call fcn.004124b4
add esp, 0xc
cmp byte [ebp + 0x7b], 0
mov dword [ebp + 0x5c], eax
je 0x419a34
sub eax, esi
sar eax, 1
push eax
push esi
lea ecx, [ebp + 0x18]
call fcn.00409ba0
jmp 0x419a7e
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, word [esi]
jne 0x4199fc
mov word [esi], bx
mov edi, dword [ebp + 0x74]
mov esi, eax
mov byte [ebp + 0x7b], 5
jmp 0x419a06
mov byte [ebp + 0x7b], 3
jmp 0x419a06
mov byte [ebp + 0x7b], 1
cmp byte [ebp + 0x7b], 1
lea ecx, [esi + 2]
mov dword [ebp + 0x34], ecx
jne 0x4199b5
mov ax, word [ecx]
cmp ax, 0x3e
je 0x419a2d
cmp ax, 0x3c
je 0x419a2d
cmp ax, 0x3d
je 0x419a2d
cmp ax, 0x21
jne 0x4199b5
inc ecx
inc ecx
mov dword [ebp + 0x34], ecx
jmp 0x4199b5
mov eax, dword [ebp + 0x5c]
cmp word [eax], bx
je 0x419a8a
mov word [eax], bx
inc eax
inc eax
mov dword [ebp + 0x5c], eax
jmp 0x419a87
xor eax, eax
mov ax, word [edi]
jmp 0x419a6a
cmp ax, 0x3e
je 0x419a71
cmp ax, 0x3c
je 0x419a71
cmp ax, 0x3d
je 0x419a71
cmp ax, 0x21
je 0x419a71
inc esi
inc esi
mov ax, word [esi]
cmp ax, bx
jne 0x419a4d
jmp 0x419a8a
push esi
lea ecx, [ebp + 0x18]
mov byte [ebp + 0x7b], 1
call fcn.00424710
mov eax, dword [ebp + 0x18]
mov word [esi], bx
mov dword [ebp + 0x48], eax
mov edi, dword [ebp + 0x74]
mov eax, dword [ebp + 0x44]
cmp byte [eax + 0x4d], 0
jne 0x419b29
cmp byte [eax + 9], 0
jne 0x419b29
mov ecx, dword [ebp + 0x44]
push 1
push ebx
lea eax, [ebp + 0x4c]
push eax
push edi
call fcn.0043dcfa
mov eax, dword [ebp + 0x4c]
push ebx
push ebx
lea ecx, [ebp + 0x4c]
push ecx
mov ecx, dword [ebp + 0x44]
push eax
mov dword [ebp - 0x2c], eax
mov dword [ebp + 0x4c], ebx
call fcn.0043cace
cmp dword [ebp + 0x48], ebx
je 0x419b1f
mov ecx, dword [ebp + 0x44]
push 1
push ebx
lea eax, [ebp + 0x30]
push eax
push dword [ebp + 0x48]
call fcn.0043dcfa
mov eax, dword [ebp + 0x30]
push ebx
push ebx
lea ecx, [ebp + 0x30]
push ecx
mov ecx, dword [ebp + 0x44]
push eax
mov dword [ebp - 0x34], eax
mov dword [ebp + 0x30], ebx
call fcn.0043cace
push dword [ebp + 0x4c]
call fcn.0046176a
pop ecx
push dword [ebp + 0x30]
lea ecx, [ebp + 0x4c]
mov esi, eax
call fcn.004246c0
mov eax, dword [ebp + 0x4c]
lea eax, [eax + esi*2]
lea ecx, [ebp - 0x34]
mov dword [ebp + 0x48], eax
call fcn.00424686
lea ecx, [ebp - 0x2c]
call fcn.00424686
jmp 0x419b6f
mov ecx, dword [ebp + 0x44]
push 1
push ebx
lea eax, [ebp + 0x4c]
push eax
push edi
call fcn.0043dcfa
cmp dword [ebp + 0x48], ebx
je 0x419b6f
mov ecx, dword [ebp + 0x44]
push 1
push ebx
lea eax, [ebp + 0x30]
push eax
push dword [ebp + 0x48]
call fcn.0043dcfa
push dword [ebp + 0x4c]
call fcn.0046176a
pop ecx
push dword [ebp + 0x30]
lea ecx, [ebp + 0x4c]
mov esi, eax
call fcn.004246c0
mov eax, dword [ebp + 0x4c]
lea eax, [eax + esi*2]
mov dword [ebp + 0x48], eax
mov eax, dword [ebp + 0x4c]
push eax
mov dword [ebp + 0x74], eax
call fcn.0040a93c
push dword [ebp + 0x74]
call fcn.0046176a
mov edx, dword [ebp + 0x74]
mov esi, dword [ebp + 0x48]
cmp esi, ebx
pop ecx
lea eax, [edx + eax*2]
pop ecx
mov dword [ebp], eax
mov dword [ebp + 0x20], edx
mov dword [ebp + 0x3c], esi
jne 0x419bab
push edx
call fcn.0046176a
mov edx, dword [ebp + 0x74]
lea esi, [edx + eax*2]
pop ecx
mov dword [ebp + 0x3c], esi
cmp esi, ebx
mov eax, dword [ebp + 0x24]
mov ecx, edx
mov dword [ebp + 0x34], eax
je 0x419bce
mov ax, word [edx]
jmp 0x419bc5
cmp ecx, esi
jae 0x419bce
inc ecx
inc ecx
mov ax, word [ecx]
call fcn.004213da
test al, al
je 0x419bbc
sub ecx, edx
sar ecx, 1
cmp byte [ebp + 0x7b], 0
mov dword [ebp + 0x48], ecx
jne 0x419bee
cmp dword [ebp + 4], ebx
jne 0x419bee
cmp dword [ebp + 0x2c], ebx
je 0x41a08d
jmp 0x41a26f
cmp byte [ebp + 0x7b], 1
mov dword [ebp + 0x40], esi
jne 0x419c12
lea eax, [esi + 2]
mov cx, word [eax]
cmp cx, 0x3d
je 0x419c0f
cmp word [esi], 0x3c
jne 0x419c18
cmp cx, 0x3e
jne 0x419c18
mov dword [ebp + 0x40], eax
cmp byte [ebp + 0x7b], 0
je 0x419c1c
add dword [ebp + 0x40], 2
lea ecx, [ebp + 0x40]
call fcn.0040e58b
cmp byte [ebp + 0x3b], 0
mov ebx, dword [ebp + 0x40]
je 0x419cbd
cmp word [ebx], 0x3f
jne 0x419cbd
inc ebx
inc ebx
lea ecx, [ebp + 0x7c]
mov byte [ebp + 0x6b], 1
mov dword [ebp + 0x40], ebx
call fcn.0040e58b
mov edi, dword [ebp + 8]
cmp dword [ebp + 0x24], edi
je 0x419c6d
movzx eax, word [edx]
cmp edi, eax
je 0x419c65
cmp dword [ebp + 0x10], eax
je 0x419c65
cmp dword [ebp + 0x14], eax
jne 0x419c6d
inc edx
inc edx
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x74], edx
cmp dword [ebp + 4], 0
je 0x419c9f
mov eax, dword [ebp + 0x34]
cmp eax, dword [ebp + 0x14]
je 0x419c9f
lea ecx, [ebp + 0x74]
call fcn.0040e58b
mov edx, dword [ebp + 0x74]
mov ax, word [edx]
cmp ax, 0x30
jb 0x419c95
cmp ax, 0x39
jbe 0x419c9f
cmp ax, 0x2e
je 0x419c9f
and dword [ebp + 0x34], 0
mov eax, dword [ebp + 0x34]
cmp edi, eax
jne 0x419d41
lea ecx, [ebp + 0x78]
mov dword [ebp + 0x78], edx
call fcn.0040e58b
mov edi, dword [ebp + 0x78]
lea ecx, [esi - 2]
jmp 0x419cd1
mov byte [ebp + 0x6b], 0
jmp 0x419c4c
mov ax, word [ecx]
call fcn.004213da
test al, al
je 0x419cd5
dec ecx
dec ecx
cmp ecx, edi
jae 0x419cc3
sub ecx, edi
inc ecx
inc ecx
sar ecx, 1
mov esi, ecx
lea ecx, [ebp + 0x78]
mov dword [ebp + 0x78], ebx
call fcn.0040e58b
mov ecx, dword [ebp]
mov edx, dword [ebp + 0x78]
add ecx, 0xfffffffe
jmp 0x419d01
mov ax, word [ecx]
call fcn.004213da
test al, al
je 0x419d05
dec ecx
dec ecx
cmp ecx, edx
jae 0x419cf3
sub ecx, edx
inc ecx
inc ecx
sar ecx, 1
mov ebx, ecx
cmp esi, ebx
mov eax, esi
jle 0x419d15
mov eax, ebx
test eax, eax
jle 0x419d38
cmp dword [ebp - 0x48], 0
push eax
push edx
push edi
je 0x419d2a
call dword [sym.imp.SHLWAPI.dll_StrCmpNW]
jmp 0x419d30
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x419de5
sub esi, ebx
mov eax, esi
jmp 0x419de5
cmp dword [ebp + 0x14], eax
jne 0x419def
fldz
lea eax, [ebp + 0x1c]
fstp qword [ebp + 0x1c]
push eax
lea eax, [ebp + 0x74]
fldz
push eax
fstp qword [ebp - 4]
call fcn.0042f3ef
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x40]
push eax
call fcn.0042f3ef
fld qword [ebp + 0x1c]
add esp, 0x10
call fcn.00462ab4
fld qword [ebp - 4]
mov esi, eax
mov dword [ebp + 0x54], esi
mov dword [ebp + 0x58], edx
call fcn.00462ab4
cmp byte [ebp + 0x7b], 1
mov ecx, eax
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x64], edx
jg 0x41a14f
fild qword [ebp + 0x54]
fld qword [ebp + 0x1c]
fucompp
fnstsw ax
test ah, 0x44
jp 0x419dbd
fild qword [ebp + 0x60]
fld qword [ebp - 4]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x41a14f
fld qword [ebp + 0x1c]
fcomp qword [ebp - 4]
fnstsw ax
test ah, 0x41
jne 0x419dcf
xor eax, eax
inc eax
jmp 0x419de5
fld qword [ebp - 4]
fld qword [ebp + 0x1c]
fucompp
fnstsw ax
test ah, 0x44
jp 0x419de2
xor eax, eax
jmp 0x419de5
or eax, 0xffffffff
xor ecx, ecx
mov dword [ebp + 0x64], ecx
jmp 0x41a143
cmp dword [ebp + 0x10], eax
jne 0x419e1c
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x74]
push eax
call fcn.0042f308
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp + 0x40]
push eax
call fcn.0042f308
add esp, 0x10
mov esi, dword [ebp + 0x54]
mov ecx, dword [ebp + 0x60]
jmp 0x41a14f
cmp dword [ebp + 0x48], 3
jl 0x41a265
lea ecx, [ebp + 0x40]
xor bl, bl
call fcn.0040e58b
mov eax, dword [ebp + 0x40]
cmp word [eax], 0x23
jne 0x419e40
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.0042f3ef
fld qword [ebp - 0x14]
pop ecx
pop ecx
mov dword [ebp + 0x78], eax
call fcn.00462ab4
push 4
pop esi
cmp dword [ebp + 0x48], esi
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], edx
jne 0x419ed5
push esi
push str.MEMB
push dword [ebp + 0x20]
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x41a063
push dword [ebp + 0x2c]
call fcn.0040e8d9
cmp byte [ebp + 0x6b], 0
mov esi, eax
pop ecx
mov dword [ebp + 0x54], esi
mov dword [ebp + 0x58], edx
jne 0x41a3af
cmp dword [ebp + 0x78], 0
jg 0x419e14
mov esi, 0x80070057
lea ecx, [ebp + 0x18]
call fcn.00424686
lea ecx, [ebp + 0x30]
call fcn.00424686
lea ecx, [ebp + 0x4c]
call fcn.00424686
pop edi
mov eax, esi
pop esi
pop ebx
add ebp, 0x6c
leave
ret 0xc
cmp dword [ebp + 0x48], 3
jne 0x41a063
mov edi, dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
push 3
push 0x47869c
push dword [ebp + 0x20]
call edi
test eax, eax
jne 0x419f54
xor edi, edi
cmp dword [ebp + 0x2c], edi
je 0x419f03
call fcn.0040e916
jmp 0x419f08
call fcn.0040e92d
cmp byte [ebp + 0x6b], 0
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
fild qword [ebp - 0xc]
jne 0x41a3c6
cmp dword [ebp + 0x78], edi
jle 0x41a3d3
fcom qword [ebp - 0x14]
fnstsw ax
test ah, 0x41
jne 0x419f35
xor eax, eax
fstp st(0)
inc eax
jmp 0x419f4c
fld qword [ebp - 0x14]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x419f49
xor eax, eax
jmp 0x419f4c
or eax, 0xffffffff
mov dword [ebp + 0x64], edi
jmp 0x41a141
push 3
push 0x478694
push dword [ebp + 0x20]
call edi
test eax, eax
jne 0x41a063
mov edx, dword [ebp + 0x40]
mov ax, word [edx]
push eax
call fcn.0040e5a7
add esp, 4
test al, al
je 0x419f9a
xor ecx, ecx
mov cx, word [edx + 2]
push ecx
call fcn.0040e5a7
add esp, 4
test al, al
jne 0x419f98
or cx, 0x20
cmp cx, 0x78
jne 0x419f9a
mov bl, 2
xor esi, esi
test bl, bl
jne 0x419fb0
push esi
push edx
call fcn.00410917
cdq
pop ecx
pop ecx
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], edx
cmp dword [ebp + 0x64], esi
jl 0x419eac
jg 0x419fc4
cmp dword [ebp + 0x60], esi
jbe 0x419eac
cmp dword [ebp + 0x64], esi
jl 0x419fe6
jg 0x419fd1
cmp dword [ebp + 0x60], 0x61
jb 0x419fe6
cmp dword [ebp + 0x64], esi
jg 0x419fe6
jl 0x419fde
cmp dword [ebp + 0x60], 0x7a
ja 0x419fe6
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 0x41a020
cmp ecx, 0x5a
jle 0x41a040
cmp ecx, 0x30
jl 0x41a02a
cmp ecx, 0x39
jle 0x41a040
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 + 0x44]
lea eax, [ebp - 0x90]
push eax
jne 0x41a3da
push str.PressKey
call fcn.00428e1b
jmp 0x419e11
mov edx, dword [ebp + 0x74]
cmp word [edx], 0x3a
jne 0x41a0a8
mov ax, word [edx + 2]
cmp ax, 0x65
jne 0x41a080
add edx, esi
mov dword [ebp + 0x74], edx
jmp 0x41a26f
cmp ax, 0x70
jne 0x41a0a8
add edx, esi
mov dword [ebp + 0x74], edx
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
push edx
call fcn.00410b32
xor ecx, ecx
add esp, 0x14
test eax, eax
setg cl
mov esi, ecx
jmp 0x41a2ff
mov eax, dword [ebp + 0x20]
mov ax, word [eax]
mov word [ebp - 0x44], ax
xor ebx, ebx
xor eax, eax
push ebx
push dword [ebp + 0x2c]
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.0040a998
add esp, 0xc
cmp byte [ebp + 0x6b], bl
jne 0x41a3e7
cmp dword [ebp + 0x78], ebx
jle 0x41a3ee
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 0x41a127
xor eax, eax
fstp st(0)
inc eax
jmp 0x41a13e
fld qword [ebp - 0x14]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x41a13b
xor eax, eax
jmp 0x41a13e
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 + 0x3c]
mov dx, word [edi]
test dx, dx
jne 0x41a15f
or esi, dword [ebp + 0x58]
jmp 0x41a1be
push 0x3d
pop ebx
cmp dx, bx
jne 0x41a180
cmp esi, ecx
jne 0x41a22a
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x58], eax
jne 0x41a22a
jmp 0x41a23c
cmp dx, 0x3e
jne 0x41a18c
cmp word [edi + 2], bx
je 0x41a1de
cmp dx, 0x3c
jne 0x41a1a1
mov ax, word [edi + 2]
cmp ax, bx
je 0x41a1c8
cmp ax, 0x3e
je 0x41a1b0
cmp dx, 0x21
jne 0x41a1ee
mov ax, word [edi + 2]
cmp ax, bx
jne 0x41a1c2
cmp esi, ecx
jne 0x41a23c
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x58], eax
je 0x41a22a
jmp 0x41a23c
cmp ax, 0x3e
jne 0x41a1d8
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x58], eax
jg 0x41a22a
jl 0x41a23c
cmp esi, ecx
ja 0x41a22a
jmp 0x41a23c
cmp ax, 0x3c
jne 0x41a1ee
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x58], eax
jl 0x41a22a
jg 0x41a23c
cmp esi, ecx
jb 0x41a22a
jmp 0x41a23c
cmp dx, 0x3e
jne 0x41a204
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x58], eax
jl 0x41a22a
jg 0x41a23c
cmp esi, ecx
jbe 0x41a22a
jmp 0x41a23c
cmp dx, 0x3c
jne 0x41a21a
mov eax, dword [ebp + 0x64]
cmp dword [ebp + 0x58], eax
jg 0x41a22a
jl 0x41a23c
cmp esi, ecx
jae 0x41a22a
jmp 0x41a23c
cmp dx, 0x26
jne 0x41a231
or esi, dword [ebp + 0x58]
je 0x41a22a
or ecx, dword [ebp + 0x64]
jne 0x41a23c
xor esi, esi
jmp 0x41a2ff
cmp dx, 0x7c
jne 0x41a244
or esi, dword [ebp + 0x58]
je 0x41a225
xor esi, esi
inc esi
jmp 0x41a2ff
cmp dx, 0x40
jne 0x419eac
xor eax, eax
or esi, dword [ebp + 0x58]
je 0x41a256
inc eax
xor esi, esi
or ecx, dword [ebp + 0x64]
je 0x41a25e
inc esi
xor esi, eax
jmp 0x41a2ff
cmp dword [ebp + 4], 0
je 0x419eac
push edx
call fcn.00412d51
push eax
mov dword [ebp + 0x74], eax
call fcn.0046176a
mov edi, dword [ebp + 0x74]
pop ecx
pop ecx
mov ecx, eax
test ecx, ecx
jle 0x41a2a1
xor eax, eax
mov ax, word [edi + ecx*2 - 2]
push eax
call fcn.004096d3
add esp, 4
test al, al
je 0x41a2a1
mov bl, 1
jmp 0x41a2c1
xor bl, bl
jmp 0x41a2c7
xor eax, eax
lea edx, [edi + ecx*2]
mov ax, word [edx]
push eax
call fcn.004096d3
add esp, 4
test al, al
je 0x41a2c4
and word [edx], 0
mov edi, dword [ebp + 0x74]
dec ecx
jns 0x41a2a5
xor ecx, ecx
inc ecx
xor esi, esi
test ecx, ecx
je 0x41a2ff
cmp dword [ebp - 0x28], esi
je 0x41a2f1
xor eax, eax
mov ax, word [edi]
test ax, ax
je 0x41a2f1
cmp word [edi + 2], 0x3a
jne 0x41a2f1
push eax
call fcn.004612e9
test eax, eax
pop ecx
je 0x41a2ff
mov edi, dword [ebp + 0x74]
movsx eax, bl
push eax
push edi
call fcn.00461514
pop ecx
pop ecx
mov esi, eax
xor edi, edi
xor eax, eax
cmp dword [ebp - 0x30], edi
je 0x41a30f
cmp esi, edi
sete al
jmp 0x41a314
cmp esi, edi
setne al
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 0x28], eax
add eax, 0x30
push 2
pop esi
mov word [ecx], ax
add ecx, esi
cmp byte [ebp + 0x53], 0
mov dword [ebp + 0xc], ecx
je 0x41a420
mov edx, dword [ebp + 0x5c]
mov ax, word [edx]
cmp ax, di
je 0x41a3f6
cmp ax, 0x5b
je 0x41a376
cmp ax, 0x5d
je 0x41a376
cmp ax, 0x28
je 0x41a376
cmp ax, 0x29
je 0x41a376
cmp ax, 0x26
je 0x41a376
cmp ax, 0x7c
je 0x41a376
cmp ax, 0x40
je 0x41a376
call fcn.004213da
test al, al
je 0x41a38b
jmp 0x41a37e
mov word [ecx], ax
add ecx, esi
mov dword [ebp + 0xc], ecx
add edx, esi
mov ax, word [edx]
cmp ax, di
mov dword [ebp + 0x5c], edx
jne 0x41a341
cmp word [edx], di
je 0x41a3f6
lea ecx, [ebp + 0x18]
call fcn.00424686
lea ecx, [ebp + 0x30]
call fcn.00424686
lea ecx, [ebp + 0x4c]
call fcn.00424686
xor ebx, ebx
jmp 0x41984f
push dword [ebp + 0x44]
push edx
push esi
push dword [ebp + 0x7c]
call fcn.0040ba9f
add esp, 0x10
mov esi, eax
jmp 0x419eb1
push dword [ebp + 0x44]
fstp st(0)
push dword [ebp - 8]
push dword [ebp - 0xc]
jmp 0x41a3b4
fstp st(0)
jmp 0x419eac
push dword [ebp + 0x7c]
call fcn.00428e1b
jmp 0x419eb1
push dword [ebp + 0x44]
push edx
push eax
jmp 0x41a3b4
or esi, 0xffffffff
jmp 0x419eb1
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 + 0x28]
push ecx
mov ecx, dword [ebp + 0x44]
push eax
call fcn.00455f3c
mov dword [ebp + 0x28], eax
cmp dword [ebp - 0x20], edi
je 0x41a430
xor eax, eax
cmp dword [ebp + 0x28], edi
sete al
mov dword [ebp + 0x28], eax
mov esi, dword [ebp + 0x28]
jmp 0x419eb1