Function at 0x436440
Capabilities:
Log keystrokes
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x74
push ebx
push esi
push edi
push dword [ebp + 0x24]
mov ebx, ecx
push dword [ebp + 0x20]
mov dword [esp + 0x18], ebx
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
call fcn.00445950
mov dword [esp + 0x14], eax
test eax, eax
je 0x436685
mov esi, dword [ebp + 0x10]
xor dl, dl
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x18], 2
mov byte [esp + 0xc], dl
movzx eax, word [esi]
mov byte [esp + 0xd], 1
mov dword [esp + 0x28], VariantInit
mov dword [esp + 0x2c], VariantInit
test ax, ax
je 0x4365ba
mov bl, byte [esp + 0xd]
mov ecx, eax
nop word [eax + eax]
movzx edi, cx
test edi, 0xffffff80
je 0x4364bf
xor eax, eax
jmp 0x4364ca
push 2
push edi
call fcn.0049bd84
add esp, 8
mov ecx, edi
and ecx, 0xffffffdf
test eax, eax
cmove ecx, edi
add ecx, 0xffffffbc
cmp ecx, 0x15
ja case.0x4364e7.69
movzx eax, byte [ecx + 0x436a48]
jmp dword [eax*4 + 0x436a2c]
mov dword [esp + 0x18], 0
jmp case.0x4364e7.69
mov dword [esp + 0x18], 1
jmp case.0x4364e7.69
movzx eax, word [esi + 2]
lea edi, [esi + 2]
mov ecx, eax
mov dword [esp + 0x24], ecx
test eax, 0xffffff80
je 0x436520
xor eax, eax
jmp 0x43652f
push 2
push eax
call fcn.0049bd84
mov ecx, dword [esp + 0x2c]
add esp, 8
and ecx, 0xffdf
test eax, eax
movzx edx, cx
mov ecx, dword [esp + 0x24]
movzx ecx, cx
cmove edx, ecx
movzx eax, bl
movzx edx, dx
xor ecx, ecx
cmp edx, 0x41
cmovne ecx, eax
cmovne edi, esi
mov bl, cl
mov esi, edi
jmp case.0x4364e7.69
push 3
push 0x4d07f4
push esi
call fcn.0049b726
add esp, 0xc
test eax, eax
jne case.0x4364e7.69
mov dl, 1
add esi, 4
mov byte [esp + 0xc], dl
jmp 0x43659d
lea eax, [esi + 2]
push eax
call fcn.0049ccd5
mov dword [esp + 0x2c], eax
jmp 0x436596
lea eax, [esi + 2]
push eax
call fcn.0049ccd5
mov dword [esp + 0x30], eax
add esp, 4
mov dl, byte [esp + 0xc]
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
test ax, ax
jne 0x4364b0
mov byte [esp + 0xd], bl
mov ebx, dword [ebp + 0x14]
test dl, dl
jne 0x4365d1
mov ecx, dword [esp + 0x14]
mov edx, ebx
call fcn.00481780
mov dword [esp + 0x24], eax
test eax, eax
jne 0x436753
push 0x30
lea eax, [esp + 0x54]
push 0
push eax
call fcn.004971b0
add esp, 0xc
mov byte [esp + 0x78], 1
movzx eax, word [ebx]
mov esi, eax
cmp eax, 0x20
je 0x4365f6
cmp eax, 9
jne 0x4365fb
add ebx, 2
jmp 0x4365e7
test eax, 0xffffff80
je 0x436606
xor eax, eax
jmp 0x436611
push 2
push eax
call fcn.0049bd84
add esp, 8
mov ecx, esi
and ecx, 0xffdf
test eax, eax
movzx edx, cx
mov ecx, esi
cmove edx, ecx
cmp dx, 0x58
jne case.0x436869.3
cmp word [ebx + 2], 0
lea edi, [ebx + 2]
je case.0x436869.3
mov ecx, edi
call fcn.0040f490
mov dword [esp + 0x50], eax
movzx eax, word [edi]
test ax, ax
je case.0x436869.3
mov esi, eax
nop dword [eax + eax]
mov ecx, 0x4ca844
mov edx, 0x20
nop word [eax + eax]
cmp si, dx
je 0x4366b6
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x436660
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x436650
mov ebx, dword [esp + 0x10]
mov eax, dword [0x4d98d8]
test byte [eax + 0x100], 1
jne 0x436a10
mov ecx, dword [0x4dc408]
push 1
push 0
push 0xffffffffffffffff
push 0x4ca34c
call fcn.0047faa0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
lea esi, [edi + 2]
nop dword [eax]
movzx eax, word [esi]
cmp eax, 0x20
je 0x4366cd
cmp eax, 9
jne 0x4366d2
add esi, 2
jmp 0x4366c0
test ax, ax
je case.0x436869.3
push eax
call fcn.004a1397
add esp, 4
cmp ax, 0x59
jne case.0x436869.3
cmp word [esi + 2], 0
lea ecx, [esi + 2]
je case.0x436869.3
call fcn.0040f490
mov ebx, dword [esp + 0x14]
mov esi, dword [sym.imp.USER32.dll_GetWindowRect]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x40]
push eax
push ebx
call esi
mov eax, dword [esp + 0x40]
add dword [esp + 0x50], eax
mov eax, dword [esp + 0x44]
add dword [esp + 0x54], eax
lea eax, [esp + 0x50]
push eax
push 0x43e250
push ebx
call dword [sym.imp.USER32.dll_EnumChildWindows]
mov eax, dword [esp + 0x68]
test eax, eax
cmovne ebx, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x28]
push eax
push ebx
call dword [sym.imp.USER32.dll_ScreenToClient]
jmp 0x43675d
mov ebx, dword [esp + 0x24]
mov esi, dword [sym.imp.USER32.dll_GetWindowRect]
mov edi, dword [ebp + 0xc]
cmp edi, 1
jl 0x4369f1
mov ecx, dword [esp + 0x28]
cmp ecx, 0x80000000
je 0x436780
mov eax, dword [esp + 0x2c]
cmp eax, 0x80000000
jne 0x4367cb
lea eax, [esp + 0x30]
push eax
push ebx
call esi
test eax, eax
je case.0x436869.3
mov ecx, dword [esp + 0x28]
cmp ecx, 0x80000000
jne 0x4367af
mov eax, dword [esp + 0x38]
sub eax, dword [esp + 0x30]
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x2c]
cmp eax, 0x80000000
jne 0x4367cb
mov eax, dword [esp + 0x3c]
sub eax, dword [esp + 0x34]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x2c], eax
movzx edx, ax
shl edx, 0x10
movzx eax, cx
or edx, eax
mov dword [esp + 0x1c], 0
mov al, byte [ebp + 8]
mov dword [esp + 0x20], edx
cmp al, 0x9f
je 0x4367f1
cmp al, 0x9e
je 0x4367f1
xor ah, ah
jmp 0x4367f3
mov ah, 1
mov byte [esp + 0xc], ah
cmp al, 0x9c
je 0x436803
cmp al, 0x9d
je 0x436803
xor cl, cl
jmp 0x436805
mov cl, 1
mov byte [esp + 0xe], cl
test ah, ah
je 0x436834
cmp al, 0x9f
mov esi, 0xffffff88
mov eax, dword [esp + 0x24]
mov ecx, 0x78
cmove esi, ecx
mov dword [esp + 0x10], eax
imul esi, edi
mov edi, 0x20a
shl esi, 0x10
jmp 0x4368d5
test cl, cl
je 0x43685c
cmp al, 0x9c
mov esi, 0x78
mov eax, dword [esp + 0x24]
mov ecx, 0xffffff88
cmove esi, ecx
mov dword [esp + 0x10], eax
imul esi, edi
mov edi, 0x20e
shl esi, 0x10
jmp 0x4368d5
movzx eax, al
dec eax
cmp eax, 5
ja case.0x436869.3
jmp dword [eax*4 + 0x436a60]
mov edi, 0x201
mov dword [esp + 0x10], 0x202
mov esi, 1
jmp 0x4368d5
mov edi, 0x204
mov dword [esp + 0x10], 0x205
mov esi, 2
jmp 0x4368d5
mov edi, 0x207
mov dword [esp + 0x10], 0x208
mov esi, 0x10
jmp 0x4368d5
mov dword [esp + 0x1c], 0x10000
mov esi, 0x10020
jmp 0x4368c8
mov dword [esp + 0x1c], 0x20000
mov esi, 0x20040
mov dword [esp + 0x10], 0x20c
mov edi, 0x20b
cmp byte [esp + 0xd], 0
mov byte [esp + 0xf], 0
je 0x436933
push 0
push dword [esp + 0x18]
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov dword [esp + 0x24], eax
test eax, eax
je 0x436923
cmp eax, dword [0x4ddc88]
je 0x436923
mov ecx, dword [esp + 0x14]
call fcn.00481c20
test al, al
jne 0x436923
push 1
push dword [esp + 0x28]
push dword [0x4ddc88]
call dword [sym.imp.USER32.dll_AttachThreadInput]
test eax, eax
setne byte [esp + 0xf]
push dword [esp + 0x14]
call dword [sym.imp.USER32.dll_SetActiveWindow]
mov edx, dword [esp + 0x20]
jmp 0x43693b
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
cmp byte [esp + 0xc], 0
jne 0x4369b7
cmp byte [esp + 0xe], 0
jne 0x4369b7
mov eax, dword [sym.imp.USER32.dll_PostMessageW]
nop
cmp dword [esp + 0x18], 1
je 0x436979
push edx
push esi
push edi
push ebx
call eax
mov eax, dword [0x4d98d8]
mov ecx, dword [eax + 0x58]
cmp ecx, 0xffffffff
jle 0x436974
mov edx, 1
call fcn.004015d0
mov eax, dword [sym.imp.USER32.dll_PostMessageW]
cmp dword [esp + 0x18], 0
je 0x4369a6
push dword [esp + 0x20]
push dword [esp + 0x20]
push dword [esp + 0x18]
push ebx
call eax
mov eax, dword [0x4d98d8]
mov ecx, dword [eax + 0x58]
cmp ecx, 0xffffffff
jle 0x4369a6
mov edx, 1
call fcn.004015d0
sub dword [ebp + 0xc], 1
mov edx, dword [esp + 0x20]
mov eax, dword [sym.imp.USER32.dll_PostMessageW]
jne 0x436950
jmp 0x4369d8
push edx
push esi
push edi
push ebx
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, dword [0x4d98d8]
mov ecx, dword [eax + 0x58]
cmp ecx, 0xffffffff
jle 0x4369d8
mov edx, 1
call fcn.004015d0
cmp byte [esp + 0xf], 0
je 0x4369f1
push 0
push dword [esp + 0x28]
push dword [0x4ddc88]
call dword [sym.imp.USER32.dll_AttachThreadInput]
mov ecx, dword [0x4dc408]
push 1
push 0
push 0xffffffffffffffff
push 0x4b716c
call fcn.0047faa0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
push 0x4b70dc
push 0
push 0x4ca34c
mov ecx, ebx
call fcn.0042fd40
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20