Function at 0x4067b0
Capabilities:
Log keystrokes via polling
Read file on windows

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
mov eax, 0x31c8
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
call fcn.00414850
sub esp, eax
mov eax, dword [ecx]
mov edi, dword [eax + 0xc]
mov dword [ebp - 0x3180], eax
test edi, edi
jne 0x406dd0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_CreateEventW]
mov dword [ebp - 0x3188], eax
sub esp, 0x10
lea eax, [ebp - 0x3018]
mov dword [esp + 0x20], 0
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x316c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0x1000
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov eax, dword [ebp - 0x3188]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x3180]
mov eax, dword [eax + 0xb0]
mov dword [esp], eax
call dword [sym.imp.ntdll.dll_NtReadFile]
sub esp, 0x24
mov edi, eax
cmp eax, 0x103
je 0x406f60
test edi, edi
jne 0x4071f1
mov dword [esp], 0x415040
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov eax, dword [ebp - 0x3180]
sub esp, 4
mov esi, dword [eax + 0x1c]
cmp dword [eax + 0xc], 1
sbb eax, eax
mov dword [ebp - 0x3190], esi
lea esi, [ebp - 0x2018]
and eax, 0xfffffff7
mov dword [esp + 0x10], esi
add eax, 0xfdf2
lea esi, [ebp - 0x3018]
mov dword [esp + 0x14], 0x1000
mov edx, dword [ebp - 0x3168]
mov dword [esp + 8], esi
mov dword [esp + 0xc], edx
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_MultiByteToWideChar]
mov dword [ebp - 0x3184], eax
sub esp, 0x18
test byte [0x415058], 8
jne 0x406c80
mov eax, dword [ebp - 0x3184]
xor esi, esi
test eax, eax
je 0x406976
mov dword [ebp - 0x318c], edi
mov dword [ebp - 0x317c], esi
mov eax, dword [ebp - 0x317c]
movzx ebx, word [ebp + eax*2 - 0x2018]
cmp bx, 0xa
je 0x406a18
ja 0x4069e0
cmp bx, 3
je 0x406b28
cmp bx, 8
jne 0x406ad0
mov eax, dword [ebp - 0x3180]
mov ecx, 0x48
mov edx, 8
call sym._key_press.constprop.1.isra.0
add dword [ebp - 0x317c], 1
lea esi, [esi]
mov esi, dword [ebp - 0x3184]
cmp dword [ebp - 0x317c], esi
jb 0x406913
mov eax, dword [ebp - 0x3180]
call sym._process_console_input
mov eax, dword [ebp - 0x3190]
test eax, eax
jne 0x4069c1
mov eax, dword [ebp - 0x3180]
mov esi, dword [eax + 0x1c]
test esi, esi
je 0x4069c1
mov ebx, dword [eax + 0x34]
test ebx, ebx
jne 0x4073f8
mov dword [esp + 4], 1
xor ecx, ecx
xor edx, edx
mov dword [esp], 0
mov eax, dword [ebp - 0x3180]
call sym._read_complete.isra.0
mov dword [esp], 0x415040
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
sub esp, 4
jmp 0x40680e
cmp bx, 0x1b
je 0x406a40
cmp bx, 0x7f
jne 0x406ad0
mov eax, dword [ebp - 0x3180]
mov ecx, 8
mov edx, 8
call sym._key_press.constprop.0.isra.0
add dword [ebp - 0x317c], 1
jmp 0x406968
mov eax, dword [ebp - 0x3180]
mov ecx, 0xd
mov edx, 0xa
call sym._key_press.constprop.1.isra.0
add dword [ebp - 0x317c], 1
jmp 0x406968
mov edi, dword [ebp - 0x3184]
lea ebx, [eax + 1]
lea esi, [ebp + ebx*2 - 0x2018]
sub edi, eax
mov eax, edi
sub eax, 1
je 0x4070d0
movzx ebx, word [esi]
cmp bx, 0x4f
je 0x406fa0
cmp bx, 0x5b
je 0x406bb8
mov dword [esp], ebx
call sym._VkKeyScanW_4
sub esp, 4
mov ecx, eax
cmp ax, 0xffff
je 0x406c70
mov edx, eax
and dx, 0x100
cmp dx, 1
sbb eax, eax
and eax, 0xfffffff0
add eax, 0x1a
cmp dx, 1
sbb edx, edx
and edx, 0xfffffff0
add edx, 0x12
test ch, 2
movzx ecx, cl
cmove eax, edx
mov dword [esp], eax
mov eax, dword [ebp - 0x3180]
mov edx, ebx
call sym._key_press.isra.0
add dword [ebp - 0x317c], 2
jmp 0x406968
mov dword [esp], ebx
call sym._VkKeyScanW_4
sub esp, 4
mov edx, eax
cmp ax, 0xffff
je 0x406f50
mov eax, edx
shr eax, 4
and eax, 0x10
mov ecx, eax
or ecx, 8
test dh, 2
cmovne eax, ecx
movzx ecx, dl
mov esi, eax
or esi, 2
and dh, 4
cmovne eax, esi
mov dword [esp], eax
mov eax, dword [ebp - 0x3180]
mov edx, ebx
call sym._key_press.isra.0
add dword [ebp - 0x317c], 1
jmp 0x406968
mov edi, dword [ebp - 0x318c]
mov dword [esp], 0x415040
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
sub esp, 4
mov dword [esp], 0x415040
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov eax, dword [ebp - 0x3180]
sub esp, 4
mov ecx, dword [eax + 0x34]
test ecx, ecx
jne 0x406f30
mov eax, dword [ebp - 0x3180]
mov edx, dword [eax + 0xc]
test edx, edx
jne 0x406e80
mov edi, dword [ebp - 0x3180]
mov eax, dword [edi + 0xac]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_CloseHandle]
mov dword [edi + 0xac], 0
sub esp, 4
mov dword [esp], 0x415040
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
xor eax, eax
sub esp, 4
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 4
cmp eax, 1
je case.0x406fbd.4
lea eax, [edi - 2]
lea ecx, [esi + 2]
mov dword [ebp - 0x319c], edi
xor ebx, ebx
mov dword [ebp - 0x31a0], eax
mov edi, eax
mov dword [ebp - 0x3194], ecx
xor ecx, ecx
xor edx, edx
cmp ebx, edi
jae 0x406c12
mov dword [ebp - 0x3198], ecx
jmp 0x406bfe
lea edx, [edx + edx*4]
add ebx, 1
lea edx, [eax + edx*2 - 0x30]
cmp edi, ebx
je 0x406c0c
movzx eax, word [esi + ebx*2 + 2]
lea ecx, [eax - 0x30]
cmp cx, 9
jbe 0x406bf0
mov ecx, dword [ebp - 0x3198]
cmp ecx, 7
jbe 0x407040
test byte [0x415058], 1
jne 0x407179
mov dword [ebp - 0x3198], ecx
nop
cmp edi, ebx
je 0x407030
mov eax, dword [ebp - 0x3194]
movzx eax, word [eax + ebx*2]
cmp ax, 0x3b
jne 0x40728e
add ebx, 1
cmp edi, ebx
je 0x407030
cmp ecx, 7
ja 0x406ff4
mov ecx, dword [ebp - 0x3198]
jmp 0x406bdf
xor ecx, ecx
mov eax, 2
jmp 0x406ab3
lea eax, [ebp - 0x2018]
shr eax, 0x10
je 0x4070f0
mov esi, dword [ebp - 0x3184]
lea eax, [ebp - 0x2018]
mov dword [esp], eax
mov dword [esp + 4], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, eax
sub esp, 8
mov eax, section..rdata
test edx, edx
jne 0x406da2
cmp esi, 0xffffffff
je 0x4071ba
mov eax, dword [ebp - 0x3184]
mov ebx, 0x224c
mov word [ebp - 0x3144], bx
lea ecx, [eax - 1]
test eax, eax
jle 0x407509
lea ebx, [ebp - 0x2018]
mov dword [ebp - 0x318c], edi
lea eax, [ebp - 0x3142]
mov dword [ebp - 0x317c], ebx
lea esi, [ebp - 0x3022]
jmp 0x406d2d
cmp dx, 9
je 0x407088
cmp dx, 0xa
jne 0x407128
mov edx, 0x6e5c
add eax, 2
mov word [eax - 2], dx
lea edx, [ecx - 1]
cmp esi, eax
jb 0x406d70
test ecx, ecx
jle 0x406d70
mov ecx, edx
add dword [ebp - 0x317c], 2
mov edi, dword [ebp - 0x317c]
movzx edx, word [edi - 2]
cmp dx, 0xd
je 0x407058
jbe 0x406d00
cmp dx, 0x22
je 0x407070
cmp dx, 0x5c
jne 0x407110
mov ebx, 0x5c5c
add eax, 2
mov word [eax - 2], bx
jmp 0x406d20
mov edi, dword [ebp - 0x318c]
mov byte [eax], 0x22
test edx, edx
jle 0x4071b2
mov byte [eax + 3], 0x2e
mov edx, 0x2e2e
mov word [eax + 1], dx
lea edx, [eax + 4]
lea eax, [ebp - 0x3144]
mov byte [edx], 0
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x416017
mov dword [esp + 8], str.tty_input
mov dword [esp + 4], 0x415058
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x4068fb
mov edi, eax
mov eax, dword [eax + 0xb0]
mov dword [ebp - 0x2018], eax
lea eax, [ebp - 0x2018]
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x316c]
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 4
mov dword [esp + 0x14], 0x5000f0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [edi]
mov dword [esp], eax
call dword [sym.imp.ntdll.dll_NtDeviceIoControlFile]
sub esp, 0x28
test eax, eax
je 0x4067e0
test byte [0x415058], 2
je 0x4067e0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.input_setup_failed:__lx_n
mov dword [esp + 8], str.tty_input
mov dword [esp + 4], 0x415058
mov dword [esp], 1
call sym._wine_dbg_log.constprop.1
jmp 0x4067e0
mov dword [ebp - 0x3144], 0
lea eax, [ebp - 0x3144]
mov dword [esp + 0x18], eax
lea eax, [ebp - 0x316c]
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 4
mov dword [esp + 0x14], 0x5000f0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x3180]
mov eax, dword [eax]
mov dword [esp], eax
call dword [sym.imp.ntdll.dll_NtDeviceIoControlFile]
sub esp, 0x28
test eax, eax
je 0x406b70
test byte [0x415058], 2
je 0x406b70
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.input_restore_failed:__lx_n
mov dword [esp + 8], str.tty_input
mov dword [esp + 4], 0x415058
mov dword [esp], 1
call sym._wine_dbg_log.constprop.1
jmp 0x406b70
mov dword [esp + 4], 0
xor ecx, ecx
mov edx, edi
mov dword [esp], 0
call sym._read_complete.isra.0
jmp 0x406b5f
xor ecx, ecx
xor eax, eax
jmp 0x406b08
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x3188]
mov dword [esp], eax
call dword [sym.imp.ntdll.dll_NtWaitForSingleObject]
sub esp, 0xc
mov edi, eax
test eax, eax
jne 0x4071f1
mov edi, dword [ebp - 0x316c]
jmp 0x406879
cmp eax, 1
je case.0x406fbd.4
movzx eax, word [esi + 2]
sub eax, 0x41
cmp ax, 0x12
ja case.0x406fbd.4
movzx eax, ax
jmp dword [eax*4 + 0x416294]
test byte [0x415058], 1
jne 0x4070a0
cmp edi, ebx
je 0x407030
mov eax, dword [ebp - 0x3194]
movzx eax, word [eax + ebx*2]
cmp ax, 0x3b
jne 0x407288
add ebx, 1
cmp edi, ebx
je 0x407030
xor edx, edx
cmp ebx, edi
jb 0x40700e
jmp 0x406fc8
lea edx, [edx + edx*4]
add ebx, 1
lea edx, [eax + edx*2 - 0x30]
cmp edi, ebx
je 0x407020
movzx eax, word [esi + ebx*2 + 2]
lea ecx, [eax - 0x30]
cmp cx, 9
jbe 0x407000
jmp 0x406fc8
test byte [0x415058], 1
jne 0x4070a0
lea esi, [esi]
movzx ebx, word [esi]
jmp case.0x406fbd.4
lea eax, [ecx + 1]
mov dword [ebp + ecx*4 - 0x3164], edx
mov dword [ebp - 0x3198], eax
jmp 0x406c30
movzx edi, word [str._r__]
add eax, 2
mov word [eax - 2], di
jmp 0x406d20
movzx edi, word [0x416c4c]
add eax, 2
mov word [eax - 2], di
jmp 0x406d20
mov edi, 0x745c
add eax, 2
mov word [eax - 2], di
jmp 0x406d20
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.too_many_params__skipping__u_n
mov dword [esp + 8], str.process_csi_sequence
mov dword [esp + 4], 0x415058
mov dword [esp], 0
call sym._wine_dbg_log.constprop.1
jmp 0x406fd5
mov eax, dword [ebp - 0x3180]
mov ecx, 0x1b
xor edx, edx
call sym._key_press.constprop.0.isra.0
mov dword [ebp - 0x317c], ebx
jmp 0x406968
lea eax, [ebp - 0x2018]
mov dword [esp], 0x41600a
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf
jmp 0x406da2
lea edi, [edx - 0x20]
cmp di, 0x5e
ja 0x407128
mov byte [eax], dl
add eax, 1
jmp 0x406d20
mov edi, edx
mov byte [eax], 0x5c
add eax, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + str.0123456789abcdeftty_flush]
mov edi, edx
shr di, 8
and edi, 0xf
mov byte [eax - 4], bl
movzx ebx, byte [edi + str.0123456789abcdeftty_flush]
mov edi, edx
and edx, 0xf
shr di, 4
movzx edx, byte [edx + str.0123456789abcdeftty_flush]
and edi, 0xf
mov byte [eax - 3], bl
movzx ebx, byte [edi + str.0123456789abcdeftty_flush]
mov byte [eax - 1], dl
mov byte [eax - 2], bl
jmp 0x406d20
mov dword [ebp - 0x3198], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.too_many_params__skipping__u_n
mov dword [esp + 8], str.process_csi_sequence
mov dword [esp + 4], 0x415058
mov dword [esp], 0
call sym._wine_dbg_log.constprop.1
mov ecx, dword [ebp - 0x3198]
jmp 0x406c28
lea edx, [eax + 1]
jmp 0x406d91
cmp word [ebp - 0x2018], 0
je 0x407516
lea esi, [esi]
nop
mov ecx, edx
lea edx, [edx + 1]
cmp word [ebp + ecx*2 - 0x2016], 0
jne 0x4071d0
mov eax, 0x224c
mov word [ebp - 0x3144], ax
jmp 0x406ce0
test byte [0x415058], 8
je 0x406b3e
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.NtReadFile_failed:__lx_n
mov dword [esp + 8], str.tty_input
mov dword [esp + 4], 0x415058
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x406b3e
mov ecx, 0x73
mov eax, dword [ebp - 0x3180]
xor edx, edx
call sym._key_press.constprop.0.isra.0
add dword [ebp - 0x317c], 3
jmp 0x406968
mov ecx, 0x72
jmp 0x407230
mov ecx, 0x71
jmp 0x407230
mov ecx, 0x70
jmp 0x407230
mov ecx, 0x24
jmp 0x407230
mov ecx, 0x23
jmp 0x407230
mov ecx, 0x25
jmp 0x407230
mov ecx, 0x27
jmp 0x407230
mov ecx, 0x28
jmp 0x407230
mov ecx, 0x26
jmp 0x407230
mov dword [ebp - 0x31a0], edi
lea edx, [eax - 0x41]
mov edi, dword [ebp - 0x319c]
cmp dx, 0x19
ja case.0x4072a0.4
movzx edx, dx
jmp dword [edx*4 + 0x4162e0]
cmp ax, 0x7e
jne 0x40741a
mov eax, dword [ebp - 0x3164]
xor edi, edi
sub eax, 2
cmp eax, 0x16
ja 0x4072c8
mov edi, dword [eax*4 + 0x416700]
xor eax, eax
cmp dword [ebp - 0x3198], 2
je 0x4075b3
mov dword [esp], eax
mov eax, dword [ebp - 0x3180]
mov ecx, edi
xor edx, edx
add ebx, 1
call sym._key_press.isra.0
test ebx, ebx
je 0x407030
mov eax, dword [ebp - 0x317c]
lea eax, [ebx + eax + 2]
mov dword [ebp - 0x317c], eax
jmp 0x406968
xor edx, edx
xor eax, eax
mov ecx, 0x72
cmp dword [ebp - 0x3198], 1
je 0x407359
mov eax, dword [ebp - 0x3160]
sub eax, 1
mov edi, eax
xor eax, eax
cmp edi, 0xf
ja 0x407359
mov eax, edi
mov dword [ebp - 0x3194], edi
and eax, 1
shl eax, 4
mov edi, eax
or edi, 2
test byte [ebp - 0x3194], 2
cmovne eax, edi
mov edi, eax
or edi, 8
test byte [ebp - 0x3194], 4
cmovne eax, edi
mov dword [esp], eax
mov eax, dword [ebp - 0x3180]
add ebx, 1
call sym._key_press.isra.0
jmp 0x4072ec
xor edx, edx
xor eax, eax
mov ecx, 0x71
jmp 0x407312
xor edx, edx
xor eax, eax
mov ecx, 0x70
jmp 0x407312
xor edx, edx
xor eax, eax
mov ecx, 0x24
jmp 0x407312
xor edx, edx
xor eax, eax
mov ecx, 0x23
jmp 0x407312
xor edx, edx
xor eax, eax
mov ecx, 0x25
jmp 0x407312
xor edx, edx
xor eax, eax
mov ecx, 0x27
jmp 0x407312
xor edx, edx
xor eax, eax
mov ecx, 0x28
jmp 0x407312
xor edx, edx
xor eax, eax
mov ecx, 0x26
jmp 0x407312
mov edx, 9
mov eax, 0x10
mov ecx, 9
jmp 0x407312
xor edx, edx
xor eax, eax
mov ecx, 0x73
jmp 0x407312
mov dword [esp + 8], 0x6e4
mov dword [esp + 4], str._Users_runner_work_wine_wine_programs_conhost_conhost.c
mov dword [esp], str._console__read_ioctl
call dword [sym.imp.ucrtbase.dll__assert]
jmp 0x4069a3
test byte [0x415058], 1
je 0x407030
mov eax, dword [ebp - 0x3194]
shr eax, 0x10
je 0x40764a
mov eax, dword [ebp - 0x31a0]
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x3194]
mov dword [esp], ecx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, eax
sub esp, 8
mov eax, section..rdata
test edx, edx
jne 0x407568
lea ebx, [edi - 3]
mov edi, dword [ebp - 0x31a0]
mov ecx, 0x224c
mov word [ebp - 0x3144], cx
test edi, edi
jle 0x407534
lea eax, [ebp - 0x3022]
movzx edi, word [0x416c4c]
lea ecx, [ebp - 0x3142]
mov dword [ebp - 0x3198], eax
jmp 0x4074ca
cmp ax, 9
je 0x4075e8
cmp ax, 0xa
jne 0x4075f9
mov edx, 0x6e5c
add ecx, 2
mov word [ecx - 2], dx
lea eax, [ebx - 1]
cmp dword [ebp - 0x3198], ecx
jb 0x40753c
test ebx, ebx
jle 0x40753c
mov ebx, eax
add dword [ebp - 0x3194], 2
mov eax, dword [ebp - 0x3194]
movzx eax, word [eax - 2]
cmp ax, 0xd
je 0x407595
jbe 0x407499
cmp ax, 0x22
je 0x4075a8
cmp ax, 0x5c
jne 0x407665
mov eax, 0x5c5c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x4074b9
mov edx, ecx
lea eax, [ebp - 0x3142]
jmp 0x406d76
mov esi, 0x224c
mov byte [ebp - 0x3142], 0x22
lea edx, [ebp - 0x3141]
mov word [ebp - 0x3144], si
jmp 0x406d91
mov eax, ebx
lea ecx, [ebp - 0x3142]
mov byte [ecx], 0x22
test eax, eax
jle 0x407678
mov byte [ecx + 3], 0x2e
mov eax, 0x2e2e
mov word [ecx + 1], ax
lea eax, [ecx + 4]
mov byte [eax], 0
lea eax, [ebp - 0x3144]
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.unhandled_sequence__s_n
mov dword [esp + 8], str.process_csi_sequence
mov dword [esp + 4], 0x415058
mov dword [esp], 0
call sym._wine_dbg_log.constprop.1
jmp 0x407030
movzx eax, word [str._r__]
add ecx, 2
mov word [ecx - 2], ax
jmp 0x4074b9
mov word [ecx], di
add ecx, 2
jmp 0x4074b9
mov ecx, dword [ebp - 0x3160]
lea edx, [ecx - 1]
cmp edx, 0xf
ja 0x4072d7
mov eax, edx
and eax, 1
shl eax, 4
mov ecx, eax
or ecx, 2
test dl, 2
cmovne eax, ecx
mov ecx, eax
or ecx, 8
and edx, 4
cmovne eax, ecx
jmp 0x4072d7
mov eax, 0x745c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x4074b9
mov edx, eax
mov byte [ecx], 0x5c
add ecx, 5
shr dx, 0xc
movzx edx, dx
movzx edx, byte [edx + str.0123456789abcdeftty_flush]
mov byte [ecx - 4], dl
mov edx, eax
shr dx, 8
and edx, 0xf
movzx edx, byte [edx + str.0123456789abcdeftty_flush]
mov byte [ecx - 3], dl
mov edx, eax
and eax, 0xf
shr dx, 4
movzx eax, byte [eax + str.0123456789abcdeftty_flush]
and edx, 0xf
movzx edx, byte [edx + str.0123456789abcdeftty_flush]
mov byte [ecx - 1], al
mov byte [ecx - 2], dl
jmp 0x4074b9
mov eax, dword [ebp - 0x3194]
mov dword [esp], 0x41600a
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf
jmp 0x407568
lea edx, [eax - 0x20]
cmp dx, 0x5e
ja 0x4075f9
mov byte [ecx], al
add ecx, 1
jmp 0x4074b9
lea eax, [ecx + 1]
jmp 0x407557