Function at 0x44157e
Capabilities:
Get keyboard layout
Log keystrokes via polling
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x160
and dword [ebp - 4], 0
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
push 0x3f
push dword [0x4774dc]
mov esi, eax
mov dword [ebp - 8], edi
call fcn.00402036
push 0x41
push dword [0x4774dc]
mov dword [ebp - 0x14], eax
call fcn.00402036
push 0x59
push dword [0x4774dc]
mov dword [ebp - 0x18], eax
call fcn.00402036
push 0x4b
push dword [0x4774dc]
mov ebx, eax
call fcn.00402036
add esp, 0x20
push 0
mov dword [ebp - 0x10], eax
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x12c]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
jne 0x44160b
push 0x100
push eax
lea eax, [ebp - 0x12c]
push eax
call fcn.0044ce90
add esp, 0xc
jmp 0x44167e
cmp dword [ebp + 8], 0x12
jne 0x441627
mov eax, esi
shr eax, 0x10
test ah, 1
je 0x441627
mov al, byte [ebp - 0x11a]
mov byte [ebp - 0x87], al
cmp dword [ebp - 0x14], 3
je 0x441647
cmp dword [ebp - 0x14], 1
jg 0x441671
mov eax, dword [0x4774f0]
cmp dword [eax + 0x144], 0
je 0x441671
cmp dword [ebp - 0x18], 0
jne 0x441671
cmp dword [ebp + 8], 0x90
jne 0x441671
test byte [ebp - 0x11c], 0x80
jne 0x441671
mov eax, esi
shr eax, 0x10
test ah, 0xc0
mov dword [ebp + 8], 0x2b
jne 0x441671
xor byte [ebp - 0x9c], 1
lea eax, [ebp - 0x12c]
push eax
call dword [sym.imp.USER32.dll_SetKeyboardState]
mov eax, dword [0x4774f0]
xor edx, edx
cmp dword [eax + 0x14c], edx
je 0x4416a0
mov eax, esi
shr eax, 0x10
and ax, 0xc000
cmp ax, 0x4000
je 0x4423f5
shr esi, 0x10
test si, 0x2000
mov dword [ebp - 0x1c], esi
je 0x4416bd
test byte [ebp - 0x87], 0x80
jne 0x4416bd
mov dword [ebp - 4], 1
movzx eax, si
mov ecx, eax
shr ecx, 0xf
not ecx
and ecx, 1
cmp dword [ebp - 4], edx
mov dword [ebp - 0x2c], ecx
je 0x4416f2
test byte [ebp - 0x11b], 0x80
je 0x4416f2
cmp ebx, edx
je 0x4416e8
mov byte [ebp - 0x11a], 0
jmp 0x4416f2
mov byte [ebp - 0x87], 0x80
mov dword [ebp - 4], edx
movzx ecx, byte [ebp - 0x11c]
and eax, 0x81ff
mov dword [ebp - 0x24], eax
movzx eax, byte [ebp - 0x11b]
shr eax, 7
shr ecx, 7
cmp dword [0x476104], edx
lea esi, [ecx + eax*2]
mov dword [ebp - 0xc], esi
jne 0x441759
push 0x58
push dword [0x4774dc]
mov dword [0x47615c], 0x100
call fcn.00402036
test eax, eax
pop ecx
pop ecx
je 0x44174c
push 0x12
pop eax
cmp dword [ebp + 8], eax
jne 0x44174c
test byte [ebp - 0x1b], 1
je 0x441759
mov dword [0x47615c], eax
push 0x5d
pop eax
cmp dword [ebp + 8], eax
jne 0x441759
mov dword [0x47615c], eax
mov eax, dword [ebp + 8]
push 2
xor ebx, ebx
cmp eax, dword [0x47615c]
pop edx
jne 0x441798
mov ecx, dword [0x476104]
cmp ecx, ebx
jne 0x441785
test byte [ebp - 0x1b], 0xc0
jne 0x4417b6
mov dword [0x476104], 1
jmp 0x4417bc
cmp ecx, 1
jne 0x4417b6
test byte [ebp - 0x1b], 0x80
je 0x4417b6
mov dword [0x476104], edx
jmp 0x4417b1
cmp dword [0x476104], 1
jne 0x4417af
cmp eax, 0x11
je 0x4417bc
mov dword [0x476104], ebx
cmp ebx, 1
jle 0x4417bc
cmp dword [ebp - 4], ebx
je 0x4417c1
mov dword [0x476104], ebx
cmp dword [ebp - 4], ebx
jne 0x4417ec
mov ecx, dword [0x4774f0]
cmp dword [ecx + 0x144], ebx
je 0x4417d9
cmp dword [ebp - 0x18], ebx
jne 0x4417d9
cmp dword [ebp - 0x14], edx
jne 0x4417ec
cmp dword [ebp - 0x14], 3
je 0x4417ec
cmp dword [ebp - 0x10], ebx
jne 0x4417ec
cmp dword [0x476104], ebx
je 0x44185c
test byte [ebp - 0x1b], 1
jne 0x44185c
cmp eax, 0x25
ja 0x441824
je 0x441820
sub eax, 0xc
je 0x44181c
sub eax, 0x15
je 0x441818
dec eax
je 0x441814
dec eax
je 0x441810
dec eax
jne 0x44185c
push 0x67
jmp 0x441849
push 0x61
jmp 0x441849
push 0x63
jmp 0x441849
push 0x69
jmp 0x441849
push 0x65
jmp 0x441849
push 0x64
jmp 0x441849
sub eax, 0x26
je 0x441847
dec eax
je 0x441843
dec eax
je 0x44183f
sub eax, 5
je 0x44183b
dec eax
jne 0x44185c
push 0x6e
jmp 0x441849
push 0x60
jmp 0x441849
push 0x62
jmp 0x441849
push 0x66
jmp 0x441849
push 0x68
test byte [ebp - 0x9c], 1
pop eax
je 0x441859
or esi, 1
mov dword [ebp - 0xc], esi
mov dword [ebp + 8], eax
cmp dword [ebp - 0x2c], ebx
je 0x4420b7
test byte [ebp - 0x87], 0x80
jne 0x4420b7
cmp dword [0x476104], 0
jne 0x4420b7
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x441890
mov edi, dword [ebp + 0xc]
mov byte [edi], 0x1b
inc edi
mov dword [ebp - 8], edi
mov eax, dword [ebp + 8]
cmp eax, 0x21
jne 0x4418c2
cmp esi, 1
jne 0x4418b7
push 0
push 2
push 0x115
push dword [0x4774fc]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x4423f5
cmp esi, 2
jne 0x4418dd
push 0
push 0
jmp 0x4418a1
cmp eax, 0x22
jne 0x4418fe
cmp esi, 1
jne 0x4418d2
push 0
push 3
jmp 0x4418a1
cmp esi, 2
jne 0x4418dd
push 0
push 1
jmp 0x4418a1
cmp esi, 3
jne 0x4418fe
xor eax, eax
cmp dword [ebp + 8], 0x21
setne al
push eax
push dword [0x4774f0]
call fcn.004328c3
pop ecx
pop ecx
jmp 0x4423f5
cmp eax, 0x2d
jne 0x441911
cmp esi, 1
jne 0x441911
push 0
call fcn.0044018c
jmp 0x4418f8
test ebx, ebx
je 0x4419af
cmp eax, 0x73
jne 0x44193d
push 0x4e
push dword [0x4774dc]
call fcn.00402036
test eax, eax
pop ecx
pop ecx
je 0x4419ca
or eax, 0xffffffff
pop edi
pop esi
pop ebx
leave
ret
cmp eax, 0x20
jne 0x44196f
push 0x4f
push dword [0x4774dc]
call fcn.00402036
test eax, eax
pop ecx
pop ecx
je 0x4419ca
push 0
push 0xf100
push 0x112
push dword [0x4774fc]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x441935
cmp eax, 0xd
jne 0x4419af
push 0x54
push dword [0x4774dc]
call fcn.00402036
test eax, eax
pop ecx
pop ecx
je 0x4419ca
push 0x6a
push dword [0x4774dc]
call fcn.00402036
cmp eax, 1
pop ecx
pop ecx
je 0x4419ca
mov eax, dword [ebp - 0x1c]
and ax, 0xc000
cmp ax, 0x4000
je 0x441935
call fcn.004411e8
jmp 0x441935
cmp eax, 0x13
jne 0x4419ca
cmp esi, 2
jne 0x4419ca
mov eax, dword [0x4774f0]
xor dword [eax + 0x144], 1
jmp 0x4423f5
cmp dword [ebp - 0x10], 0
je 0x441a4f
test ebx, ebx
jne 0x441bb7
mov eax, dword [ebp + 8]
add eax, 0xffffff9f
cmp eax, 8
ja case.default.0x4419e3
jmp dword [eax*4 + 0x4423fc]
and esi, 3
mov al, byte [esi + 0x46bcf8]
mov byte [edi], al
jmp 0x441cdc
and esi, 3
mov al, byte [esi + str.jJ_n_n]
jmp 0x4419f3
and esi, 3
mov al, byte [esi + 0x46bce8]
jmp 0x4419f3
and esi, 3
mov al, byte [esi + str.hH_b_b]
jmp 0x4419f3
mov byte [edi], 0x2e
jmp 0x441cdc
and esi, 3
mov al, byte [esi + str.lL_f_f]
jmp 0x4419f3
and esi, 3
mov al, byte [esi + 0x46bcd0]
jmp 0x4419f3
and esi, 3
mov al, byte [esi + str.kK_v_v]
jmp 0x4419f3
and esi, 3
mov al, byte [esi + 0x46bcc0]
jmp 0x4419f3
test ebx, ebx
jne 0x441bb7
mov edx, dword [ebp - 0x14]
xor ebx, ebx
xor ecx, ecx
cmp edx, 3
je 0x441a7a
cmp edx, 1
jg 0x441a9f
mov eax, dword [0x4774f0]
cmp dword [eax + 0x144], ebx
je 0x441a9f
cmp dword [ebp - 0x18], ebx
jne 0x441a9f
mov eax, dword [ebp + 8]
sub eax, 0x2b
je 0x441a9c
sub eax, 0x3f
je 0x441a98
sub eax, 3
je 0x441a94
dec eax
dec eax
jne 0x441a9f
push 0x51
jmp 0x441a9e
push 0x53
jmp 0x441a9e
push 0x52
jmp 0x441a9e
push 0x50
pop ecx
mov eax, dword [0x4774f0]
cmp dword [eax + 0x144], ebx
je 0x441b80
cmp dword [ebp - 0x18], ebx
jne 0x441b80
mov eax, dword [ebp + 8]
cmp eax, 0x67
ja 0x441b23
je 0x441b1f
cmp eax, 0x63
ja 0x441b05
je 0x441b01
sub eax, 0xd
je 0x441af3
sub eax, 0x53
je 0x441aec
dec eax
je 0x441ae5
dec eax
jne 0x441b80
push 0x72
jmp 0x441b7a
push 0x71
jmp 0x441b7a
push 0x70
jmp 0x441b7a
test byte [ebp - 0x1b], 1
je 0x441b80
push 0x4d
jmp 0x441b7f
push 0x73
jmp 0x441b7a
mov eax, dword [ebp + 8]
sub eax, 0x64
je 0x441b1b
dec eax
je 0x441b17
dec eax
jne 0x441b80
push 0x76
jmp 0x441b7a
push 0x75
jmp 0x441b7a
push 0x74
jmp 0x441b7a
push 0x77
jmp 0x441b7a
mov eax, dword [ebp + 8]
sub eax, 0x68
je 0x441b7d
dec eax
je 0x441b78
dec eax
je 0x441b6f
dec eax
je 0x441b54
dec eax
dec eax
je 0x441b4b
dec eax
je 0x441b47
dec eax
jne 0x441b80
cmp edx, 2
jne 0x441b80
push 0x6f
jmp 0x441b7f
push 0x6e
jmp 0x441b7a
cmp edx, 2
jne 0x441b80
push 0x6d
jmp 0x441b7f
xor ecx, ecx
cmp edx, 2
jne 0x441b65
cmp esi, ebx
setne cl
add ecx, 0x6b
jmp 0x441b84
cmp esi, ebx
setne cl
add ecx, 0x6c
jmp 0x441b84
cmp edx, 2
jne 0x441b80
push 0x6a
jmp 0x441b7f
push 0x79
pop ecx
jmp 0x441b84
push 0x78
pop ecx
cmp ecx, ebx
je 0x441bb7
mov eax, dword [0x4774f0]
cmp dword [eax + 0x148], ebx
je 0x441bb1
cmp ecx, 0x50
jl 0x441ba6
cmp ecx, 0x53
jg 0x441ba6
push ecx
push 0x469680
jmp 0x441fd5
push ecx
push str.e__c
jmp 0x441fd5
push ecx
jmp 0x441fd0
mov eax, dword [ebp + 8]
cmp eax, 8
jne 0x441c01
test esi, esi
jne 0x441be1
push 0x3d
push dword [0x4774dc]
call fcn.00402036
neg eax
sbb al, al
and al, 0x77
add al, 8
pop ecx
pop ecx
mov byte [edi], al
jmp 0x442081
cmp esi, 1
jne 0x441c6e
push 0x3d
push dword [0x4774dc]
call fcn.00402036
neg eax
sbb al, al
and al, 0x89
add al, 0x7f
jmp 0x441bd8
cmp eax, 9
jne 0x441c1b
cmp esi, 1
jne 0x441c6e
mov byte [edi], 0x1b
inc edi
mov byte [edi], 0x5b
inc edi
mov byte [edi], 0x5a
jmp 0x441cdc
cmp eax, 0x20
jne 0x441c3a
cmp esi, 2
jne 0x441c2d
mov byte [edi], 0
jmp 0x441cdc
cmp esi, 3
jne 0x441c6e
mov byte [edi], 0xa0
jmp 0x441cdc
cmp eax, 3
jne 0x441c61
cmp esi, 2
jne 0x441cae
mov eax, dword [0x475104]
test eax, eax
je 0x4423f5
push 1
push dword [0x474dd4]
call dword [eax + 0x18]
jmp 0x4418f7
cmp eax, 0x13
jne 0x441c6e
mov byte [edi], 0x1a
jmp 0x442081
cmp esi, 2
jne 0x441cae
cmp eax, 0x32
jb 0x441c88
cmp eax, 0x38
ja 0x441c88
mov al, byte [eax + 0x46bc7e]
jmp 0x4419f3
cmp eax, 0xbd
je 0x441c96
cmp eax, 0xbf
jne 0x441c9b
mov byte [edi], 0x1f
jmp 0x441cdc
cmp eax, 0xdf
je 0x441ca9
cmp eax, 0xdc
jne 0x441ce7
mov byte [edi], 0x1c
jmp 0x441cdc
cmp esi, 3
jne 0x441cbf
cmp eax, 0xde
jne 0x441ce7
mov byte [edi], 0x1e
jmp 0x441cdc
test esi, esi
jne 0x441ce7
cmp eax, 0xd
jne 0x441ce7
mov eax, dword [0x4774f0]
cmp dword [eax + 0x150], esi
je 0x441ce7
mov byte [edi], 0xd
inc edi
mov byte [edi], 0xa
mov eax, edi
sub eax, dword [ebp + 0xc]
inc eax
jmp 0x441938
mov ecx, dword [ebp + 8]
lea eax, [ecx - 0x70]
xor ebx, ebx
cmp eax, 0x13
push 0xb
mov dword [ebp - 0x10], eax
pop esi
ja case.default.0x441cfe
jmp dword [eax*4 + 0x442420]
mov bl, byte [ebp - 0x11c]
and bl, 0x80
neg bl
sbb ebx, ebx
and ebx, 0xc
add ebx, esi
jmp case.default.0x441cfe
mov bl, byte [ebp - 0x11c]
and bl, 0x80
neg bl
sbb ebx, ebx
and ebx, 0xc
add ebx, 0xc
jmp case.default.0x441cfe
mov bl, byte [ebp - 0x11c]
and bl, 0x80
neg bl
sbb ebx, ebx
and ebx, 0xc
add ebx, 0xd
jmp case.default.0x441cfe
mov bl, byte [ebp - 0x11c]
and bl, 0x80
neg bl
sbb ebx, ebx
and ebx, 0xc
add ebx, 0xe
jmp case.default.0x441cfe
mov bl, byte [ebp - 0x11c]
and bl, 0x80
neg bl
sbb ebx, ebx
and ebx, 0xd
add ebx, 0xf
jmp case.default.0x441cfe
mov bl, byte [ebp - 0x11c]
and bl, 0x80
neg bl
sbb ebx, ebx
and ebx, 0xc
add ebx, 0x11
jmp case.default.0x441cfe
mov bl, byte [ebp - 0x11c]
and bl, 0x80
neg bl
sbb ebx, ebx
and ebx, 0xd
add ebx, 0x12
jmp case.default.0x441cfe
mov bl, byte [ebp - 0x11c]
and bl, 0x80
neg bl
sbb ebx, ebx
and ebx, 0xd
add ebx, 0x13
jmp case.default.0x441cfe
mov bl, byte [ebp - 0x11c]
and bl, 0x80
neg bl
sbb ebx, ebx
and ebx, 0xd
add ebx, 0x14
jmp case.default.0x441cfe
mov bl, byte [ebp - 0x11c]
and bl, 0x80
neg bl
sbb ebx, ebx
and ebx, 0xd
add ebx, 0x15
jmp case.default.0x441cfe
push 0x17
jmp 0x441e0b
push 0x18
jmp 0x441e0b
push 0x19
jmp 0x441e0b
push 0x1a
jmp 0x441e0b
push 0x1c
jmp 0x441e0b
push 0x1d
jmp 0x441e0b
push 0x1f
jmp 0x441e0b
push 0x20
jmp 0x441e0b
push 0x21
jmp 0x441e0b
push 0x22
pop ebx
test byte [ebp - 0xc], 2
push 6
pop edx
jne 0x441e45
mov eax, ecx
sub eax, 0x21
je 0x441e42
dec eax
je 0x441e3e
dec eax
je 0x441e3a
dec eax
je 0x441e35
sub eax, 9
je 0x441e31
dec eax
jne 0x441e45
push 3
jmp 0x441e44
push 2
jmp 0x441e44
xor ebx, ebx
inc ebx
jmp 0x441e45
push 4
jmp 0x441e44
mov ebx, edx
jmp 0x441e45
push 5
pop ebx
cmp dword [ebp - 0x14], 3
jne 0x441e56
cmp ebx, edx
jg 0x441e56
movsx ebx, byte [ebx + 0x46bca8]
mov eax, dword [0x4774f0]
mov ecx, dword [eax + 0x148]
test ecx, ecx
je 0x441e88
test ebx, ebx
jle 0x441e88
cmp ebx, edx
jg 0x441e88
movsx eax, byte [ebx + str._HLMEIG]
push eax
push 0x469680
push edi
call fcn.0044cd68
add esp, 0xc
jmp 0x442070
mov eax, dword [ebp - 0x14]
cmp eax, 5
jne 0x441f76
cmp ebx, esi
jl 0x441f33
cmp ebx, 0x22
jg 0x441f33
push 0xc
pop ecx
mov esi, str.MNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_____
lea edi, [ebp - 0x160]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x10]
xor eax, eax
cmp ecx, 0xb
movsb byte es:[edi], byte [esi]
ja case.default.0x441ec0
jmp dword [ecx*4 + 0x442470]
xor eax, eax
jmp case.default.0x441ec0
xor eax, eax
inc eax
jmp case.default.0x441ec0
push 2
jmp 0x441ef6
push 3
jmp 0x441ef6
push 4
jmp 0x441ef6
push 5
jmp 0x441ef6
mov eax, edx
jmp case.default.0x441ec0
push 7
jmp 0x441ef6
push 8
jmp 0x441ef6
push 9
jmp 0x441ef6
push 0xa
jmp 0x441ef6
push 0xb
pop eax
test byte [ebp - 0x11c], 0x80
je 0x441f03
add eax, 0xc
test byte [ebp - 0x11b], 0x80
je 0x441f0f
add eax, 0x18
movsx eax, byte [ebp + eax - 0x160]
mov esi, dword [ebp - 8]
push eax
push 0x469670
push esi
call fcn.0044cd68
sub esi, dword [ebp + 0xc]
add esp, 0xc
add eax, esi
jmp 0x441938
cmp ebx, 1
jl 0x441f76
cmp ebx, edx
jg 0x441f76
cmp ebx, 3
mov esi, str.HL.FIG
lea edi, [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jne 0x441f58
mov eax, dword [ebp - 8]
inc dword [ebp - 8]
mov byte [eax], 0x7f
jmp 0x441f71
movsx eax, byte [ebp + ebx - 0x2d]
push eax
push 0x469670
push dword [ebp - 8]
call fcn.0044cd68
add esp, 0xc
add dword [ebp - 8], eax
mov eax, dword [ebp - 8]
jmp 0x441fe2
test ecx, ecx
jne 0x441f7f
cmp eax, 4
jne 0x441f9a
cmp ebx, esi
jl 0x441f9a
cmp ebx, 0x18
jg 0x441f9a
xor eax, eax
cmp ebx, 0xf
jle 0x441f90
inc eax
cmp ebx, 0x15
jle 0x441f96
inc eax
sub ebx, eax
jmp 0x441fc4
cmp eax, 1
jne 0x441fb6
cmp ebx, esi
jl 0x441fea
cmp ebx, 0xf
jg 0x441fea
add ebx, 0x36
push ebx
push str.e___c
jmp 0x441e7a
cmp eax, 2
jne 0x441fea
cmp ebx, esi
jl 0x441fea
cmp ebx, 0xe
jg 0x441fea
add ebx, 0x45
test ecx, ecx
push ebx
jne 0x441b9c
push str.eO_c
push edi
call fcn.0044cd68
add esp, 0xc
add edi, eax
mov eax, edi
sub eax, dword [ebp + 0xc]
jmp 0x441938
cmp ebx, 1
je 0x441ff4
cmp ebx, 4
jne 0x442021
push 0x3e
push dword [0x4774dc]
call fcn.00402036
test eax, eax
pop ecx
pop ecx
je 0x442021
cmp ebx, 1
mov eax, 0x46bc58
je 0x442016
mov eax, 0x46bc54
push eax
push edi
call fcn.0044cd68
pop ecx
pop ecx
jmp 0x442070
test ebx, ebx
je 0x442030
push ebx
push str.e__d
jmp 0x441e7a
mov ecx, dword [ebp + 8]
mov eax, ecx
sub eax, 0xc
je 0x442058
sub eax, 0x19
je 0x442054
dec eax
je 0x442050
dec eax
je 0x44204c
dec eax
jne 0x44207a
mov al, 0x42
jmp 0x44205a
mov al, 0x43
jmp 0x44205a
mov al, 0x41
jmp 0x44205a
mov al, 0x44
jmp 0x44205a
mov al, 0x47
push dword [ebp - 0xc]
movsx eax, al
push eax
push dword [0x4774f0]
push edi
call fcn.00432458
add esp, 0x10
sub edi, dword [ebp + 0xc]
add eax, edi
jmp 0x441938
cmp ecx, 0xd
jne 0x44208d
mov byte [edi], cl
push 0xfffffffffffffffe
mov byte [edi + 1], 0
pop eax
jmp 0x441938
cmp dword [ebp - 4], 0
je 0x4420b0
cmp ecx, 0x60
jb 0x4420b0
cmp ecx, 0x69
ja 0x4420b0
mov eax, dword [0x476154]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x60]
mov dword [0x476154], eax
jmp 0x4420b7
and dword [0x476154], 0
and dword [ebp - 0x10], 0
cmp byte [ebp - 0x118], 0
je 0x4420ec
push 0x8f
push dword [0x4774dc]
call fcn.00402036
test eax, eax
pop ecx
pop ecx
je 0x4420ec
xor eax, eax
cmp dword [ebp - 4], eax
mov byte [ebp - 0x118], 0
sete al
mov dword [ebp - 0x10], eax
cmp dword [0x477450], 2
push dword [ebp - 0x20]
lea eax, [ebp - 0x12c]
jne 0x442119
xor edi, edi
push edi
push 3
push 0x475c84
push eax
push dword [ebp - 0x24]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_ToUnicodeEx]
mov esi, eax
jmp 0x442168
push 0
push 0x474cb0
push eax
push dword [ebp - 0x24]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_ToAsciiEx]
mov esi, eax
test esi, esi
jle 0x44238e
xor eax, eax
test esi, esi
jle 0x44214f
mov cl, byte [eax*2 + 0x474cb0]
mov byte [eax + 0x474ca0], cl
inc eax
cmp eax, esi
jl 0x44213d
push 3
push 0x475c84
push esi
push 0x474ca0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor edi, edi
cmp esi, edi
jle 0x44238e
push dword [0x4774f0]
call fcn.004324bd
xor ebx, ebx
cmp esi, edi
pop ecx
jle 0x44237b
mov ecx, dword [0x476104]
xor eax, eax
cmp ecx, 2
mov ax, word [ebx*2 + 0x475c84]
mov dword [ebp - 0x18], eax
jne 0x4421c5
cmp ax, 0x20
jb 0x442228
cmp ax, 0x80
jae 0x442228
movzx eax, ax
mov dword [0x476158], eax
mov dword [0x476104], 3
jmp 0x442372
cmp ecx, 3
jne 0x442228
cmp ax, 0x20
jb 0x442228
cmp ax, 0x80
jae 0x442228
movzx eax, ax
push eax
push dword [0x476158]
mov dword [0x476104], edi
call fcn.0044a600
cmp eax, 0xffffffff
pop ecx
pop ecx
je 0x442384
push dword [0x4774f0]
mov dword [ebp - 0xc], eax
call fcn.00432aa7
mov eax, dword [0x475118]
cmp eax, edi
pop ecx
je 0x442372
push 1
push 1
lea ecx, [ebp - 0xc]
push ecx
push eax
call fcn.00408acb
add esp, 0x10
jmp 0x442372
cmp dword [ebp - 0x2c], edi
mov dword [0x476104], edi
jne 0x4422dc
mov ecx, dword [0x476154]
cmp ecx, edi
je 0x4422b7
mov eax, dword [0x4774f0]
cmp dword [eax + 0xdc], edi
jne 0x442288
mov edx, dword [eax + 0x1098]
cmp dword [edx + 0xc], 0xfde9
je 0x442288
cmp dword [0x475124], edi
jne 0x442288
push eax
mov byte [ebp + 0xf], cl
call fcn.00432aa7
mov eax, dword [0x475118]
cmp eax, edi
pop ecx
je 0x4422ac
push 1
push 1
lea ecx, [ebp + 0xf]
push ecx
push eax
call fcn.004083ee
jmp 0x4422a9
push eax
mov dword [ebp - 0xc], ecx
call fcn.00432aa7
mov eax, dword [0x475118]
cmp eax, edi
pop ecx
je 0x4422ac
push 1
push 1
lea ecx, [ebp - 0xc]
push ecx
push eax
call fcn.00408acb
add esp, 0x10
mov dword [0x476154], edi
jmp 0x44236b
push dword [0x4774f0]
call fcn.00432aa7
mov eax, dword [0x475118]
cmp eax, edi
pop ecx
je 0x44236b
push 1
push 1
lea ecx, [ebp - 0x18]
jmp 0x442361
cmp dword [ebp - 0x10], edi
je 0x44232a
cmp ax, 0x80
jae 0x44232a
movzx eax, ax
push eax
mov word [ebp - 0x24], 0x1b
call fcn.0044a55e
push dword [0x4774f0]
mov word [ebp - 0x22], ax
call fcn.00432aa7
mov eax, dword [0x475118]
cmp eax, edi
pop ecx
pop ecx
je 0x44236b
xor ecx, ecx
cmp dword [ebp - 4], edi
push 1
setne cl
inc ecx
push ecx
xor ecx, ecx
cmp dword [ebp - 4], edi
sete cl
lea ecx, [ebp + ecx*2 - 0x24]
jmp 0x442361
push dword [0x4774f0]
mov word [ebp - 0x20], 0x1b
mov word [ebp - 0x1e], ax
call fcn.00432aa7
mov eax, dword [0x475118]
cmp eax, edi
pop ecx
je 0x44236b
xor ecx, ecx
cmp dword [ebp - 4], edi
push 1
setne cl
inc ecx
push ecx
xor ecx, ecx
cmp dword [ebp - 4], edi
sete cl
lea ecx, [ebp + ecx*2 - 0x20]
push ecx
push eax
call fcn.00408acb
add esp, 0x10
xor eax, eax
call fcn.0043e571
inc ebx
cmp ebx, esi
jl 0x442186
mov word [0x475c84], di
jmp 0x4423f5
push 0x10
call dword [sym.imp.USER32.dll_MessageBeep]
jmp 0x4423f5
xor ecx, ecx
cmp dword [ebp - 4], ecx
jne 0x44239e
mov word [0x475c84], cx
jmp 0x4423d4
cmp word [0x475c84], cx
je 0x4423d4
mov eax, dword [0x4774f0]
cmp dword [eax + 0xdc], ecx
jne 0x4423cb
mov eax, dword [eax + 0x1098]
cmp dword [eax + 0xc], 0xfde9
je 0x4423cb
cmp dword [0x475124], ecx
je 0x4423d4
mov word [0x475c84], 0xa
cmp dword [ebp + 8], 0x12
jne 0x441935
push 0x50
push dword [0x4774dc]
call fcn.00402036
test eax, eax
pop ecx
pop ecx
jne 0x441935
xor eax, eax
jmp 0x441938