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

Disassembly:
sub esp, 0x158
mov eax, dword [0x4832b0]
xor eax, esp
mov dword [esp + 0x154], eax
push ebp
mov ebp, dword [esp + 0x164]
push esi
push edi
mov edi, dword [esp + 0x168]
push 0
mov esi, ecx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x18], 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x2c]
push eax
call dword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
jne 0x44a283
push 0x100
push eax
lea ecx, [esp + 0x34]
push ecx
call fcn.00456570
add esp, 0xc
jmp 0x44a302
cmp edi, 0x12
jne 0x44a2a0
mov edx, esi
shr edx, 0x10
test edx, 0x100
je 0x44a2a0
mov al, byte [esp + 0x3e]
mov byte [esp + 0xd1], al
mov eax, dword [0x4898e8]
cmp eax, 3
je 0x44a2c7
cmp eax, 1
jg 0x44a2f7
mov ecx, dword [0x487d6c]
cmp dword [ecx + 0x144], 0
je 0x44a2f7
cmp dword [0x4898f0], 0
jne 0x44a2f7
cmp edi, 0x90
jne 0x44a2f7
test byte [esp + 0x3c], 0x80
jne 0x44a2f7
mov edx, esi
shr edx, 0x10
mov edi, 0x2b
mov dword [esp + 0x168], edi
test edx, 0xc000
jne 0x44a2f7
xor byte [esp + 0xbc], 1
lea eax, [esp + 0x2c]
push eax
call dword [sym.imp.USER32.dll_SetKeyboardState]
mov ecx, dword [0x487d6c]
cmp dword [ecx + 0x14c], 0
je 0x44a33e
mov edx, esi
shr edx, 0x10
and edx, 0xc000
cmp edx, 0x4000
jne 0x44a33e
pop edi
pop esi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x154]
xor ecx, esp
call fcn.00456f82
add esp, 0x158
ret
shr esi, 0x10
push ebx
mov bl, byte [esp + 0xd5]
test esi, 0x2000
je 0x44a35d
test bl, bl
js 0x44a35d
mov dword [esp + 0x18], 1
movzx eax, si
mov ecx, eax
shr ecx, 0xf
not ecx
and ecx, 1
cmp dword [esp + 0x18], 0
mov dword [esp + 0x24], ecx
je 0x44a39d
test byte [esp + 0x41], 0x80
je 0x44a39d
cmp dword [0x489950], 0
je 0x44a38c
mov byte [esp + 0x42], 0
jmp 0x44a39d
mov bl, 0x80
mov byte [esp + 0xd5], bl
mov dword [esp + 0x18], 0
movzx ecx, byte [esp + 0x40]
mov edx, dword [0x486260]
and eax, 0x81ff
mov dword [esp + 0x20], eax
movzx eax, byte [esp + 0x41]
shr eax, 7
shr ecx, 7
lea ecx, [ecx + eax*2]
test edx, edx
jne 0x44a3fb
mov dword [0x4862b8], 0x100
cmp dword [0x48994c], edx
je 0x44a3ee
cmp edi, 0x12
jne 0x44a3ee
test esi, 0x100
je 0x44a490
mov dword [0x4862b8], edi
jmp 0x44a414
cmp edi, 0x5d
jne 0x44a3fb
mov dword [0x4862b8], edi
jmp 0x44a414
mov eax, dword [0x4862b8]
cmp dword [esp + 0x16c], eax
jne 0x44a454
test edx, edx
jne 0x44a429
mov edi, dword [esp + 0x16c]
test esi, 0xc000
jne 0x44a44a
mov edx, 1
mov dword [0x486260], edx
jmp 0x44a490
cmp edx, 1
jne 0x44a443
test esi, 0x8000
je 0x44a443
mov edx, 2
mov dword [0x486260], edx
jmp 0x44a471
mov edi, dword [esp + 0x16c]
xor edx, edx
mov dword [0x486260], edx
jmp 0x44a490
cmp edx, 1
jne 0x44a46f
mov edi, dword [esp + 0x16c]
cmp edi, 0x11
je 0x44a490
xor edx, edx
mov dword [0x486260], edx
jmp 0x44a490
jle 0x44a489
cmp dword [esp + 0x18], 0
mov edi, dword [esp + 0x16c]
je 0x44a497
xor edx, edx
mov dword [0x486260], edx
jmp 0x44a490
mov edi, dword [esp + 0x16c]
cmp dword [esp + 0x18], 0
jne 0x44a4cd
mov eax, dword [0x487d6c]
cmp dword [eax + 0x144], 0
je 0x44a4b7
cmp dword [0x4898f0], 0
jne 0x44a4b7
cmp dword [0x4898e8], 2
jne 0x44a4cd
cmp dword [0x4898e8], 3
je 0x44a4cd
cmp dword [0x489918], 0
jne 0x44a4cd
test edx, edx
je case.0x44a4e4.13
test esi, 0x100
jne case.0x44a4e4.13
lea eax, [edi - 0xc]
cmp eax, 0x22
ja case.0x44a4e4.13
movzx eax, byte [eax + 0x44b2dc]
jmp dword [eax*4 + 0x44b2ac]
mov eax, 0x60
jmp 0x44a536
mov eax, 0x61
jmp 0x44a536
mov eax, 0x62
jmp 0x44a536
mov eax, 0x63
jmp 0x44a536
mov eax, 0x64
jmp 0x44a536
mov eax, 0x65
jmp 0x44a536
mov eax, 0x66
jmp 0x44a536
mov eax, 0x67
jmp 0x44a536
mov eax, 0x68
jmp 0x44a536
mov eax, 0x69
jmp 0x44a536
mov eax, 0x6e
test byte [esp + 0xc0], 1
je 0x44a543
or ecx, 1
mov edi, eax
cmp dword [esp + 0x24], 0
je 0x44af2d
test bl, bl
js 0x44af2d
test edx, edx
jne 0x44af2d
mov eax, dword [esp + 0x18]
test eax, eax
je 0x44a56d
mov byte [ebp], 0x1b
inc ebp
cmp edi, 0x21
jne 0x44a5b6
cmp ecx, 1
jne 0x44a594
mov ecx, dword [0x48a960]
push 0
push 2
push 0x115
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
xor eax, eax
jmp 0x44b293
cmp ecx, 2
jne 0x44a5fe
mov edx, dword [0x48a960]
push 0
push 0
push 0x115
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
xor eax, eax
jmp 0x44b293
cmp edi, 0x22
jne 0x44a621
cmp ecx, 1
jne 0x44a5dc
mov eax, dword [0x48a960]
push 0
push 3
push 0x115
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
xor eax, eax
jmp 0x44b293
cmp ecx, 2
jne 0x44a5fe
mov ecx, dword [0x48a960]
push 0
push 1
push 0x115
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
xor eax, eax
jmp 0x44b293
cmp ecx, 3
jne 0x44a621
mov eax, dword [0x487d6c]
xor edx, edx
cmp edi, 0x21
setne dl
push edx
push eax
call fcn.00439af0
add esp, 8
xor eax, eax
jmp 0x44b293
cmp edi, 0x2d
jne 0x44a63c
cmp ecx, 1
jne 0x44a63c
push 0
call fcn.00448cf0
add esp, 4
xor eax, eax
jmp 0x44b293
test eax, eax
je 0x44a6dd
cmp edi, 0x73
jne 0x44a67e
cmp dword [0x489924], 0
jne 0x44b290
cmp dword [0x489918], 0
je 0x44a7d2
test eax, eax
jne 0x44a938
lea eax, [edi - 0x61]
cmp eax, 8
ja case.default.0x44a677
jmp dword [eax*4 + 0x44b300]
cmp edi, 0x20
jne 0x44a6aa
cmp dword [0x489928], 0
je 0x44a656
mov ecx, dword [0x48a960]
push 0
push 0xf100
push 0x112
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x44b290
cmp edi, 0xd
jne 0x44a6dd
cmp dword [0x48993c], 0
je 0x44a656
cmp dword [0x489b90], 1
je 0x44a656
and esi, 0xc000
cmp esi, 0x4000
je 0x44b290
call fcn.00449e60
jmp 0x44b290
cmp edi, 0x13
jne 0x44a656
cmp ecx, 2
jne 0x44a656
mov eax, dword [0x487d6c]
xor dword [eax + 0x144], 1
xor eax, eax
jmp 0x44b293
and ecx, 3
mov dl, byte [ecx + 0x47ba94]
mov eax, ebp
sub eax, dword [esp + 0x10]
mov byte [ebp], dl
inc eax
jmp 0x44b293
and ecx, 3
mov al, byte [ecx + str.jJ_n_n]
mov byte [ebp], al
mov eax, ebp
sub eax, dword [esp + 0x10]
inc eax
jmp 0x44b293
and ecx, 3
mov cl, byte [ecx + 0x47ba84]
mov eax, ebp
sub eax, dword [esp + 0x10]
mov byte [ebp], cl
inc eax
jmp 0x44b293
and ecx, 3
mov dl, byte [ecx + str.hH_b_b]
mov eax, ebp
sub eax, dword [esp + 0x10]
mov byte [ebp], dl
inc eax
jmp 0x44b293
mov eax, ebp
sub eax, dword [esp + 0x10]
mov byte [ebp], 0x2e
inc eax
jmp 0x44b293
and ecx, 3
mov al, byte [ecx + str.lL_f_f]
mov byte [ebp], al
mov eax, ebp
sub eax, dword [esp + 0x10]
inc eax
jmp 0x44b293
and ecx, 3
mov cl, byte [ecx + 0x47ba6c]
mov eax, ebp
sub eax, dword [esp + 0x10]
mov byte [ebp], cl
inc eax
jmp 0x44b293
and ecx, 3
mov dl, byte [ecx + str.kK_v_v]
mov eax, ebp
sub eax, dword [esp + 0x10]
mov byte [ebp], dl
inc eax
jmp 0x44b293
and ecx, 3
mov al, byte [ecx + 0x47ba5c]
mov byte [ebp], al
mov eax, ebp
sub eax, dword [esp + 0x10]
inc eax
jmp 0x44b293
test eax, eax
jne 0x44a938
mov ebx, dword [0x4898e8]
xor eax, eax
cmp ebx, 3
je 0x44a802
cmp ebx, 1
jg case.0x44a811.44
mov edx, dword [0x487d6c]
cmp dword [edx + 0x144], eax
je case.0x44a811.44
cmp dword [0x4898f0], eax
jne case.0x44a811.44
lea edx, [edi - 0x2b]
cmp edx, 0x44
ja case.0x44a811.44
movzx edx, byte [edx + 0x44b338]
jmp dword [edx*4 + 0x44b324]
mov eax, 0x50
jmp case.0x44a811.44
mov eax, 0x51
jmp case.0x44a811.44
mov eax, 0x52
jmp case.0x44a811.44
mov eax, 0x53
mov edx, dword [0x487d6c]
cmp dword [edx + 0x144], 0
je case.0x44a865.14
cmp dword [0x4898f0], 0
jne case.0x44a865.14
lea edx, [edi - 0xd]
cmp edx, 0x62
ja case.0x44a865.14
movzx edx, byte [edx + 0x44b3c4]
jmp dword [edx*4 + 0x44b380]
mov eax, 0x70
jmp 0x44a90e
mov eax, 0x71
jmp 0x44a90e
mov eax, 0x72
jmp 0x44a90e
mov eax, 0x73
jmp 0x44a90e
mov eax, 0x74
jmp 0x44a90e
mov eax, 0x75
jmp 0x44a90e
mov eax, 0x76
jmp 0x44a90e
mov eax, 0x77
jmp 0x44a90e
mov eax, 0x78
jmp 0x44a90e
mov eax, 0x79
jmp 0x44a90e
mov eax, 0x6e
jmp 0x44a90e
xor eax, eax
cmp ebx, 2
jne 0x44a8d3
test ecx, ecx
setne al
add eax, 0x6b
jmp 0x44a90e
test ecx, ecx
setne al
add eax, 0x6c
jmp 0x44a90e
cmp ebx, 2
jne case.0x44a865.14
lea eax, [ebx + 0x6d]
jmp 0x44a90e
cmp ebx, 2
jne case.0x44a865.14
lea eax, [ebx + 0x68]
jmp 0x44a90e
cmp ebx, 2
jne case.0x44a865.14
lea eax, [ebx + 0x6b]
jmp 0x44a90e
test esi, 0x100
je case.0x44a865.14
mov eax, 0x4d
jmp 0x44a90e
test eax, eax
je 0x44a938
mov ecx, dword [0x487d6c]
cmp dword [ecx + 0x148], 0
push eax
je 0x44ae23
lea edx, [eax - 0x50]
cmp edx, 3
jbe 0x44ae1c
push str.e__c
jmp 0x44ae28
cmp edi, 8
jne 0x44a986
test ecx, ecx
jne 0x44a95c
mov eax, dword [0x4898e0]
neg eax
sbb al, al
and al, 0x77
add al, 8
mov byte [ebp], al
mov byte [ebp + 1], cl
lea eax, [edi - 0xa]
jmp 0x44b293
cmp ecx, 1
jne 0x44aa21
mov ecx, dword [0x4898e0]
neg ecx
sbb cl, cl
and cl, 0x89
add cl, 0x7f
mov byte [ebp], cl
mov byte [ebp + 1], 0
mov eax, 0xfffffffe
jmp 0x44b293
cmp edi, 9
jne 0x44a9ae
cmp ecx, 1
jne 0x44aa21
mov byte [ebp], 0x1b
inc ebp
mov byte [ebp], 0x5b
inc ebp
mov eax, ebp
sub eax, dword [esp + 0x10]
mov byte [ebp], 0x5a
inc eax
jmp 0x44b293
cmp edi, 0x20
jne 0x44a9dd
cmp ecx, 2
jne 0x44a9c8
mov eax, ebp
sub eax, dword [esp + 0x10]
mov byte [ebp], 0
inc eax
jmp 0x44b293
cmp ecx, 3
jne 0x44aa21
mov eax, ebp
sub eax, dword [esp + 0x10]
mov byte [ebp], 0xa0
inc eax
jmp 0x44b293
cmp edi, 3
jne 0x44aa0c
cmp ecx, 2
jne 0x44aa83
mov eax, dword [0x484f44]
test eax, eax
je 0x44aa05
mov edx, dword [0x484f3c]
mov eax, dword [eax + 0x18]
push 1
push edx
call eax
add esp, 8
xor eax, eax
jmp 0x44b293
cmp edi, 0x13
jne 0x44aa21
mov byte [ebp], 0x1a
mov byte [ebp + 1], 0
lea eax, [edi - 0x15]
jmp 0x44b293
cmp ecx, 2
jne 0x44aa83
lea edx, [edi - 0x32]
cmp edx, 6
ja 0x44aa43
mov al, byte [edi + 0x47ba22]
mov byte [ebp], al
mov eax, ebp
sub eax, dword [esp + 0x10]
inc eax
jmp 0x44b293
cmp edi, 0xbd
je 0x44aa53
cmp edi, 0xbf
jne 0x44aa63
mov eax, ebp
sub eax, dword [esp + 0x10]
mov byte [ebp], 0x1f
inc eax
jmp 0x44b293
cmp edi, 0xdf
je 0x44aa73
cmp edi, 0xdc
jne 0x44aacc
mov eax, ebp
sub eax, dword [esp + 0x10]
mov byte [ebp], 0x1c
inc eax
jmp 0x44b293
cmp ecx, 3
jne 0x44aaa0
cmp edi, 0xde
jne 0x44aacc
mov eax, ebp
sub eax, dword [esp + 0x10]
mov byte [ebp], 0x1e
inc eax
jmp 0x44b293
test ecx, ecx
jne 0x44aacc
cmp edi, 0xd
jne 0x44aacc
mov edx, dword [0x487d6c]
cmp dword [edx + 0x150], ecx
je 0x44aacc
mov byte [ebp], 0xd
inc ebp
mov eax, ebp
sub eax, dword [esp + 0x10]
mov byte [ebp], 0xa
inc eax
jmp 0x44b293
lea ebx, [edi - 0x70]
xor eax, eax
cmp ebx, 0x13
ja case.default.0x44aada
jmp dword [ebx*4 + 0x44b428]
mov al, byte [esp + 0x40]
and al, 0x80
movzx eax, al
neg eax
sbb eax, eax
and eax, 0xc
add eax, 0xb
jmp case.default.0x44aada
mov dl, byte [esp + 0x40]
and dl, 0x80
movzx eax, dl
neg eax
sbb eax, eax
and eax, 0xc
add eax, 0xc
jmp case.default.0x44aada
mov al, byte [esp + 0x40]
and al, 0x80
movzx eax, al
neg eax
sbb eax, eax
and eax, 0xc
add eax, 0xd
jmp case.default.0x44aada
mov dl, byte [esp + 0x40]
and dl, 0x80
movzx eax, dl
neg eax
sbb eax, eax
and eax, 0xc
add eax, 0xe
jmp case.default.0x44aada
mov al, byte [esp + 0x40]
and al, 0x80
movzx eax, al
neg eax
sbb eax, eax
and eax, 0xd
add eax, 0xf
jmp case.default.0x44aada
mov dl, byte [esp + 0x40]
and dl, 0x80
movzx eax, dl
neg eax
sbb eax, eax
and eax, 0xc
add eax, 0x11
jmp case.default.0x44aada
mov al, byte [esp + 0x40]
and al, 0x80
movzx eax, al
neg eax
sbb eax, eax
and eax, 0xd
add eax, 0x12
jmp case.default.0x44aada
mov dl, byte [esp + 0x40]
and dl, 0x80
movzx eax, dl
neg eax
sbb eax, eax
and eax, 0xd
add eax, 0x13
jmp case.default.0x44aada
mov al, byte [esp + 0x40]
and al, 0x80
movzx eax, al
neg eax
sbb eax, eax
and eax, 0xd
add eax, 0x14
jmp case.default.0x44aada
mov dl, byte [esp + 0x40]
and dl, 0x80
movzx eax, dl
neg eax
sbb eax, eax
and eax, 0xd
add eax, 0x15
jmp case.default.0x44aada
mov eax, 0x17
jmp case.default.0x44aada
mov eax, 0x18
jmp case.default.0x44aada
mov eax, 0x19
jmp case.default.0x44aada
mov eax, 0x1a
jmp case.default.0x44aada
mov eax, 0x1c
jmp case.default.0x44aada
mov eax, 0x1d
jmp case.default.0x44aada
mov eax, 0x1f
jmp case.default.0x44aada
mov eax, 0x20
jmp case.default.0x44aada
mov eax, 0x21
jmp case.default.0x44aada
mov eax, 0x22
test cl, 2
jne case.0x44ac25.37
lea edx, [edi - 0x21]
cmp edx, 0xd
ja case.0x44ac25.37
movzx edx, byte [edx + 0x44b494]
jmp dword [edx*4 + 0x44b478]
mov eax, 1
jmp case.0x44ac25.37
mov eax, 2
jmp case.0x44ac25.37
mov eax, 3
jmp case.0x44ac25.37
mov eax, 4
jmp case.0x44ac25.37
mov eax, 5
jmp case.0x44ac25.37
mov eax, 6
mov esi, dword [0x4898e8]
cmp esi, 3
jne 0x44ac6b
cmp eax, 6
jg 0x44ac6b
movsx eax, byte [eax + 0x47ba4c]
mov edx, dword [0x487d6c]
mov edx, dword [edx + 0x148]
test edx, edx
je 0x44acaa
lea esi, [eax - 1]
cmp esi, 5
ja 0x44aca4
movsx eax, byte [eax + str._HLMEIG]
push eax
push 0x479f34
push ebp
call fcn.00456f05
sub ebp, dword [esp + 0x1c]
add esp, 0xc
add eax, ebp
jmp 0x44b293
mov esi, dword [0x4898e8]
cmp esi, 5
jne 0x44adb6
lea esi, [eax - 0xb]
cmp esi, 0x17
ja 0x44ad66
mov ecx, 0xc
mov esi, str.MNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_____
lea edi, [esp + 0x130]
rep movsd dword es:[edi], dword [esi]
xor eax, eax
movsb byte es:[edi], byte [esi]
cmp ebx, 0xb
ja case.default.0x44acda
jmp dword [ebx*4 + 0x44b4a4]
xor eax, eax
jmp case.default.0x44acda
mov eax, 1
jmp case.default.0x44acda
mov eax, 2
jmp case.default.0x44acda
mov eax, 3
jmp case.default.0x44acda
mov eax, 4
jmp case.default.0x44acda
mov eax, 5
jmp case.default.0x44acda
mov eax, 6
jmp case.default.0x44acda
mov eax, 7
jmp case.default.0x44acda
mov eax, 8
jmp case.default.0x44acda
mov eax, 9
jmp case.default.0x44acda
mov eax, 0xa
jmp case.default.0x44acda
mov eax, 0xb
test byte [esp + 0x40], 0x80
je 0x44ad3a
add eax, 0xc
test byte [esp + 0x41], 0x80
je 0x44ad44
add eax, 0x18
movsx ecx, byte [esp + eax + 0x130]
push ecx
push 0x479f24
push ebp
call fcn.00456f05
sub ebp, dword [esp + 0x1c]
add esp, 0xc
add eax, ebp
jmp 0x44b293
lea esi, [eax - 1]
cmp esi, 5
ja 0x44adb0
mov edx, dword [str.HL.FIG]
mov cx, word [0x47ba0c]
mov dword [esp + 0x28], edx
mov dl, byte [0x47ba0e]
mov word [esp + 0x2c], cx
mov byte [esp + 0x2e], dl
cmp eax, 3
jne 0x44ada3
mov byte [ebp], 0x7f
inc ebp
mov eax, ebp
sub eax, dword [esp + 0x10]
jmp 0x44b293
movsx eax, byte [esp + eax + 0x27]
push eax
push 0x479f24
jmp 0x44ae28
mov esi, dword [0x4898e8]
test edx, edx
jne 0x44adbf
cmp esi, 4
jne 0x44addd
lea ebx, [eax - 0xb]
cmp ebx, 0xd
ja 0x44addd
xor ecx, ecx
cmp eax, 0xf
jle 0x44add3
mov ecx, 1
cmp eax, 0x15
jle 0x44add9
inc ecx
sub eax, ecx
jmp 0x44ae14
cmp esi, 1
jne 0x44ae07
lea edx, [eax - 0xb]
cmp edx, 4
ja 0x44ae3e
add eax, 0x36
push eax
push str.e___c
push ebp
call fcn.00456f05
sub ebp, dword [esp + 0x1c]
add esp, 0xc
add eax, ebp
jmp 0x44b293
cmp esi, 2
jne 0x44ae3e
lea esi, [eax - 0xb]
cmp esi, 3
ja 0x44ae3e
add eax, 0x45
push eax
test edx, edx
je 0x44ae23
push 0x479f34
jmp 0x44ae28
push str.eO_c
push ebp
call fcn.00456f05
add ebp, eax
mov eax, ebp
add esp, 0xc
sub eax, dword [esp + 0x10]
jmp 0x44b293
cmp dword [0x4898e4], 0
je 0x44ae85
cmp eax, 1
je 0x44ae6b
cmp eax, 4
jne 0x44ae85
mov eax, 0x479f60
push eax
push ebp
call fcn.00456f05
sub ebp, dword [esp + 0x18]
add esp, 8
add eax, ebp
jmp 0x44b293
mov eax, 0x479f5c
push eax
push ebp
call fcn.00456f05
sub ebp, dword [esp + 0x18]
add esp, 8
add eax, ebp
jmp 0x44b293
test eax, eax
je 0x44aea3
push eax
push str.e__d
push ebp
call fcn.00456f05
sub ebp, dword [esp + 0x1c]
add esp, 0xc
add eax, ebp
jmp 0x44b293
lea eax, [edi - 0xc]
cmp eax, 0x1c
ja case.0x44aeb2.13
movzx eax, byte [eax + 0x44b4ec]
jmp dword [eax*4 + 0x44b4d4]
mov al, 0x41
jmp 0x44aecb
mov al, 0x42
jmp 0x44aecb
mov al, 0x43
jmp 0x44aecb
mov al, 0x44
jmp 0x44aecb
mov al, 0x47
mov edx, dword [0x487d6c]
push ecx
movsx ecx, al
push ecx
push edx
push ebp
call fcn.00439550
sub ebp, dword [esp + 0x20]
add esp, 0x10
add eax, ebp
jmp 0x44b293
cmp edi, 0xd
jne 0x44af00
mov byte [ebp], 0xd
mov byte [ebp + 1], 0
lea eax, [edi - 0xf]
jmp 0x44b293
cmp dword [esp + 0x18], 0
je 0x44af23
lea eax, [edi - 0x60]
cmp eax, 9
ja 0x44af23
mov eax, dword [0x4862b0]
lea ecx, [eax + eax*4]
lea edx, [edi + ecx*2 - 0x60]
mov dword [0x4862b0], edx
jmp 0x44af2d
mov dword [0x4862b0], 0
cmp dword [0x48a19c], 0
mov dword [esp + 0x28], 0
je 0x44af57
cmp byte [esp + 0x44], 0
je 0x44af57
xor eax, eax
cmp dword [esp + 0x18], eax
mov byte [esp + 0x44], 0
sete al
mov dword [esp + 0x28], eax
cmp dword [0x487cd0], 2
lea eax, [esp + 0x30]
jne 0x44afa7
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x24]
push 0
lea edx, [esp + 0x18]
push edx
push eax
push ecx
push edi
call dword [sym.imp.USER32.dll_ToAsciiEx]
movzx dx, byte [esp + 0x10]
movzx cx, byte [esp + 0x12]
mov ebx, eax
movzx ax, byte [esp + 0x11]
mov word [0x485db0], dx
mov word [0x485db2], ax
mov word [0x485db4], cx
jmp 0x44afc2
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
push edx
push 0
push 0x485db0
push eax
push ecx
push edi
call dword [sym.imp.USER32.dll_ToAsciiEx]
mov ebx, eax
test ebx, ebx
jle 0x44b235
mov edx, dword [0x487d6c]
push edx
call fcn.004395f0
xor edi, edi
add esp, 4
xor esi, esi
cmp ebx, edi
jle 0x44b21d
mov ebp, dword [esp + 0x18]
lea esp, [esp]
mov ecx, dword [0x486260]
mov al, byte [esi*2 + 0x485db0]
mov byte [esp + 0x17], al
cmp ecx, 2
jne 0x44b02d
test al, al
js 0x44b096
cmp al, 0x20
jbe 0x44b096
movzx eax, al
mov dword [0x4862b4], eax
mov dword [0x486260], 3
jmp 0x44b214
cmp ecx, 3
jne 0x44b096
test al, al
js 0x44b096
cmp al, 0x20
jbe 0x44b096
mov edx, dword [0x4862b4]
movzx ecx, al
push ecx
push edx
mov dword [0x486260], edi
call fcn.00454420
add esp, 8
cmp eax, 0xffffffff
je 0x44b229
mov ecx, dword [0x487d6c]
movzx eax, ax
push ecx
mov dword [esp + 0x20], eax
call fcn.0043a3c0
mov eax, dword [0x48527c]
add esp, 4
cmp eax, edi
je 0x44b214
push 1
push 1
lea edx, [esp + 0x24]
push edx
push eax
call fcn.00409500
add esp, 0x10
jmp 0x44b214
mov dword [0x486260], edi
cmp dword [esp + 0x24], edi
jne 0x44b16a
mov ecx, dword [0x4862b0]
cmp ecx, edi
je 0x44b141
mov eax, dword [0x487d6c]
cmp dword [eax + 0xdc], edi
jne 0x44b10b
mov edx, dword [eax + 0x108c]
cmp dword [edx + 0xc], 0xfde9
je 0x44b10b
cmp dword [0x485284], edi
jne 0x44b10b
push eax
mov byte [esp + 0x1b], cl
call fcn.0043a3c0
mov eax, dword [0x48527c]
add esp, 4
cmp eax, edi
je 0x44b136
push 1
push 1
lea ecx, [esp + 0x1f]
push ecx
push eax
call fcn.00408c50
add esp, 0x10
mov dword [0x4862b0], edi
jmp 0x44b20d
movzx edx, cx
push eax
mov dword [esp + 0x20], edx
call fcn.0043a3c0
mov eax, dword [0x48527c]
add esp, 4
cmp eax, edi
je 0x44b136
push 1
push 1
lea ecx, [esp + 0x24]
push ecx
push eax
call fcn.00409500
add esp, 0x10
mov dword [0x4862b0], edi
jmp 0x44b20d
mov edx, dword [0x487d6c]
push edx
call fcn.0043a3c0
mov eax, dword [0x48527c]
add esp, 4
cmp eax, edi
je 0x44b20d
push 1
push 1
lea ecx, [esp + 0x1f]
jmp 0x44b1fc
cmp dword [esp + 0x28], edi
je 0x44b1c5
cmp al, 0x80
jae 0x44b1c5
movzx edx, al
mov ecx, 0x1b
push edx
mov word [esp + 0x24], cx
call fcn.00454360
mov word [esp + 0x26], ax
mov eax, dword [0x487d6c]
push eax
call fcn.0043a3c0
mov eax, dword [0x48527c]
add esp, 8
cmp eax, edi
je 0x44b20d
xor ecx, ecx
cmp ebp, edi
setne cl
xor edx, edx
push 1
inc ecx
cmp ebp, edi
sete dl
push ecx
lea ecx, [esp + edx*2 + 0x28]
push ecx
push eax
call fcn.00409500
add esp, 0x10
jmp 0x44b20d
mov edx, dword [0x487d6c]
push edx
mov byte [esp + 0x14], 0x1b
mov byte [esp + 0x15], al
call fcn.0043a3c0
mov eax, dword [0x48527c]
add esp, 4
cmp eax, edi
je 0x44b20d
xor ecx, ecx
cmp ebp, edi
setne cl
xor edx, edx
push 1
inc ecx
cmp ebp, edi
sete dl
push ecx
lea ecx, [esp + edx + 0x18]
mov edx, dword [0x484e5c]
push ecx
push edx
push eax
call fcn.004096a0
add esp, 0x14
xor eax, eax
call fcn.004470e0
inc esi
cmp esi, ebx
jl 0x44aff0
xor eax, eax
mov word [0x485db0], ax
xor eax, eax
jmp 0x44b293
push 0x10
call dword [sym.imp.USER32.dll_MessageBeep]
xor eax, eax
jmp 0x44b293
cmp dword [esp + 0x18], 0
jne 0x44b247
xor ecx, ecx
mov word [0x485db0], cx
jmp 0x44b282
cmp word [0x485db0], 0
je 0x44b282
mov eax, dword [0x487d6c]
cmp dword [eax + 0xdc], 0
jne 0x44b277
mov edx, dword [eax + 0x108c]
cmp dword [edx + 0xc], 0xfde9
je 0x44b277
cmp dword [0x485284], 0
je 0x44b282
mov eax, 0xa
mov word [0x485db0], ax
cmp edi, 0x12
jne 0x44b290
cmp dword [0x48992c], 0
je 0x44b225
or eax, 0xffffffff
mov ecx, dword [esp + 0x164]
pop ebx
pop edi
pop esi
pop ebp
xor ecx, esp
call fcn.00456f82
add esp, 0x158
ret