Function at 0x43ebe0
Capabilities:
Log keystrokes via polling
Open clipboard
Read clipboard data

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe48
push ebx
push esi
push edi
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
push 0xfffffffffffffff4
mov eax, dword [ebp + 8]
push eax
call sub.USER32.DLL_GetWindowLongA
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xce5
jne 0x43ec12
mov dword [ebp - 8], 2
jmp 0x43ec2b
cmp dword [ebp - 0x10], 0xce6
jne 0x43ec24
mov dword [ebp - 8], 4
jmp 0x43ec2b
mov dword [ebp - 8], 1
mov edx, dword [0x4e3b68]
mov ecx, dword [edx*4 + 0x4d48f4]
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
sar eax, 1
jns 0x43ec45
adc eax, 0
add eax, dword [ebp - 0x14]
mov edx, dword [0x4e3b68]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x178]
mov ecx, dword [edx*4 + 0x4d4920]
mov dword [ebp - 0x1c], ecx
push eax
mov edx, dword [ebp + 8]
push edx
call sub.USER32.DLL_GetClientRect
mov eax, dword [ebp - 0x170]
mov edx, dword [ebp - 0x18]
sub eax, dword [ebp - 0x178]
shl edx, 2
add eax, 0xfffffffc
mov ecx, edx
cdq
idiv ecx
shl eax, 2
mov dword [ebp - 0xc], eax
mov eax, esi
cmp eax, 0x102
jg 0x43eccf
je 0x43f3d2
cmp eax, 0xf
jg 0x43ecb6
je 0x43f6f9
sub eax, 7
je 0x43ed0e
dec eax
je 0x43ee05
jmp 0x43ff0b
sub eax, 0x87
je 0x43f05f
sub eax, 0x79
je 0x43f069
jmp 0x43ff0b
cmp eax, 0x202
jg 0x43ecf3
je 0x43efc0
sub eax, 0x200
je 0x43ee26
dec eax
je 0x43ee34
jmp 0x43ff0b
sub eax, 0x204
je 0x43efd8
sub eax, 0xfe
je 0x43f64d
jmp 0x43ff0b
mov ebx, dword [ebp - 8]
mov eax, dword [0x4e4dd0]
dec ebx
not ebx
cmp eax, dword [0x4e4dd4]
jl 0x43ed5e
and dword [0x4e4dd0], ebx
jmp 0x43ed32
mov edx, dword [ebp - 8]
sub dword [0x4e4dd0], edx
mov ecx, dword [0x4e4dd0]
cmp ecx, dword [0x4e4dc8]
jg 0x43ed29
cmp dword [0x4e4dd0], 0
jge 0x43ed50
xor eax, eax
mov dword [0x4e4dd0], eax
mov edx, dword [0x4e4dd0]
mov dword [0x4e4dd4], edx
jmp 0x43edb9
mov ecx, dword [0x4e4dd4]
add ecx, dword [ebp - 8]
dec ecx
and ecx, ebx
mov dword [0x4e4dd4], ecx
jmp 0x43ed7b
mov eax, dword [ebp - 8]
sub dword [0x4e4dd4], eax
mov edx, dword [0x4e4dd4]
cmp edx, dword [0x4e4dc8]
jg 0x43ed72
cmp dword [0x4e4dd4], 0
jge 0x43ed9a
xor ecx, ecx
mov dword [0x4e4dd4], ecx
and dword [0x4e4dd0], ebx
mov eax, dword [0x4e4dd4]
cmp eax, dword [0x4e4dd0]
jge 0x43edb9
mov edx, dword [0x4e4dd4]
mov dword [0x4e4dd0], edx
and dword [0x4e4dd8], ebx
jmp 0x43edca
mov ecx, dword [ebp - 8]
sub dword [0x4e4dd8], ecx
mov eax, dword [0x4e4dd8]
cmp eax, dword [0x4e4dc8]
jg 0x43edc1
cmp dword [0x4e4dd8], 0
jge 0x43ede8
xor edx, edx
mov dword [0x4e4dd8], edx
mov dword [0x4e4ddc], 0xffffffff
mov ecx, dword [ebp - 0x10]
mov dword [0x4e4bc4], ecx
call fcn.0043bfb8
jmp 0x43ff1c
mov eax, dword [0x4e4bc4]
cmp eax, dword [ebp - 0x10]
jne 0x43ee1c
xor edx, edx
mov dword [0x4e4bc4], edx
call sub.USER32.DLL_DestroyCaret
call fcn.0043bfb8
jmp 0x43ff1c
call sub.USER32.DLL_GetCapture
cmp eax, dword [ebp + 8]
jne 0x43ff1c
cmp dword [ebp - 0x10], 0xce5
je 0x43ee46
cmp dword [ebp - 0x10], 0xce6
jne 0x43ee86
mov ax, word [ebp + 0x14]
mov edx, dword [ebp - 0x14]
and ax, 0xffff
movsx eax, ax
sar edx, 1
jns 0x43ee5b
adc edx, 0
add eax, edx
mov ecx, dword [ebp - 0x14]
shl ecx, 0xa
add eax, ecx
add eax, 0xfffffffd
cdq
idiv dword [ebp - 0x14]
mov ebx, eax
add ebx, 0xfffffc00
imul ebx, dword [ebp - 8]
add ebx, dword [0x4e4dcc]
mov dword [0x4e4dd8], ebx
jmp 0x43eeff
mov ax, word [ebp + 0x14]
mov edx, dword [ebp - 0x14]
and ax, 0xffff
movsx eax, ax
lea edx, [edx + edx*2]
test edx, edx
jns 0x43ee9e
add edx, 3
sar edx, 2
mov ecx, dword [ebp - 0x18]
shl ecx, 0xa
add eax, edx
add eax, ecx
add eax, 0xfffffffd
cdq
idiv dword [ebp - 0x18]
mov ebx, eax
add ebx, 0xfffffc00
test ebx, ebx
jge 0x43eec2
xor ebx, ebx
jmp 0x43eecb
cmp ebx, dword [ebp - 0xc]
jl 0x43eecb
mov ebx, dword [ebp - 0xc]
dec ebx
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp - 0x1c]
shr eax, 0x10
movsx eax, ax
shl edx, 0xa
add ebx, dword [0x4e4dcc]
add eax, edx
add eax, 0xfffffffd
cdq
idiv dword [ebp - 0x1c]
add eax, 0xfffffc00
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
imul dword [ebp - 0xc]
add ebx, eax
mov dword [0x4e4dd8], ebx
cmp dword [0x4e4dd8], 0
jge 0x43ef12
xor ecx, ecx
mov dword [0x4e4dd8], ecx
jmp 0x43ef31
mov eax, dword [0x4e4dc8]
cmp eax, dword [0x4e4dd8]
jge 0x43ef31
mov edx, dword [ebp - 8]
dec edx
not edx
and edx, dword [0x4e4dc8]
mov dword [0x4e4dd8], edx
cmp esi, 0x201
jne 0x43ef65
mov ecx, dword [0x4e4dd8]
mov dword [0x4e4ddc], ecx
mov dword [0x4e4dd4], ecx
mov dword [0x4e4dd0], ecx
mov eax, dword [ebp + 8]
push eax
call sub.USER32.DLL_SetFocus
mov edx, dword [ebp + 8]
push edx
call sub.USER32.DLL_SetCapture
jmp 0x43efb6
cmp dword [0x4e4ddc], 0xffffffff
jne 0x43ef78
mov eax, dword [0x4e4dd8]
mov dword [0x4e4ddc], eax
mov edx, dword [0x4e4ddc]
cmp edx, dword [0x4e4dd8]
jle 0x43ef9e
mov ecx, dword [0x4e4dd8]
mov dword [0x4e4dd0], ecx
mov eax, dword [0x4e4ddc]
mov dword [0x4e4dd4], eax
jmp 0x43efb6
mov edx, dword [0x4e4ddc]
mov dword [0x4e4dd0], edx
mov ecx, dword [0x4e4dd8]
mov dword [0x4e4dd4], ecx
call fcn.0043bfb8
jmp 0x43ff1c
call sub.USER32.DLL_GetCapture
cmp eax, dword [ebp + 8]
jne 0x43ff1c
call sub.USER32.DLL_ReleaseCapture
jmp 0x43ff1c
mov eax, dword [ebp + 8]
push eax
call sub.USER32.DLL_OpenClipboard
push 1
call sub.USER32.DLL_GetClipboardData
mov ebx, eax
call sub.USER32.DLL_CloseClipboard
test ebx, ebx
je 0x43ff1c
call sub.USER32.DLL_CreatePopupMenu
mov esi, eax
test esi, esi
je 0x43ff1c
push str.Paste_tShiftIns
push 1
push 0
push esi
call sub.USER32.DLL_AppendMenuA
lea eax, [ebp - 0x48]
push eax
call sub.USER32.DLL_GetCursorPos
push 0
mov edx, dword [ebp + 8]
push edx
push 0
mov ecx, dword [ebp - 0x44]
push ecx
mov eax, dword [ebp - 0x48]
push eax
push 0x102
push esi
call sub.USER32.DLL_TrackPopupMenu
mov ebx, eax
push esi
call sub.USER32.DLL_DestroyMenu
dec ebx
jne 0x43ff1c
push 0
push 0
push 0x302
mov eax, dword [ebp + 8]
push eax
call fcn.0043ebe0
jmp 0x43ff1c
mov eax, 0x81
jmp 0x43ff1e
push 0x11
call sub.USER32.DLL_GetKeyState
test ah, 0x80
je 0x43f0e0
xor eax, eax
cmp ebx, 0x26
jne 0x43f0a3
cmp dword [ebp - 0x10], 0xce5
jne 0x43f08c
mov eax, dword [0x4e4dec]
jmp 0x43f0cd
cmp dword [ebp - 0x10], 0xce6
jne 0x43f09c
mov eax, dword [0x4e4de4]
jmp 0x43f0cd
mov eax, dword [0x4e4de8]
jmp 0x43f0cd
cmp ebx, 0x28
jne 0x43f0cd
cmp dword [ebp - 0x10], 0xce5
jne 0x43f0b8
mov eax, dword [0x4e4de8]
jmp 0x43f0cd
cmp dword [ebp - 0x10], 0xce6
jne 0x43f0c8
mov eax, dword [0x4e4dec]
jmp 0x43f0cd
mov eax, dword [0x4e4de4]
test eax, eax
je 0x43ff1c
push eax
call sub.USER32.DLL_SetFocus
jmp 0x43ff1c
xor edx, edx
mov dword [ebp - 4], edx
push 0x10
call sub.USER32.DLL_GetKeyState
movsx ecx, ax
and ecx, 0x8000
cmp ebx, 0x25
mov dword [ebp - 0x20], ecx
jne 0x43f109
mov dword [ebp - 4], 0xffffffff
jmp 0x43f30b
cmp ebx, 0x27
jne 0x43f11a
mov dword [ebp - 4], 1
jmp 0x43f30b
cmp ebx, 0x26
jne 0x43f143
cmp dword [ebp - 0x10], 0xce7
jne 0x43f143
mov eax, dword [0x4e4dd8]
cmp eax, dword [ebp - 0xc]
jl 0x43ff1c
mov edx, dword [ebp - 0xc]
neg edx
mov dword [ebp - 4], edx
jmp 0x43f30b
cmp ebx, 0x28
jne 0x43f174
cmp dword [ebp - 0x10], 0xce7
jne 0x43f174
mov eax, dword [0x4e4dc8]
cdq
idiv dword [ebp - 0xc]
imul dword [ebp - 0xc]
cmp eax, dword [0x4e4dd8]
jle 0x43ff1c
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 4], ecx
jmp 0x43f30b
cmp ebx, 0x24
jne 0x43f185
xor eax, eax
mov dword [0x4e4dd8], eax
jmp 0x43f30b
cmp ebx, 0x23
jne 0x43f19b
mov edx, dword [0x4e4dc8]
mov dword [0x4e4dd8], edx
jmp 0x43f30b
cmp ebx, 0x2d
jne 0x43f1ea
cmp dword [ebp - 0x20], 0
je 0x43f1bd
push 0
push 0
push 0x302
mov ecx, dword [ebp + 8]
push ecx
call fcn.0043ebe0
jmp 0x43ff1c
test byte [0x4e3b64], 1
jne 0x43f1d3
cmp dword [0x4e2778], 0
jne 0x43f30b
cmp dword [0x4e4de0], 0
sete al
and eax, 1
mov dword [0x4e4de0], eax
jmp 0x43f30b
cmp ebx, 0x2e
je 0x43f1f8
cmp ebx, 8
jne 0x43ff1c
xor edx, edx
test byte [0x4e3b64], 1
mov dword [ebp - 0x20], edx
jne 0x43f23b
cmp dword [0x4e2778], 0
je 0x43f23b
cmp ebx, 8
jne 0x43ff1c
mov ecx, dword [ebp - 8]
sub dword [0x4e4dd8], ecx
cmp dword [0x4e4dd8], 0
jge 0x43f231
xor eax, eax
mov dword [0x4e4dd8], eax
call fcn.0043bfb8
jmp 0x43ff1c
mov edx, dword [0x4e4dd4]
cmp edx, dword [0x4e4dd0]
jg 0x43f2ad
cmp ebx, 0x2e
jne 0x43f283
mov ecx, dword [0x4e4dd8]
mov dword [0x4e4dd0], ecx
mov eax, dword [0x4e4dd8]
add eax, dword [ebp - 8]
mov dword [0x4e4dd4], eax
mov edx, dword [0x4e4dc8]
cmp edx, dword [0x4e4dd4]
jge 0x43f2ad
mov ecx, dword [0x4e4dc8]
mov dword [0x4e4dd4], ecx
jmp 0x43f2ad
mov eax, dword [0x4e4dd8]
sub eax, dword [ebp - 8]
mov dword [0x4e4dd0], eax
mov edx, dword [0x4e4dd8]
mov dword [0x4e4dd4], edx
cmp dword [0x4e4dd0], 0
jge 0x43f2ad
xor ecx, ecx
mov dword [0x4e4dd0], ecx
mov eax, dword [0x4e4dd4]
cmp eax, dword [0x4e4dc8]
jge 0x43f2e7
mov edx, dword [0x4e4dc8]
mov ecx, 0x4e4bc8
add ecx, dword [0x4e4dd4]
sub edx, dword [0x4e4dd4]
mov eax, 0x4e4bc8
push edx
add eax, dword [0x4e4dd0]
push ecx
push eax
call fcn.004a3554
add esp, 0xc
mov edx, dword [0x4e4dd4]
sub edx, dword [0x4e4dd0]
sub dword [0x4e4dc8], edx
mov ecx, dword [0x4e4dd0]
mov dword [0x4e4dd4], ecx
mov dword [0x4e4dd8], ecx
cmp dword [0x4e4ddc], 0xffffffff
jne 0x43f31e
mov eax, dword [0x4e4dd8]
mov dword [0x4e4ddc], eax
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 8]
imul edx, dword [ebp - 8]
dec eax
add edx, dword [0x4e4dd8]
not eax
and edx, eax
mov dword [0x4e4dd8], edx
cmp dword [0x4e4dd8], 0
jge 0x43f34c
xor edx, edx
mov dword [0x4e4dd8], edx
jmp 0x43f36b
mov ecx, dword [0x4e4dc8]
cmp ecx, dword [0x4e4dd8]
jge 0x43f36b
mov eax, dword [ebp - 8]
dec eax
not eax
and eax, dword [0x4e4dc8]
mov dword [0x4e4dd8], eax
cmp dword [ebp - 0x20], 0
jne 0x43f38b
mov edx, dword [0x4e4dd8]
mov dword [0x4e4dd4], edx
mov dword [0x4e4dd0], edx
mov dword [0x4e4ddc], edx
jmp 0x43f3c8
mov eax, dword [0x4e4ddc]
cmp eax, dword [0x4e4dd8]
jle 0x43f3b0
mov ecx, dword [0x4e4dd8]
mov dword [0x4e4dd0], ecx
mov eax, dword [0x4e4ddc]
mov dword [0x4e4dd4], eax
jmp 0x43f3c8
mov edx, dword [0x4e4ddc]
mov dword [0x4e4dd0], edx
mov ecx, dword [0x4e4dd8]
mov dword [0x4e4dd4], ecx
call fcn.0043bfb8
jmp 0x43ff1c
cmp ebx, 8
je 0x43ff1c
cmp dword [ebp - 0x10], 0xce7
jne 0x43f3f8
push ebx
call fcn.004a7c50
pop ecx
test eax, eax
jne 0x43f3f8
cmp ebx, 0x3f
jne 0x43ff1c
test byte [0x4e3b64], 1
jne 0x43f427
cmp dword [0x4e2778], 0
je 0x43f427
mov eax, dword [0x4e4dd8]
cmp eax, dword [0x4e4dc8]
jge 0x43ff1c
mov edx, dword [0x4e4dd0]
mov dword [0x4e4dd4], edx
mov ecx, dword [0x4e4dd4]
cmp ecx, dword [0x4e4dd0]
jg 0x43f46f
cmp dword [0x4e4de0], 0
jne 0x43f46f
mov eax, dword [0x4e4dd8]
mov dword [0x4e4dd0], eax
mov edx, dword [0x4e4dd8]
add edx, dword [ebp - 8]
mov dword [0x4e4dd4], edx
mov ecx, dword [0x4e4dc8]
cmp ecx, dword [0x4e4dd4]
jge 0x43f46f
mov eax, dword [0x4e4dc8]
mov dword [0x4e4dd4], eax
mov edx, dword [0x4e4dd4]
cmp edx, dword [0x4e4dd0]
jle 0x43f4eb
mov ecx, dword [0x4e4dd4]
cmp ecx, dword [0x4e4dc8]
jge 0x43f4b7
mov eax, dword [0x4e4dc8]
mov edx, 0x4e4bc8
add edx, dword [0x4e4dd4]
sub eax, dword [0x4e4dd4]
mov ecx, 0x4e4bc8
push eax
add ecx, dword [0x4e4dd0]
push edx
push ecx
call fcn.004a3554
add esp, 0xc
mov eax, dword [0x4e4dd4]
sub eax, dword [0x4e4dd0]
sub dword [0x4e4dc8], eax
cmp dword [0x4e4dc8], 0
jge 0x43f4d9
xor edx, edx
mov dword [0x4e4dc8], edx
mov ecx, dword [0x4e4dd0]
mov dword [0x4e4dd4], ecx
mov dword [0x4e4dd8], ecx
mov eax, dword [0x4e4dc8]
add eax, dword [ebp - 8]
cmp eax, 0x200
jg 0x43f643
mov edx, dword [0x4e4dd8]
cmp edx, dword [0x4e4dc8]
jge 0x43f53c
mov eax, dword [0x4e4dc8]
mov edx, 0x4e4bc8
sub eax, dword [0x4e4dd8]
add edx, dword [0x4e4dd8]
push eax
push edx
mov ecx, dword [0x4e4dd8]
add ecx, dword [ebp - 8]
add ecx, 0x4e4bc8
push ecx
call fcn.004a3554
add esp, 0xc
cmp dword [ebp - 0x10], 0xce5
jne 0x43f56c
mov eax, ebx
mov edx, dword [0x4e4dd8]
shr eax, 4
and al, 0xf
and bl, 0xf
mov byte [edx + 0x4e4bc8], al
mov ecx, dword [0x4e4dd8]
mov byte [ecx + 0x4e4bc9], bl
jmp 0x43f627
cmp dword [ebp - 0x10], 0xce6
jne 0x43f5bf
mov eax, ebx
mov edx, dword [0x4e4dd8]
shr eax, 4
mov ecx, ebx
and al, 0xf
and cl, 0xf
mov byte [edx + 0x4e4bc8], al
mov edx, ebx
mov eax, dword [0x4e4dd8]
shr edx, 0xc
and dl, 0xf
mov byte [eax + 0x4e4bc9], cl
mov ecx, dword [0x4e4dd8]
shr ebx, 8
and bl, 0xf
mov byte [ecx + 0x4e4bca], dl
mov eax, dword [0x4e4dd8]
mov byte [eax + 0x4e4bcb], bl
jmp 0x43f627
cmp ebx, 0x30
jb 0x43f5da
cmp ebx, 0x39
ja 0x43f5da
add bl, 0xd0
mov edx, dword [0x4e4dd8]
mov byte [edx + 0x4e4bc8], bl
jmp 0x43f627
mov dword [ebp - 0x4c], ebx
mov ecx, dword [ebp - 0x4c]
push ecx
call fcn.004a98c8
pop ecx
cmp eax, 0x41
jl 0x43f61b
mov dword [ebp - 0x50], ebx
mov eax, dword [ebp - 0x50]
push eax
call fcn.004a98c8
pop ecx
cmp eax, 0x46
jg 0x43f61b
mov dword [ebp - 0x54], ebx
mov edx, dword [ebp - 0x54]
push edx
call fcn.004a98c8
pop ecx
add al, 0xc9
mov ecx, dword [0x4e4dd8]
mov byte [ecx + 0x4e4bc8], al
jmp 0x43f627
mov eax, dword [0x4e4dd8]
mov byte [eax + 0x4e4bc8], 0xff
mov edx, dword [ebp - 8]
add dword [0x4e4dc8], edx
mov ecx, dword [ebp - 8]
add dword [0x4e4dd8], ecx
mov eax, dword [0x4e4dd8]
mov dword [0x4e4ddc], eax
call fcn.0043bfb8
jmp 0x43ff1c
mov edx, dword [ebp + 8]
push edx
call sub.USER32.DLL_OpenClipboard
cmp dword [ebp - 0x10], 0xce6
jne 0x43f6a2
push 0xd
call sub.USER32.DLL_GetClipboardData
mov ebx, eax
test ebx, ebx
je 0x43f6a4
push ebx
call sub.KERNEL32.DLL_GlobalLock
mov esi, eax
test esi, esi
je 0x43f69a
jmp 0x43f694
push 0
mov ax, word [esi]
add esi, 2
movzx edx, ax
push edx
push 0x102
mov ecx, dword [ebp + 8]
push ecx
call fcn.0043ebe0
cmp word [esi], 0
jne 0x43f67a
push ebx
call sub.KERNEL32.DLL_GlobalUnlock
jmp 0x43f6a4
xor ebx, ebx
test ebx, ebx
jne 0x43f6ef
push 1
call sub.USER32.DLL_GetClipboardData
mov ebx, eax
test ebx, ebx
je 0x43f6ef
push ebx
call sub.KERNEL32.DLL_GlobalLock
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
je 0x43f6e9
jmp 0x43f6e1
push 0
mov eax, dword [ebp - 0x3c]
inc dword [ebp - 0x3c]
xor edx, edx
mov dl, byte [eax]
push edx
push 0x102
mov ecx, dword [ebp + 8]
push ecx
call fcn.0043ebe0
mov eax, dword [ebp - 0x3c]
cmp byte [eax], 0
jne 0x43f6c6
push ebx
call sub.KERNEL32.DLL_GlobalUnlock
call sub.USER32.DLL_CloseClipboard
jmp 0x43ff1c
lea edx, [ebp - 0x1b8]
push edx
mov ecx, dword [ebp + 8]
push ecx
call sub.USER32.DLL_BeginPaint
mov edi, eax
push 8
push edi
call sub.GDI32.DLL_SetTextAlign
mov eax, dword [0x4e3b68]
mov edx, dword [eax*4 + 0x4d409c]
push edx
push edi
call sub.GDI32.DLL_SelectObject
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [0x4e4bc4]
je 0x43f755
cmp dword [0x4e4bc4], 0xce6
je 0x43f75c
cmp dword [0x4e4bc4], 0xce5
je 0x43f75c
cmp dword [0x4e4bc4], 0xce7
je 0x43f75c
xor eax, eax
mov dword [ebp - 0x24], eax
jmp 0x43f763
mov dword [ebp - 0x24], 8
mov dword [ebp - 0x28], 0xf
mov dword [ebp - 0x2c], 0xc
mov dword [ebp - 0x30], 7
mov edx, dword [0x4d3c54]
push edx
push edi
call sub.GDI32.DLL_SelectObject
push 0
mov ecx, dword [ebp - 0x16c]
add ecx, 0xfffffffe
push ecx
mov eax, dword [ebp - 0x178]
push eax
push edi
call sub.GDI32.DLL_MoveToEx
mov edx, dword [ebp - 0x174]
push edx
mov ecx, dword [ebp - 0x178]
push ecx
push edi
call sub.GDI32.DLL_LineTo
mov eax, dword [ebp - 0x174]
push eax
mov edx, dword [ebp - 0x170]
dec edx
push edx
push edi
call sub.GDI32.DLL_LineTo
mov ecx, dword [0x4d3c34]
push ecx
push edi
call sub.GDI32.DLL_SelectObject
push 0
mov eax, dword [ebp - 0x16c]
add eax, 0xfffffffd
push eax
mov edx, dword [ebp - 0x178]
inc edx
push edx
push edi
call sub.GDI32.DLL_MoveToEx
mov ecx, dword [ebp - 0x174]
inc ecx
push ecx
mov eax, dword [ebp - 0x178]
inc eax
push eax
push edi
call sub.GDI32.DLL_LineTo
mov edx, dword [ebp - 0x174]
inc edx
push edx
mov ecx, dword [ebp - 0x170]
add ecx, 0xfffffffe
push ecx
push edi
call sub.GDI32.DLL_LineTo
mov eax, dword [0x4d3c50]
push eax
push edi
call sub.GDI32.DLL_SelectObject
push 0
mov edx, dword [ebp - 0x16c]
add edx, 0xfffffffe
push edx
mov ecx, dword [ebp - 0x178]
inc ecx
push ecx
push edi
call sub.GDI32.DLL_MoveToEx
mov eax, dword [ebp - 0x16c]
add eax, 0xfffffffe
push eax
mov edx, dword [ebp - 0x170]
add edx, 0xfffffffe
push edx
push edi
call sub.GDI32.DLL_LineTo
mov ecx, dword [ebp - 0x174]
push ecx
mov eax, dword [ebp - 0x170]
add eax, 0xfffffffe
push eax
push edi
call sub.GDI32.DLL_LineTo
mov edx, dword [0x4d3c70]
push edx
push edi
call sub.GDI32.DLL_SelectObject
push 0
mov ecx, dword [ebp - 0x16c]
dec ecx
push ecx
mov eax, dword [ebp - 0x178]
push eax
push edi
call sub.GDI32.DLL_MoveToEx
mov edx, dword [ebp - 0x16c]
dec edx
push edx
mov ecx, dword [ebp - 0x170]
dec ecx
push ecx
push edi
call sub.GDI32.DLL_LineTo
mov eax, dword [ebp - 0x174]
dec eax
push eax
mov edx, dword [ebp - 0x170]
dec edx
push edx
push edi
call sub.GDI32.DLL_LineTo
add dword [ebp - 0x178], 2
add dword [ebp - 0x174], 2
sub dword [ebp - 0x170], 2
sub dword [ebp - 0x16c], 2
mov ecx, dword [0x4d3c20]
lea eax, [ebp - 0x178]
push ecx
push eax
push edi
call sub.USER32.DLL_FrameRect
inc dword [ebp - 0x178]
inc dword [ebp - 0x174]
dec dword [ebp - 0x170]
dec dword [ebp - 0x16c]
push edi
lea esi, [ebp - 0x178]
lea edi, [ebp - 0x168]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
jmp 0x43f92b
mov eax, dword [ebp - 0xc]
add dword [0x4e4dcc], eax
mov edx, dword [ebp - 0xc]
lea edx, [edx + edx*2]
add edx, dword [0x4e4dcc]
cmp edx, dword [0x4e4dd8]
jle 0x43f922
jmp 0x43f94a
mov ecx, dword [ebp - 0xc]
sub dword [0x4e4dcc], ecx
mov eax, dword [0x4e4dd8]
cmp eax, dword [0x4e4dcc]
jl 0x43f941
cmp dword [0x4e4dcc], 0
jge 0x43f968
xor edx, edx
mov dword [0x4e4dcc], edx
cmp dword [ebp - 0x10], 0xce5
mov ebx, dword [0x4e4dcc]
je 0x43fc13
cmp dword [ebp - 0x10], 0xce6
jne 0x43fc2a
jmp 0x43fc13
add eax, dword [ebp - 0x14]
mov edx, dword [0x4e4dd4]
mov dword [ebp - 0x160], eax
mov eax, dword [0x4e4dd0]
cmp eax, edx
jge 0x43f9b3
mov ecx, dword [ebp - 8]
add ecx, ebx
dec ecx
cmp eax, ecx
jg 0x43f9b3
cmp ebx, edx
jl 0x43f9b7
xor eax, eax
jmp 0x43f9bc
mov eax, 1
cmp ebx, dword [0x4e4dc8]
jl 0x43f9d8
mov word [ebp - 0x3e], 0x20
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], edx
jmp 0x43fb8d
cmp dword [ebp - 0x10], 0xce5
jne 0x43faa8
mov ecx, dword [0x4e4dc8]
dec ecx
cmp ebx, ecx
jge 0x43fa01
mov dl, byte [ebx + 0x4e4bc8]
or dl, byte [ebx + 0x4e4bc9]
test dl, 0xf0
je 0x43fa21
mov word [ebp - 0x3e], 0x3f
mov ecx, dword [ebp - 0x2c]
test eax, eax
mov dword [ebp - 0x34], ecx
je 0x43fa16
mov eax, dword [ebp - 0x24]
jmp 0x43fa19
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x38], eax
jmp 0x43fb8d
xor edx, edx
xor ecx, ecx
mov dl, byte [ebx + 0x4e4bc8]
mov cl, byte [ebx + 0x4e4bc9]
shl edx, 4
or dx, cx
test eax, eax
mov word [ebp - 0x3e], dx
je 0x43fa4d
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x38], edx
jmp 0x43fa59
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x38], eax
cmp dword [0x4de5b0], 0
je 0x43fa70
mov dl, byte [ebp - 0x3e]
push edx
call sym.ollydbg.exe__IstextA
pop ecx
test eax, eax
je 0x43fa97
cmp word [ebp - 0x3e], 0
je 0x43fa97
cmp word [ebp - 0x3e], 0xa
je 0x43fa97
cmp word [ebp - 0x3e], 0xd
je 0x43fa97
cmp word [ebp - 0x3e], 0xc
je 0x43fa97
cmp word [ebp - 0x3e], 9
jne 0x43fb8d
mov word [ebp - 0x3e], 0x2e
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
jmp 0x43fb8d
mov edx, dword [0x4e4dc8]
add edx, 0xfffffffd
cmp ebx, edx
jge 0x43fad2
mov cl, byte [ebx + 0x4e4bc8]
or cl, byte [ebx + 0x4e4bc9]
or cl, byte [ebx + 0x4e4bca]
or cl, byte [ebx + 0x4e4bcb]
test cl, 0xf0
je 0x43faf2
mov word [ebp - 0x3e], 0x3f
mov edx, dword [ebp - 0x2c]
test eax, eax
mov dword [ebp - 0x34], edx
je 0x43fae7
mov eax, dword [ebp - 0x24]
jmp 0x43faea
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x38], eax
jmp 0x43fb8d
xor edx, edx
xor ecx, ecx
mov dl, byte [ebx + 0x4e4bc8]
mov cl, byte [ebx + 0x4e4bc9]
shl edx, 4
or dx, cx
xor ecx, ecx
mov cl, byte [ebx + 0x4e4bca]
shl ecx, 0xc
or dx, cx
xor ecx, ecx
mov cl, byte [ebx + 0x4e4bcb]
shl ecx, 8
or dx, cx
test eax, eax
mov word [ebp - 0x3e], dx
je 0x43fb3a
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x38], edx
jmp 0x43fb46
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x38], edx
cmp word [ebp - 0x3e], 0
je 0x43fb81
cmp word [ebp - 0x3e], 0xa
je 0x43fb81
cmp word [ebp - 0x3e], 0xd
je 0x43fb81
cmp word [ebp - 0x3e], 0xc
je 0x43fb81
cmp word [ebp - 0x3e], 9
je 0x43fb81
cmp word [ebp - 0x3e], 0xffff
je 0x43fb81
cmp word [ebp - 0x3e], 0xfeff
je 0x43fb81
cmp word [ebp - 0x3e], 0xfffe
jne 0x43fb8d
mov word [ebp - 0x3e], 0x2e
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x34]
mov edx, dword [eax*4 + 0x4d3b94]
push edx
push edi
call sub.GDI32.DLL_SetTextColor
mov ecx, dword [ebp - 0x38]
mov eax, dword [ecx*4 + 0x4d3b94]
push eax
push edi
call sub.GDI32.DLL_SetBkColor
mov edx, dword [ebp - 0x170]
cmp edx, dword [ebp - 0x160]
jge 0x43fbc9
mov ecx, dword [ebp - 0x170]
mov dword [ebp - 0x160], ecx
push 0
lea eax, [ebp - 0x3e]
push 1
push eax
lea edx, [ebp - 0x168]
mov ecx, dword [0x4e3b68]
push edx
push 6
mov eax, dword [ecx*4 + 0x4d4070]
sar eax, 1
jns 0x43fbee
adc eax, 0
mov edx, dword [ebp - 0x15c]
sub edx, eax
push edx
mov ecx, dword [ebp - 0x168]
push ecx
push edi
call sub.GDI32.DLL_ExtTextOutW
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0x168], eax
add ebx, dword [ebp - 8]
mov eax, dword [ebp - 0x168]
cmp eax, dword [ebp - 0x170]
jl 0x43f98d
jmp 0x43fde3
mov edx, dword [ebp - 0x28]
lea ecx, [edx*4 + 0x4d3be4]
mov dword [ebp - 0x58], ecx
jmp 0x43fdd1
add eax, dword [ebp - 0x1c]
xor edx, edx
mov dword [ebp - 0x15c], eax
lea esi, [ebx + 0x4e4bc8]
mov eax, dword [ebp - 0x178]
mov dword [ebp - 0x168], eax
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0xc]
jge 0x43fd9e
mov edx, dword [ebp - 0x168]
add edx, dword [ebp - 0x18]
cmp ebx, dword [0x4e4dc8]
mov dword [ebp - 0x160], edx
jl 0x43fc90
mov word [ebp - 0x3e], 0x20
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], ecx
jmp 0x43fd0e
test byte [esi], 0xf0
je 0x43fcbe
mov word [ebp - 0x3e], 0x3f
mov eax, dword [ebp - 0x2c]
cmp ebx, dword [0x4e4dd0]
mov dword [ebp - 0x34], eax
jl 0x43fcb6
cmp ebx, dword [0x4e4dd4]
jge 0x43fcb6
mov edx, dword [ebp - 0x24]
jmp 0x43fcb9
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x38], edx
jmp 0x43fd0e
mov al, byte [esi]
xor ecx, ecx
mov cl, al
cmp ecx, 0xa
jge 0x43fcd8
and eax, 0xff
add ax, 0x30
mov word [ebp - 0x3e], ax
jmp 0x43fce4
xor edx, edx
mov dl, byte [esi]
add dx, 0x37
mov word [ebp - 0x3e], dx
cmp ebx, dword [0x4e4dd0]
jl 0x43fd02
cmp ebx, dword [0x4e4dd4]
jge 0x43fd02
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x38], eax
jmp 0x43fd0e
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x34]
mov edx, dword [eax*4 + 0x4d3b94]
push edx
push edi
call sub.GDI32.DLL_SetTextColor
mov ecx, dword [ebp - 0x38]
mov eax, dword [ecx*4 + 0x4d3b94]
push eax
push edi
call sub.GDI32.DLL_SetBkColor
push 0
lea edx, [ebp - 0x3e]
push 1
push edx
lea ecx, [ebp - 0x168]
mov eax, dword [0x4e3b68]
push ecx
push 6
mov edx, dword [eax*4 + 0x4d4070]
sar edx, 1
jns 0x43fd54
adc edx, 0
mov ecx, dword [ebp - 0x15c]
sub ecx, edx
push ecx
test byte [ebp - 4], 1
je 0x43fd6a
mov eax, 1
jmp 0x43fd74
mov eax, dword [ebp - 0x14]
sar eax, 1
jns 0x43fd74
adc eax, 0
add eax, dword [ebp - 0x168]
push eax
push edi
call sub.GDI32.DLL_ExtTextOutW
mov edx, dword [ebp - 0x160]
mov dword [ebp - 0x168], edx
inc ebx
inc esi
inc dword [ebp - 4]
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp - 0xc]
jl 0x43fc68
mov eax, dword [ebp - 0x170]
cmp eax, dword [ebp - 0x168]
jle 0x43fdc5
mov dword [ebp - 0x160], eax
lea eax, [ebp - 0x168]
mov edx, dword [ebp - 0x58]
mov ecx, dword [edx]
push ecx
push eax
push edi
call sub.USER32.DLL_FillRect
mov edx, dword [ebp - 0x15c]
mov dword [ebp - 0x164], edx
mov eax, dword [ebp - 0x164]
cmp eax, dword [ebp - 0x16c]
jl 0x43fc3c
lea edx, [ebp - 0x1b8]
push edx
mov ecx, dword [ebp + 8]
push ecx
call sub.USER32.DLL_EndPaint
mov eax, dword [ebp - 0x10]
cmp eax, dword [0x4e4bc4]
jne 0x43ff1c
call sub.USER32.DLL_DestroyCaret
mov edx, dword [ebp - 0x1c]
cmp dword [0x4e4de0], 0
push edx
je 0x43fe1b
mov ecx, 2
jmp 0x43fe2c
cmp dword [ebp - 0x10], 0xce7
jne 0x43fe29
mov ecx, dword [ebp - 0x18]
jmp 0x43fe2c
mov ecx, dword [ebp - 0x14]
push ecx
push 0
mov eax, dword [ebp + 8]
push eax
call sub.USER32.DLL_CreateCaret
cmp dword [ebp - 0x10], 0xce5
je 0x43fe4a
cmp dword [ebp - 0x10], 0xce6
jne 0x43fe7a
mov eax, dword [0x4e4dd8]
sub eax, dword [0x4e4dcc]
cdq
idiv dword [ebp - 8]
mov ebx, eax
push 3
imul ebx, dword [ebp - 0x14]
mov eax, 2
cmp dword [0x4e4de0], 0
jne 0x43fe70
inc eax
add ebx, eax
push ebx
call sub.USER32.DLL_SetCaretPos
jmp 0x43fec3
mov eax, dword [0x4e4dd8]
sub eax, dword [0x4e4dcc]
cdq
idiv dword [ebp - 0xc]
mov eax, dword [0x4e4dd8]
mov ebx, edx
sub eax, dword [0x4e4dcc]
cdq
idiv dword [ebp - 0xc]
mov dword [ebp - 4], eax
mov eax, 3
mov ecx, dword [ebp - 4]
imul ecx, dword [ebp - 0x1c]
add ecx, 3
push ecx
imul ebx, dword [ebp - 0x18]
cmp dword [0x4e4de0], 0
jne 0x43febb
inc eax
add ebx, eax
push ebx
call sub.USER32.DLL_SetCaretPos
mov edx, dword [ebp + 8]
push edx
call sub.USER32.DLL_ShowCaret
mov ecx, dword [0x4e4dd8]
sar ecx, 1
jns 0x43fed9
adc ecx, 0
push ecx
push str.HEX__02X
lea eax, [ebp - 0x158]
push eax
call fcn.004a6c2c
add esp, 0xc
lea edx, [ebp - 0x158]
push edx
push 0xcea
mov ecx, dword [ebp + 8]
push ecx
call sub.USER32.DLL_GetParent
push eax
call sub.USER32.DLL_SetDlgItemTextA
jmp 0x43ff1c
mov eax, dword [ebp + 0x14]
push eax
push ebx
push esi
mov edx, dword [ebp + 8]
push edx
call sub.USER32.DLL_DefWindowProcA
jmp 0x43ff1e
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10