Function at 0x437877
Capabilities:
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
push ebp
lea ebp, [esp - 0x30c]
sub esp, 0x3bc
mov eax, dword [0x4705d0]
xor eax, ebp
mov dword [ebp + 0x308], eax
push ebx
push esi
push edi
mov eax, dword [ebp + 0x318]
mov dword [ebp + 0x70], eax
mov eax, dword [ebp + 0x31c]
mov dword [ebp + 0x78], eax
mov eax, dword [ebp + 0x320]
mov dword [ebp + 0x74], eax
mov eax, str.Enter
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x4c], eax
mov eax, str.Tab
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x3c], eax
mov eax, str.PageUp
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x1c], eax
mov eax, str.PageDown
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 4], eax
mov eax, str.PrintScreen
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x24], eax
mov eax, str.VolumeUp
mov esi, dword [ebp + 0x314]
mov edi, str.ControlDown
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x3c], eax
mov eax, str.VolumeDown
mov dword [ebp - 0xb0], str.Control
mov dword [ebp - 0xac], edi
mov dword [ebp - 0xa8], str.Ctrl
mov dword [ebp - 0xa4], edi
mov dword [ebp - 0xa0], str.Ctl
mov dword [ebp - 0x9c], edi
mov dword [ebp - 0x98], str.CtrlDown
mov dword [ebp - 0x94], edi
mov dword [ebp - 0x90], str.CtrlUp
mov dword [ebp - 0x8c], str.ControlUp
mov dword [ebp - 0x88], str.Shift
mov dword [ebp - 0x84], str.ShiftDown
mov dword [ebp - 0x80], str.Alt
mov dword [ebp - 0x7c], str.AltDown
mov dword [ebp - 0x78], str.newline
mov dword [ebp - 0x70], str.return
mov dword [ebp - 0x68], str._n
mov dword [ebp - 0x60], 0x4618d0
mov dword [ebp - 0x58], str._r
mov dword [ebp - 0x50], 0x4618c4
mov dword [ebp - 0x48], str._t
mov dword [ebp - 0x40], 0x4618b8
mov dword [ebp - 0x38], str.esc
mov dword [ebp - 0x34], str.Escape
mov dword [ebp - 0x30], str.Page_Up
mov dword [ebp - 0x28], str.Pg_Up
mov dword [ebp - 0x20], str.PgUp
mov dword [ebp - 0x18], str.Page_Down
mov dword [ebp - 0x10], str.Pg_Dn
mov dword [ebp - 8], str.PgDn
mov dword [ebp], str.Ins
mov dword [ebp + 4], str.Insert
mov dword [ebp + 8], str.Del
mov dword [ebp + 0xc], 0x45ca88
mov dword [ebp + 0x10], str.Print
mov dword [ebp + 0x18], str.Prt
mov dword [ebp + 0x20], str.PrtScrn
mov dword [ebp + 0x28], str.Caps
mov dword [ebp + 0x2c], str.CapsLock
mov dword [ebp + 0x30], str.Volume_Up
mov dword [ebp + 0x38], 0x46182c
mov dword [ebp + 0x40], str.Volume_Down
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], 0x46180c
mov dword [ebp + 0x4c], eax
mov eax, 0x4597fe
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], eax
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x5c], eax
test esi, esi
je 0x437b91
mov al, byte [esi]
test al, al
je 0x437b91
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp al, 0x7b
jne 0x437b44
lea eax, [ebp - 0xb0]
mov dword [ebp + 0x80], eax
cmp byte [esi + 1], 0
je 0x437b44
mov eax, dword [ebp + 0x80]
mov eax, dword [eax]
cmp byte [eax], 0
je 0x437b44
push eax
call ebx
mov dword [ebp + 0x60], eax
mov eax, dword [ebp + 0x80]
push dword [eax + 4]
call ebx
mov dword [ebp + 0x6c], eax
mov eax, dword [ebp + 0x80]
push dword [eax]
push esi
call fcn.004010ff
pop ecx
pop ecx
mov dword [ebp + 0x7c], eax
test eax, eax
je 0x437b34
jmp 0x437ae6
mov eax, dword [ebp + 0x7c]
mov ecx, dword [ebp + 0x60]
mov edx, dword [ebp + 0x6c]
add ecx, eax
add eax, edx
push ecx
mov dword [ebp + 0x64], ecx
mov dword [ebp + 0x68], eax
call ebx
inc eax
push eax
push dword [ebp + 0x64]
push dword [ebp + 0x68]
call fcn.00446570
push dword [ebp + 0x6c]
mov eax, dword [ebp + 0x80]
push dword [eax + 4]
push dword [ebp + 0x7c]
call fcn.00445ea0
mov eax, dword [ebp + 0x80]
push dword [eax]
push dword [ebp + 0x68]
call fcn.004010ff
add esp, 0x20
mov dword [ebp + 0x7c], eax
test eax, eax
jne 0x437ae3
add dword [ebp + 0x80], 8
cmp byte [esi], 0x7b
je 0x437a9b
push str.Delay
call ebx
push eax
push str.Delay
push esi
call fcn.00446461
add esp, 0xc
test eax, eax
jne 0x437bad
lea eax, [esi + 7]
push eax
call fcn.0040109c
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp + 0x74]
test eax, eax
je 0x437b91
and dword [eax], 0
cmp byte [esi], 0
je 0x437b8f
mov ecx, dword [eax]
cmp byte [esi + ecx], 0x7d
je 0x437b8f
inc ecx
mov dword [eax], ecx
cmp byte [esi + ecx], 0
jne 0x437b7e
inc dword [eax]
xor eax, eax
mov ecx, dword [ebp + 0x308]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004464bf
add ebp, 0x30c
leave
ret 0x10
mov eax, dword [ebp + 0x70]
test eax, eax
je 0x437bb7
and dword [eax], 0
mov eax, dword [ebp + 0x78]
test eax, eax
je 0x437bc4
mov dword [eax], 2
mov eax, dword [ebp + 0x74]
test eax, eax
je 0x437bd1
mov dword [eax], 1
cmp byte [esi], 0x7b
jne 0x437c33
mov eax, dword [str.ControlDown]
and dword [ebp + 0x80], 0
cmp byte [eax], 0
je 0x437c33
mov dword [ebp + 0x7c], str.ControlDown
mov eax, dword [ebp + 0x7c]
mov eax, dword [eax]
test eax, eax
je 0x437c0b
push eax
call ebx
push eax
mov eax, dword [ebp + 0x7c]
push dword [eax]
push esi
call fcn.00446461
add esp, 0xc
jmp 0x437c0e
xor eax, eax
inc eax
test eax, eax
je 0x437ca4
inc dword [ebp + 0x80]
mov eax, dword [ebp + 0x80]
lea eax, [eax*4 + 0x470418]
mov dword [ebp + 0x7c], eax
mov eax, dword [eax]
cmp byte [eax], 0
jne 0x437bee
movzx eax, byte [esi]
cmp al, 1
mov edi, 0x80
jl 0x437d60
movsx ecx, al
cmp ecx, edi
jge 0x437d60
mov ebx, dword [sym.imp.USER32.dll_VkKeyScanA]
push eax
call ebx
cmp al, 0xff
je 0x437d60
movzx eax, byte [esi]
push eax
call ebx
shr eax, 8
cmp al, 0xff
je 0x437d60
movzx eax, byte [esi]
push eax
call ebx
shr eax, 8
cmp al, 6
je 0x437d60
mov edi, dword [ebp + 0x70]
test edi, edi
je 0x437c96
movzx eax, byte [esi]
push eax
call ebx
shr eax, 8
movzx eax, al
mov dword [edi], eax
movzx eax, byte [esi]
push eax
call ebx
movzx eax, al
jmp 0x437b93
cmp dword [ebp + 0x74], 0
je 0x437cbe
mov eax, dword [ebp + 0x80]
push dword [eax*4 + 0x470418]
call ebx
mov ecx, dword [ebp + 0x74]
mov dword [ecx], eax
cmp dword [ebp + 0x78], 0
je 0x437d4e
mov ebx, dword [ebp + 0x80]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpA]
push edi
lea ebx, [ebx*4 + 0x470418]
push dword [ebx]
call esi
test eax, eax
je 0x437d0b
push str.ShiftDown
push dword [ebx]
call esi
test eax, eax
je 0x437d0b
push str.AltDown
push dword [ebx]
call esi
test eax, eax
je 0x437d0b
push str.WinKeyDown
push dword [ebx]
call esi
test eax, eax
jne 0x437d11
mov eax, dword [ebp + 0x78]
and dword [eax], 0
push str.ControlUp
push dword [ebx]
call esi
test eax, eax
je 0x437d45
push str.ShiftUp
push dword [ebx]
call esi
test eax, eax
je 0x437d45
push str.AltUp
push dword [ebx]
call esi
test eax, eax
je 0x437d45
push str.WinKeyUp
push dword [ebx]
call esi
test eax, eax
jne 0x437d4e
mov eax, dword [ebp + 0x78]
mov dword [eax], 1
mov eax, dword [ebp + 0x80]
movzx eax, byte [eax + 0x461788]
jmp 0x437b93
push 0x21
pop eax
push 0x22
mov word [ebp + 0x84], ax
mov word [ebp + 0x86], ax
pop eax
push 0x23
mov word [ebp + 0x88], ax
mov word [ebp + 0x8a], ax
pop eax
push 0x24
mov word [ebp + 0x8c], ax
mov word [ebp + 0x8e], ax
pop eax
push 0x25
mov word [ebp + 0x90], ax
mov word [ebp + 0x92], ax
pop eax
push 0x26
mov word [ebp + 0x94], ax
mov word [ebp + 0x96], ax
pop eax
push 0x27
mov word [ebp + 0x98], ax
mov word [ebp + 0x9a], ax
pop eax
push 0x28
mov word [ebp + 0x9c], ax
mov word [ebp + 0x9e], ax
pop eax
push 0x29
mov word [ebp + 0xa0], ax
mov word [ebp + 0xa2], ax
pop eax
push 0x2a
mov word [ebp + 0xa4], ax
mov word [ebp + 0xa6], ax
pop eax
push 0x2b
mov word [ebp + 0xa8], ax
mov word [ebp + 0xaa], ax
pop eax
push 0x2c
mov word [ebp + 0xac], ax
mov word [ebp + 0xae], ax
pop eax
push 0x2d
mov word [ebp + 0xb0], ax
mov word [ebp + 0xb2], ax
pop eax
push 0x2e
mov word [ebp + 0xb4], ax
mov word [ebp + 0xb6], ax
pop eax
push 0x2f
mov word [ebp + 0xb8], ax
mov word [ebp + 0xba], ax
pop eax
push 0x3a
mov word [ebp + 0xbc], ax
mov word [ebp + 0xbe], ax
pop eax
push 0x3b
mov word [ebp + 0xc0], ax
mov word [ebp + 0xc2], ax
pop eax
push 0x3c
mov word [ebp + 0xc4], ax
mov word [ebp + 0xc6], ax
pop eax
push 0x3d
mov word [ebp + 0xc8], ax
mov word [ebp + 0xca], ax
pop eax
push 0x3e
mov word [ebp + 0xcc], ax
mov word [ebp + 0xce], ax
pop eax
mov word [ebp + 0xd0], ax
mov word [ebp + 0xd2], ax
push 0x3f
pop eax
push 0x40
mov word [ebp + 0xd4], ax
mov word [ebp + 0xd6], ax
pop eax
push 0x5b
mov word [ebp + 0xd8], ax
mov word [ebp + 0xda], ax
pop eax
push 0x5c
mov word [ebp + 0xdc], ax
mov word [ebp + 0xde], ax
pop eax
push 0x5d
mov word [ebp + 0xe0], ax
mov word [ebp + 0xe2], ax
pop eax
push 0x5e
mov word [ebp + 0xe4], ax
mov word [ebp + 0xe6], ax
pop eax
push 0x5f
mov word [ebp + 0xe8], ax
mov word [ebp + 0xea], ax
pop eax
push 0x60
mov word [ebp + 0xec], ax
mov word [ebp + 0xee], ax
pop eax
push 0x7b
mov word [ebp + 0xf0], ax
mov word [ebp + 0xf2], ax
pop eax
push 0x7c
mov word [ebp + 0xf4], ax
mov word [ebp + 0xf6], ax
pop eax
push 0x7d
mov word [ebp + 0xf8], ax
mov word [ebp + 0xfa], ax
pop eax
push 0x7e
mov word [ebp + 0xfc], ax
mov word [ebp + 0xfe], ax
pop eax
push 0xffffffffffffff80
mov word [ebp + 0x100], ax
mov word [ebp + 0x102], ax
pop eax
mov word [ebp + 0x106], ax
push 0xffffffffffffff82
mov eax, 0x82
mov word [ebp + 0x108], ax
pop eax
mov word [ebp + 0x10a], ax
push 0xffffffffffffff83
mov eax, 0x83
mov word [ebp + 0x10c], ax
pop eax
mov word [ebp + 0x10e], ax
push 0xffffffffffffff84
mov eax, 0x84
mov word [ebp + 0x110], ax
pop eax
mov word [ebp + 0x112], ax
push 0xffffffffffffff85
mov eax, 0x85
mov word [ebp + 0x114], ax
pop eax
mov word [ebp + 0x116], ax
mov eax, 0x86
push 0xffffffffffffff86
mov word [ebp + 0x118], ax
pop eax
mov word [ebp + 0x11a], ax
mov eax, 0x87
push 0xffffffffffffff87
mov word [ebp + 0x11c], ax
pop eax
mov word [ebp + 0x104], di
mov word [ebp + 0x11e], ax
push 0xffffffffffffff88
mov eax, 0x88
mov word [ebp + 0x120], ax
pop eax
push 0xffffffffffffff89
mov word [ebp + 0x122], ax
mov eax, 0x89
mov word [ebp + 0x124], ax
pop eax
push 0xffffffffffffff8a
mov word [ebp + 0x126], ax
mov eax, 0x8a
mov word [ebp + 0x128], ax
pop eax
push 0xffffffffffffff8b
mov word [ebp + 0x12a], ax
mov eax, 0x8b
mov word [ebp + 0x12c], ax
pop eax
push 0xffffffffffffff8c
mov word [ebp + 0x12e], ax
mov eax, 0x8c
mov word [ebp + 0x130], ax
pop eax
push 0x20
mov word [ebp + 0x132], ax
mov eax, 0x8d
mov word [ebp + 0x134], ax
pop eax
push 0xffffffffffffff8e
mov ecx, eax
mov word [ebp + 0x136], cx
add ecx, 0x6e
mov word [ebp + 0x138], cx
pop ecx
mov word [ebp + 0x13a], cx
lea ecx, [eax + 0x6f]
mov word [ebp + 0x13c], cx
push 0xffffffffffffff91
mov ecx, eax
mov word [ebp + 0x13e], cx
add ecx, 0x70
mov word [ebp + 0x140], cx
mov ecx, eax
mov word [ebp + 0x142], cx
add ecx, 0x71
mov word [ebp + 0x144], cx
pop ecx
mov word [ebp + 0x146], cx
push 0xffffffffffffff92
lea ecx, [eax + 0x72]
mov word [ebp + 0x148], cx
pop ecx
mov word [ebp + 0x14a], cx
push 0xffffffffffffff93
lea ecx, [eax + 0x73]
mov word [ebp + 0x14c], cx
pop ecx
mov word [ebp + 0x14e], cx
push 0xffffffffffffff94
lea ecx, [eax + 0x74]
mov word [ebp + 0x150], cx
pop ecx
mov word [ebp + 0x152], cx
push 0xffffffffffffff95
lea ecx, [eax + 0x75]
mov word [ebp + 0x154], cx
pop ecx
mov word [ebp + 0x156], cx
lea ecx, [eax + 0x76]
mov word [ebp + 0x158], cx
push 0xffffffffffffff96
pop ecx
mov word [ebp + 0x15a], cx
lea ecx, [eax + 0x77]
mov word [ebp + 0x15c], cx
push 0xffffffffffffff97
pop ecx
mov word [ebp + 0x15e], cx
lea ecx, [eax + 0x78]
mov word [ebp + 0x160], cx
push 0xffffffffffffff98
pop ecx
mov word [ebp + 0x162], cx
push 0xffffffffffffff99
lea ecx, [eax + 0x79]
mov word [ebp + 0x164], cx
pop ecx
mov word [ebp + 0x166], cx
push 0xffffffffffffff9a
lea ecx, [eax + 0x7a]
mov word [ebp + 0x168], cx
pop ecx
mov word [ebp + 0x16a], cx
push 0xffffffffffffff9b
lea ecx, [eax + 0x7b]
mov word [ebp + 0x16c], cx
pop ecx
mov word [ebp + 0x16e], cx
push 0xffffffffffffff9c
lea ecx, [eax + 0x7c]
mov word [ebp + 0x170], cx
pop ecx
mov word [ebp + 0x172], cx
push 0xffffffffffffff9e
lea ecx, [eax + 0x7d]
mov word [ebp + 0x174], cx
mov ecx, eax
mov word [ebp + 0x176], cx
add ecx, 0x7e
mov word [ebp + 0x178], cx
pop ecx
mov word [ebp + 0x17a], cx
push 0xffffffffffffff9f
lea ecx, [eax + 0x7f]
mov word [ebp + 0x17c], cx
pop ecx
mov word [ebp + 0x17e], cx
push 0xffffffffffffffa1
mov ecx, 0xa0
mov word [ebp + 0x180], cx
mov ecx, eax
mov word [ebp + 0x182], cx
mov ecx, 0xa1
mov word [ebp + 0x184], cx
pop ecx
mov word [ebp + 0x186], cx
push 0xffffffffffffffa2
mov ecx, 0xa2
mov word [ebp + 0x188], cx
pop ecx
mov word [ebp + 0x18a], cx
push 0xffffffffffffffa3
mov ecx, 0xa3
mov word [ebp + 0x18c], cx
pop ecx
mov word [ebp + 0x18e], cx
push 0xffffffffffffffa4
mov ecx, 0xa4
mov word [ebp + 0x190], cx
pop ecx
mov word [ebp + 0x192], cx
push 0xffffffffffffffa5
mov ecx, 0xa5
mov word [ebp + 0x194], cx
pop ecx
mov word [ebp + 0x196], cx
mov ecx, 0xa6
mov word [ebp + 0x198], cx
push 0xffffffffffffffa6
pop ecx
mov word [ebp + 0x19a], cx
mov ecx, 0xa7
mov word [ebp + 0x19c], cx
push 0xffffffffffffffa7
pop ecx
mov word [ebp + 0x19e], cx
mov ecx, 0xa8
mov word [ebp + 0x1a0], cx
mov ecx, eax
mov word [ebp + 0x1a2], cx
mov ecx, 0xa9
push 0xffffffffffffffa9
mov word [ebp + 0x1a4], cx
pop ecx
push 0xffffffffffffffaa
mov word [ebp + 0x1a6], cx
mov word [ebp + 0x1b6], ax
mov ecx, 0xaa
mov word [ebp + 0x1a8], cx
pop ecx
push 0xffffffffffffffab
mov word [ebp + 0x1aa], cx
mov ecx, 0xab
mov word [ebp + 0x1ac], cx
pop ecx
push 0xffffffffffffffac
mov word [ebp + 0x1ae], cx
mov ecx, 0xac
mov word [ebp + 0x1b0], cx
pop ecx
push 0xffffffffffffffae
mov word [ebp + 0x1b2], cx
mov ecx, 0xad
lea eax, [ecx + 1]
mov word [ebp + 0x1b8], ax
pop eax
mov word [ebp + 0x1ba], ax
push 0xffffffffffffffaf
lea eax, [ecx + 2]
mov word [ebp + 0x1bc], ax
pop eax
mov word [ebp + 0x1be], ax
push 0xffffffffffffffb0
lea eax, [ecx + 3]
mov word [ebp + 0x1c0], ax
pop eax
mov word [ebp + 0x1c2], ax
push 0xffffffffffffffb1
lea eax, [ecx + 4]
mov word [ebp + 0x1c4], ax
pop eax
mov word [ebp + 0x1c6], ax
push 0xffffffffffffffb2
lea eax, [ecx + 5]
mov word [ebp + 0x1c8], ax
pop eax
mov word [ebp + 0x1ca], ax
push 0xffffffffffffffb3
lea eax, [ecx + 6]
mov word [ebp + 0x1cc], ax
pop eax
mov word [ebp + 0x1ce], ax
push 0xffffffffffffffb4
lea eax, [ecx + 7]
mov word [ebp + 0x1d0], ax
pop eax
mov word [ebp + 0x1d2], ax
push 0xffffffffffffffb5
lea eax, [ecx + 8]
mov word [ebp + 0x1d4], ax
pop eax
mov word [ebp + 0x1d6], ax
push 0xffffffffffffffb6
lea eax, [ecx + 9]
mov word [ebp + 0x1d8], ax
pop eax
mov word [ebp + 0x1da], ax
push 0xffffffffffffffb7
lea eax, [ecx + 0xa]
mov word [ebp + 0x1dc], ax
pop eax
mov word [ebp + 0x1de], ax
lea eax, [ecx + 0xb]
push 0xffffffffffffffb8
mov word [ebp + 0x1e0], ax
pop eax
mov word [ebp + 0x1e2], ax
lea eax, [ecx + 0xc]
push 0xffffffffffffffb9
mov word [ebp + 0x1e4], ax
mov word [ebp + 0x1b4], cx
pop eax
mov word [ebp + 0x1e6], ax
push 0xffffffffffffffba
lea eax, [ecx + 0xd]
mov word [ebp + 0x1e8], ax
pop eax
mov word [ebp + 0x1ea], ax
push 0xffffffffffffffbb
lea eax, [ecx + 0xe]
mov word [ebp + 0x1ec], ax
pop eax
mov word [ebp + 0x1ee], ax
push 0xffffffffffffffbc
lea eax, [ecx + 0xf]
mov word [ebp + 0x1f0], ax
pop eax
mov word [ebp + 0x1f2], ax
push 0xffffffffffffffbd
lea eax, [ecx + 0x10]
mov word [ebp + 0x1f4], ax
pop eax
mov word [ebp + 0x1f6], ax
push 0xffffffffffffffbe
lea eax, [ecx + 0x11]
mov word [ebp + 0x1f8], ax
pop eax
mov word [ebp + 0x1fa], ax
push 0xffffffffffffffbf
lea eax, [ecx + 0x12]
mov word [ebp + 0x1fc], ax
pop eax
mov word [ebp + 0x1fe], ax
push 0xffffffffffffffc0
lea eax, [ecx + 0x13]
mov word [ebp + 0x200], ax
pop eax
mov word [ebp + 0x202], ax
push 0xffffffffffffffc1
lea eax, [ecx + 0x14]
mov word [ebp + 0x204], ax
pop eax
mov word [ebp + 0x206], ax
push 0xffffffffffffffc2
lea eax, [ecx + 0x15]
mov word [ebp + 0x208], ax
pop eax
mov word [ebp + 0x20a], ax
push 0xffffffffffffffc3
lea eax, [ecx + 0x16]
mov word [ebp + 0x20c], ax
pop eax
mov word [ebp + 0x20e], ax
push 0xffffffffffffffc4
lea eax, [ecx + 0x17]
mov word [ebp + 0x210], ax
pop eax
mov word [ebp + 0x212], ax
push 0xffffffffffffffc5
lea eax, [ecx + 0x18]
mov word [ebp + 0x214], ax
pop eax
mov word [ebp + 0x216], ax
push 0xffffffffffffffc6
lea eax, [ecx + 0x19]
mov word [ebp + 0x218], ax
pop eax
mov word [ebp + 0x21a], ax
push 0xffffffffffffffc7
lea eax, [ecx + 0x1a]
mov word [ebp + 0x21c], ax
pop eax
mov word [ebp + 0x21e], ax
lea eax, [ecx + 0x1b]
push 0xffffffffffffffc8
mov word [ebp + 0x220], ax
pop eax
mov word [ebp + 0x222], ax
lea eax, [ecx + 0x1c]
push 0xffffffffffffffc9
mov word [ebp + 0x224], ax
pop eax
mov word [ebp + 0x226], ax
push 0xffffffffffffffca
lea eax, [ecx + 0x1d]
mov word [ebp + 0x228], ax
pop eax
mov word [ebp + 0x22a], ax
push 0xffffffffffffffcb
lea eax, [ecx + 0x1e]
mov word [ebp + 0x22c], ax
pop eax
mov word [ebp + 0x22e], ax
push 0xffffffffffffffcc
lea eax, [ecx + 0x1f]
mov word [ebp + 0x230], ax
pop eax
mov word [ebp + 0x232], ax
push 0xffffffffffffffcd
lea eax, [ecx + 0x20]
mov word [ebp + 0x234], ax
pop eax
mov word [ebp + 0x236], ax
push 0xffffffffffffffce
lea eax, [ecx + 0x21]
mov word [ebp + 0x238], ax
pop eax
mov word [ebp + 0x23a], ax
push 0xffffffffffffffcf
lea eax, [ecx + 0x22]
mov word [ebp + 0x23c], ax
pop eax
mov word [ebp + 0x23e], ax
push 0xffffffffffffffd0
lea eax, [ecx + 0x23]
mov word [ebp + 0x240], ax
pop eax
mov word [ebp + 0x242], ax
push 0xffffffffffffffd1
lea eax, [ecx + 0x24]
mov word [ebp + 0x244], ax
pop eax
mov word [ebp + 0x246], ax
push 0xffffffffffffffd2
lea eax, [ecx + 0x25]
mov word [ebp + 0x248], ax
pop eax
mov word [ebp + 0x24a], ax
push 0xffffffffffffffd3
lea eax, [ecx + 0x26]
mov word [ebp + 0x24c], ax
pop eax
mov word [ebp + 0x24e], ax
push 0xffffffffffffffd4
lea eax, [ecx + 0x27]
mov word [ebp + 0x250], ax
pop eax
mov word [ebp + 0x252], ax
push 0xffffffffffffffd5
lea eax, [ecx + 0x28]
mov word [ebp + 0x254], ax
pop eax
mov word [ebp + 0x256], ax
push 0xffffffffffffffd6
lea eax, [ecx + 0x29]
mov word [ebp + 0x258], ax
pop eax
mov word [ebp + 0x25a], ax
push 0xffffffffffffffd7
lea eax, [ecx + 0x2a]
mov word [ebp + 0x25c], ax
pop eax
mov word [ebp + 0x25e], ax
lea eax, [ecx + 0x2b]
mov word [ebp + 0x260], ax
push 0xffffffffffffffd8
pop eax
mov word [ebp + 0x262], ax
lea eax, [ecx + 0x2c]
mov word [ebp + 0x264], ax
push 0xffffffffffffffd9
pop eax
mov word [ebp + 0x266], ax
lea eax, [ecx + 0x2d]
mov word [ebp + 0x268], ax
push 0xffffffffffffffda
pop eax
mov word [ebp + 0x26a], ax
push 0xffffffffffffffdb
lea eax, [ecx + 0x2e]
mov word [ebp + 0x26c], ax
pop eax
mov word [ebp + 0x26e], ax
push 0xffffffffffffffdc
lea eax, [ecx + 0x2f]
mov word [ebp + 0x270], ax
pop eax
mov word [ebp + 0x272], ax
push 0xffffffffffffffdd
lea eax, [ecx + 0x30]
mov word [ebp + 0x274], ax
pop eax
mov word [ebp + 0x276], ax
push 0xffffffffffffffde
lea eax, [ecx + 0x31]
mov word [ebp + 0x278], ax
pop eax
mov word [ebp + 0x27a], ax
push 0xffffffffffffffdf
lea eax, [ecx + 0x32]
mov word [ebp + 0x27c], ax
pop eax
mov word [ebp + 0x27e], ax
push 0xffffffffffffffe0
lea eax, [ecx + 0x33]
mov word [ebp + 0x280], ax
pop eax
mov word [ebp + 0x282], ax
push 0xffffffffffffffe1
lea eax, [ecx + 0x34]
mov word [ebp + 0x284], ax
pop eax
mov word [ebp + 0x286], ax
push 0xffffffffffffffe2
lea eax, [ecx + 0x35]
mov word [ebp + 0x288], ax
pop eax
mov word [ebp + 0x28a], ax
push 0xffffffffffffffe3
lea eax, [ecx + 0x36]
mov word [ebp + 0x28c], ax
pop eax
mov word [ebp + 0x28e], ax
push 0xffffffffffffffe4
lea eax, [ecx + 0x37]
mov word [ebp + 0x290], ax
pop eax
mov word [ebp + 0x292], ax
push 0xffffffffffffffe5
lea eax, [ecx + 0x38]
mov word [ebp + 0x294], ax
pop eax
mov word [ebp + 0x296], ax
push 0xffffffffffffffe6
lea eax, [ecx + 0x39]
mov word [ebp + 0x298], ax
pop eax
mov word [ebp + 0x29a], ax
push 0xffffffffffffffe7
lea eax, [ecx + 0x3a]
mov word [ebp + 0x29c], ax
pop eax
mov word [ebp + 0x29e], ax
lea eax, [ecx + 0x3b]
mov word [ebp + 0x2a0], ax
push 0xffffffffffffffe8
pop eax
mov word [ebp + 0x2a2], ax
lea eax, [ecx + 0x3c]
mov word [ebp + 0x2a4], ax
push 0xffffffffffffffe9
pop eax
mov word [ebp + 0x2a6], ax
lea eax, [ecx + 0x3d]
mov word [ebp + 0x2a8], ax
push 0xffffffffffffffea
pop eax
mov word [ebp + 0x2aa], ax
push 0xffffffffffffffeb
lea eax, [ecx + 0x3e]
mov word [ebp + 0x2ac], ax
pop eax
mov word [ebp + 0x2ae], ax
push 0xffffffffffffffec
lea eax, [ecx + 0x3f]
mov word [ebp + 0x2b0], ax
pop eax
mov word [ebp + 0x2b2], ax
push 0xffffffffffffffed
lea eax, [ecx + 0x40]
mov word [ebp + 0x2b4], ax
pop eax
mov word [ebp + 0x2b6], ax
push 0xffffffffffffffee
lea eax, [ecx + 0x41]
mov word [ebp + 0x2b8], ax
pop eax
mov word [ebp + 0x2ba], ax
push 0xffffffffffffffef
lea eax, [ecx + 0x42]
mov word [ebp + 0x2bc], ax
pop eax
mov word [ebp + 0x2be], ax
push 0xfffffffffffffff0
lea eax, [ecx + 0x43]
mov word [ebp + 0x2c0], ax
pop eax
mov word [ebp + 0x2c2], ax
push 0xfffffffffffffff1
lea eax, [ecx + 0x44]
mov word [ebp + 0x2c4], ax
pop eax
mov word [ebp + 0x2c6], ax
push 0xfffffffffffffff2
lea eax, [ecx + 0x45]
mov word [ebp + 0x2c8], ax
pop eax
mov word [ebp + 0x2ca], ax
push 0xfffffffffffffff3
lea eax, [ecx + 0x46]
mov word [ebp + 0x2cc], ax
pop eax
mov word [ebp + 0x2ce], ax
push 0xfffffffffffffff4
lea eax, [ecx + 0x47]
mov word [ebp + 0x2d0], ax
pop eax
mov word [ebp + 0x2d2], ax
push 0xfffffffffffffff5
lea eax, [ecx + 0x48]
mov word [ebp + 0x2d4], ax
pop eax
mov word [ebp + 0x2d6], ax
push 0xfffffffffffffff6
lea eax, [ecx + 0x49]
mov word [ebp + 0x2d8], ax
pop eax
mov word [ebp + 0x2da], ax
push 0xfffffffffffffff7
lea eax, [ecx + 0x4a]
mov word [ebp + 0x2dc], ax
pop eax
mov word [ebp + 0x2de], ax
push 0xfffffffffffffff8
lea eax, [ecx + 0x4b]
mov word [ebp + 0x2e0], ax
pop eax
mov word [ebp + 0x2e2], ax
lea eax, [ecx + 0x4c]
push 0xfffffffffffffff9
mov word [ebp + 0x2e4], ax
pop eax
mov word [ebp + 0x2e6], ax
lea eax, [ecx + 0x4d]
mov word [ebp + 0x2e8], ax
push 0xfffffffffffffffa
pop eax
mov word [ebp + 0x2ea], ax
push 0xfffffffffffffffb
lea eax, [ecx + 0x4e]
mov word [ebp + 0x2ec], ax
pop eax
mov word [ebp + 0x2ee], ax
push 0xfffffffffffffffc
lea eax, [ecx + 0x4f]
mov word [ebp + 0x2f0], ax
pop eax
mov word [ebp + 0x2f2], ax
lea eax, [ecx + 0x50]
mov word [ebp + 0x2f4], ax
push 0xfffffffffffffffd
pop eax
mov word [ebp + 0x2f6], ax
lea eax, [ecx + 0x51]
mov word [ebp + 0x2f8], ax
push 0xfffffffffffffffe
pop eax
mov word [ebp + 0x2fa], ax
lea eax, [ecx + 0x52]
mov word [ebp + 0x2fc], ax
or eax, 0xffffffff
mov word [ebp + 0x2fe], ax
xor eax, eax
mov word [ebp + 0x300], ax
mov word [ebp + 0x302], ax
mov word [ebp + 0x304], ax
mov word [ebp + 0x306], ax
movsx ax, byte [esi]
xor edx, edx
xor ecx, ecx
cmp ax, word [ebp + ecx + 0x86]
je 0x4389dc
inc edx
inc edx
lea ecx, [edx + edx]
cmp word [ebp + ecx + 0x84], 0
jne 0x4389bd
jmp 0x437b91
mov eax, dword [ebp + 0x70]
test eax, eax
je 0x4389e9
mov dword [eax], 4
movsx eax, word [ebp + edx*2 + 0x84]
jmp 0x437b93