Function at 0x100180d2
Capabilities:
Get thread local storage value
Query environment variable
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1e0
push ebx
push esi
mov dword [ebp - 0x20], 0x5bb2
push edi
mov dword [ebp - 0x20], 0xffffffff
xor edi, edi
mov dword [ebp - 0x20], 0x2a276893
inc edi
mov dword [ebp - 0x20], edi
xor ebx, ebx
mov dword [ebp - 0x20], 0xe1879501
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0xa4], ecx
mov dword [ebp - 0xc], ebx
jmp 0x10018121
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x1a4], 0xd2d672a8
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x10018110
mov dword [ebp - 0xc], ebx
jmp 0x10018139
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x150], edi
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 3
jl 0x1001812c
dec dword [ebp - 0x14c]
mov dword [ebp - 0x10], edi
mov dword [ebp - 8], ebx
jmp 0x1001815b
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x58], 0x8c6a53d0
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x1001814d
mov dword [ebp - 0x10], ebx
cmp dword [ebp - 0x10], ebx
jl 0x10018225
mov dword [ebp - 0x14], 9
mov dword [ebp - 0x1c], 0x7bc99958
mov dword [ebp - 8], ebx
jmp 0x10018190
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x1b4], 0x3f9150fa
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x1001817f
mov eax, dword [ebp - 0x10]
cmp dword [ebp + eax*4 - 0x58], ebx
jne 0x10018225
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], ebx
jl 0x1001821c
mov dword [ebp - 0xc], 6
mov dword [ebp - 0xc], ebx
jmp 0x10018212
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x28], 0xe2e4ed3
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffff
jne 0x100181d1
cmp dword [ebp - 0x14], ebx
jne 0x100181d1
mov eax, ebx
mov dword [ebp - 0x1ac], eax
xor ecx, ecx
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x18]
add esi, 8
mov dword [ebp - 0x58], esi
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
cmp eax, edi
mov eax, dword [ebp - 0x14]
setg cl
xor edx, edx
cmp ecx, eax
setne dl
xor ecx, ecx
add edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
cmp edx, eax
setne cl
sub esi, ecx
mov dword [ebp - 0x28], esi
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ebx
jle 0x100181b7
dec dword [ebp - 0x14]
jns 0x100181ab
dec dword [ebp - 0x10]
jns 0x1001816c
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x10018238
push 0x115
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [ebp - 0x2c], 0x6432a276
mov dword [ebp - 0x14], 0x795010f7
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x14], 0x7d8a8701
mov dword [ebp - 0x1c], 0x2759951e
mov dword [ebp - 0x28], 6
mov dword [ebp - 8], ebx
jmp 0x10018274
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x144], 0xd7f8
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x10018263
mov dword [ebp - 0x14], ebx
jmp 0x100182ab
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x144]
cmp eax, 0xffffffff
setge cl
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x100182a8
call dword [sym.imp.USER32.dll_GetCapture]
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jle 0x1001827f
mov dword [ebp - 0x20], 0xffffffff
push 0xfffffffffffffff9
pop ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x10], 7
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 8], 0xe3b6
mov dword [ebp - 0x1c], 0xd5de1fc6
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0xc], ebx
jmp 0x100182ea
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xb8], edi
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x100182dd
mov dword [ebp - 0xc], ebx
jmp 0x10018301
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xb4], ecx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x100182f4
cmp dword [ebp - 8], ebx
jne 0x1001831c
mov dword [ebp - 0x1c], 0xfffffffb
mov edx, ebx
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 8]
jg 0x1001831e
mov edx, edi
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
imul ecx, edx
xor edx, edx
push 8
cmp ecx, eax
setl dl
xor ecx, ecx
mov dword [ebp - 0xb8], edx
mov eax, dword [ebp - 0x10]
cmp edx, eax
setne cl
cmp ecx, edi
sbb eax, eax
xor edx, edx
neg eax
cmp eax, 0x1f7d9671
setg dl
xor ecx, ecx
imul edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
cmp edx, eax
setg cl
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x10]
neg eax
pop ecx
sbb eax, eax
inc eax
cmp ecx, eax
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
sbb esi, esi
xor edx, edx
inc esi
cmp ecx, eax
setle dl
xor ecx, ecx
add esi, edx
sub esi, dword [ebp - 8]
mov dword [ebp - 0x10], esi
mov eax, dword [ebp - 0x10]
cmp eax, 0x2abf7c2f
setle cl
xor eax, eax
sub ecx, dword [ebp - 8]
cmp ecx, 0xea5d
setg al
xor edx, edx
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0x20], 0x333f0d22
mov dword [ebp - 0x28], 0x830af36e
mov dword [ebp - 0x1c], 0xfff6
mov dword [ebp - 8], edx
jmp 0x100183db
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x1c4], 0x743d837b
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x100183ca
mov byte [ebp - 1], dl
cmp byte [ebp - 1], dl
je 0x100183f1
call dword [sym.imp.USER32.dll_GetCaretBlinkTime]
xor edx, edx
mov eax, dword [ebp - 0x1c]
mov ebx, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [ebp - 0x1c4], eax
mov eax, dword [ebp - 0x2c]
add eax, 0x2526041
mov dword [ebp - 0x14], eax
je 0x10018633
push 3
mov dword [ebp - 0xc], 0x3ae35568
mov dword [ebp - 8], edx
pop esi
jmp 0x10018431
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x178], 0x68d5
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x10018420
mov dword [ebp - 0xc], 0xffffffee
jmp 0x1001846c
mov dword [ebp - 8], edx
jmp 0x10018455
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x104], 0x905d
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x10018444
cmp dword [ebp - 0x100], edx
jne 0x10018471
mov eax, dword [ebp - 0x104]
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
je 0x1001843f
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], 2
jg 0x100184da
mov dword [ebp - 0x1c], 0xfffffffe
xor edx, edx
mov dword [ebp - 0x14], 9
mov dword [ebp - 0x1c], 0x4d513c61
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + eax*4 - 0x178]
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
setl dl
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x14], 0x19
jmp 0x100184c9
mov byte [ebp - 1], 0
cmp byte [ebp - 1], 0
je 0x100184c6
push 0
push 0x1099
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
dec dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xfffffffc
jg 0x100184af
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jle 0x1001847a
xor edx, edx
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], 0x14
jg 0x100192a9
mov dword [ebp - 0x10], edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x28], 0xf66b17b7
mov dword [ebp - 8], 0x3997b09b
mov dword [ebp - 8], edx
jmp 0x1001850a
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x68], edi
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x10018500
mov dword [ebp - 0x10], 2
cmp dword [ebp - 0x10], edx
jl 0x100185d1
mov dword [ebp - 0x18], 5
mov dword [ebp - 0x1c], 0xa4129b85
mov dword [ebp - 8], edx
jmp 0x10018543
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x13c], 0x5589
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x10018532
mov eax, dword [ebp - 0x10]
xor ecx, ecx
push 0
mov esi, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0xc]
cmp eax, 0xfffffffa
mov eax, dword [ebp - 0x28]
setle cl
xor edx, edx
cmp ecx, esi
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0xc]
setl cl
xor edx, edx
cmp ecx, 0x7b7e
setle dl
xor ecx, ecx
add edx, eax
mov dword [ebp - 0x138], edx
mov eax, dword [ebp - 0xc]
cmp eax, edx
setne cl
xor edx, edx
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
mov eax, dword [ebp - 0x10]
sete dl
xor ecx, ecx
mov eax, dword [ebp + eax*4 - 0x68]
cmp edx, eax
pop edx
setge cl
sub ecx, dword [ebp - 0x60]
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 8], ecx
dec dword [ebp - 0x10]
jns 0x1001851f
push 3
pop esi
mov dword [ebp - 8], edx
jmp 0x1001860b
mov dword [ebp - 0x28], 0x8b9628ea
mov dword [ebp - 0xc], edx
jmp 0x100185fd
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0xc]
sub ecx, dword [ebp + eax*4 - 0x68]
mov eax, dword [ebp - 0xc]
sub ecx, dword [ebp + eax*4 - 0x68]
mov dword [ebp - 0x10], ecx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jle 0x100185e2
cmp dword [ebp - 0x28], edx
jne 0x10018611
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x1a
jl 0x100185d6
mov byte [ebp - 0x2d], dl
lea ecx, [ebp - 0x2d]
xor dl, dl
call fcn.100194e4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x14
push 0
pop edx
jle 0x100184e7
jmp 0x100192a7
mov dword [ebp - 0x1c], 0xffffffff
mov eax, 0xf9b3198a
mov dword [ebp - 0x18], 0xda2282d5
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], eax
mov dword [ebp - 0xc], 9
mov dword [ebp - 8], edx
jmp 0x10018677
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xa0], edx
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x1001866a
push 3
pop esi
mov dword [ebp - 0xc], esi
cmp dword [ebp - 0xc], edx
jl 0x100186c0
mov dword [ebp - 0x10], 0xfe5f36f6
mov dword [ebp - 0x10], esi
cmp dword [ebp - 0x10], edx
jl 0x100186bb
mov dword [ebp - 8], 0x7a98815
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], eax
mov dword [ebp - 8], esi
cmp dword [ebp - 8], edx
jl 0x100186b6
mov dword [ebp - 0xa0], edx
dec dword [ebp - 8]
jns 0x100186ab
dec dword [ebp - 0x10]
jns 0x10018696
dec dword [ebp - 0xc]
jns 0x10018687
mov dword [ebp - 0x10], 0xfdc8dfba
mov dword [ebp - 0xc], edx
jmp 0x100186dd
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xd8], 0xffffffff
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 4
jl 0x100186cc
mov dword [ebp - 0xc], edx
jmp 0x100186f9
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x134], 0xffffffff
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 4
jl 0x100186e8
mov ecx, dword [ebp - 0xd8]
xor edx, edx
mov eax, dword [ebp - 0xd0]
cmp eax, ecx
mov eax, dword [ebp - 0xd4]
setl dl
xor ecx, ecx
cmp edx, eax
setl cl
mov dword [ebp - 0x134], ecx
mov dword [ebp - 0x10], 0x10
cmp dword [ebp - 0x10], 4
je 0x1001883f
xor eax, eax
mov dword [ebp - 0xc], 0x753e1e01
mov dword [ebp - 0xc], esi
cmp dword [ebp - 0xc], eax
jl 0x10018790
mov eax, dword [ebp - 0xc]
xor edx, edx
mov eax, dword [ebp + eax*4 - 0xd8]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp + eax*4 - 0x134]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + eax*4 - 0x134]
mov eax, dword [ebp - 0xd0]
cmp ecx, eax
mov eax, dword [ebp - 0xc]
setne dl
mov ecx, dword [ebp + eax*4 - 0xd8]
mov eax, dword [ebp - 0xc]
imul ecx, edx
mov dword [ebp + eax*4 - 0x134], ecx
dec dword [ebp - 0xc]
jns 0x10018747
xor eax, eax
mov dword [ebp - 0xc], 0xffffffea
jmp 0x10018828
mov dword [ebp - 8], eax
mov dword [ebp - 8], eax
jmp 0x100187f3
mov dword [ebp - 0x18], 4
mov byte [ebp - 1], al
cmp byte [ebp - 1], 0
je 0x100187bd
push eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
xor eax, eax
mov dword [ebp - 0x18], esi
cmp dword [ebp - 0x18], eax
jl 0x100187f0
mov byte [ebp - 1], al
cmp byte [ebp - 1], 0
je 0x100187eb
push eax
push 0x243d
push 0x1fad
call ebx
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_MoveToEx]
xor eax, eax
dec dword [ebp - 0x18]
jns 0x100187c5
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jle 0x100187a4
mov byte [ebp - 1], al
cmp byte [ebp - 1], 0
je 0x10018825
push 0x27c
push eax
push eax
push 0x703
push 0x1454
push eax
call ebx
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetDIBits]
xor eax, eax
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x1a
jne 0x1001879c
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jne 0x10018738
xor edx, edx
mov dword [ebp - 8], edx
jmp 0x10018857
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x1e0], 0x2dc71837
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x10018846
mov dword [ebp - 8], edx
jmp 0x1001886f
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x54], 0xdbeccce1
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x10018861
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x4c]
sub ecx, 0x3f9e
neg ecx
sbb ecx, ecx
inc ecx
add eax, ecx
je 0x10018890
mov esi, edx
cmp dword [ebp - 0x50], edx
jne 0x10018892
mov esi, edi
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
cmp eax, edi
mov eax, dword [ebp - 0x4c]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x50]
setl dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x4c]
setge bl
xor ecx, ecx
cmp ebx, eax
setge cl
cmp esi, ecx
jl 0x100188fa
mov ebx, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [ebp - 0x18], 0x2a96
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x18]
sub ecx, eax
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
mov dword [ebp - 0x4c], ecx
mov byte [ebp - 1], dl
cmp byte [ebp - 1], dl
je 0x10018913
push edx
call ebx
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_RectVisible]
xor edx, edx
jmp 0x10018913
xor edx, edx
mov byte [ebp - 1], dl
cmp byte [ebp - 1], dl
je 0x1001890d
push edx
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
xor edx, edx
mov ebx, dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [ebp - 0x18], edi
cmp dword [ebp - 0x18], 0xc7b7f609
jbe 0x1001892f
mov eax, dword [ebp - 0x24]
mov ecx, edx
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x24], edi
je 0x10018931
mov ecx, edi
mov eax, dword [ebp - 0x1c]
imul eax, ecx
push 3
pop esi
cmp eax, dword [ebp - 0x14]
jl 0x10018ce4
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x24], 0x46158d32
mov dword [ebp - 8], edx
jmp 0x1001896e
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x19c], 0xf2ee
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x1001895d
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x10018984
call dword [sym.imp.USER32.dll_GetMessageTime]
xor edx, edx
mov eax, dword [ebp - 0x19c]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x24], 0x6da5043c
mov dword [ebp - 8], edx
jmp 0x100189aa
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xb0], 0x64a6847d
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x10018999
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x100189cb
push 0xb40
push 0x1e0a
push edx
call dword [sym.imp.USER32.dll_CheckMenuItem]
xor edx, edx
mov dword [ebp - 0xac], edx
jmp 0x100189dc
mov dword [ebp - 0x24], edx
inc dword [ebp - 0xac]
cmp dword [ebp - 0xac], 0x16
jne 0x100189d3
mov dword [ebp - 0x20], 0xfffffffd
mov dword [ebp - 8], 0x52cb1363
mov dword [ebp - 0x24], 0xfffffffe
mov dword [ebp - 0x20], 0xd44f4cc5
mov dword [ebp - 8], edx
jmp 0x10018a17
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xfc], 0x342e
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x10018a06
mov dword [ebp - 8], edx
jmp 0x10018aff
mov dword [ebp - 0x14], edx
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x10018a40
push 0x1f41
push edx
push edx
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
xor edx, edx
mov eax, dword [ebp - 8]
cmp dword [ebp + eax*4 - 0xfc], edx
jne 0x10018b08
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x14], edi
jg 0x10018afc
mov dword [ebp - 0xc], 0xfffffff8
mov dword [ebp - 0xc], edi
cmp dword [ebp - 0xc], edx
jl 0x10018ab5
mov dword [ebp - 0x10], 0x6a205b29
mov dword [ebp - 0x10], edx
jmp 0x10018a88
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x1d4], 0xffffffff
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x10018a77
mov eax, dword [ebp - 0x1c8]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x10], edi
cmp dword [ebp - 0x10], edx
jl 0x10018ab0
mov dword [ebp - 0x20], 0xfff7
cmp dword [ebp - 0x20], edx
jne 0x10018ab0
dec dword [ebp - 0x10]
jns 0x10018a9f
dec dword [ebp - 0xc]
jns 0x10018a6b
mov ecx, dword [ebp - 0xc]
xor edx, edx
mov eax, dword [ebp - 0x14]
cmp ecx, eax
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 0x14]
setg dl
sub edx, eax
inc ecx
mov eax, dword [ebp - 0x24]
add ecx, edx
xor edx, edx
cmp ecx, eax
push 0
setne dl
sub edx, 2
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], 4
inc dword [ebp - 0x14]
pop edx
cmp dword [ebp - 0x14], edi
jle 0x10018a5c
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jle 0x10018a25
mov dword [ebp - 8], edx
jmp 0x10018b1a
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x184], edx
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x10018b0d
mov dword [ebp - 0xc], 0xd035
push 0xfffffffffffffff9
pop eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edx
mov dword [ebp - 8], eax
mov dword [ebp - 0x24], 0xa540
mov dword [ebp - 0x114], edi
mov dword [ebp - 0x110], edi
mov dword [ebp - 0x10c], edi
mov dword [ebp - 0x108], edi
mov dword [ebp - 8], edx
jmp 0x10018b64
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x48], 0x4aee
inc dword [ebp - 8]
cmp dword [ebp - 8], edi
jl 0x10018b56
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0xc]
sub eax, 0xec4f
neg eax
sbb eax, eax
xor edx, edx
inc eax
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
imul ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
cmp eax, ecx
mov eax, dword [ebp - 0xc]
setle dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0xc]
setl cl
sub eax, ecx
neg eax
sbb eax, eax
xor edx, edx
inc eax
sub eax, dword [ebp - 0xc]
imul eax, dword [ebp - 0xc]
imul ecx, eax, 0x62d
mov eax, dword [ebp - 0xc]
cmp ecx, eax
setg dl
inc edx
mov dword [ebp - 8], edx
je 0x10018c52
xor edx, edx
mov dword [ebp - 0x20], edi
mov dword [ebp - 8], edx
jmp 0x10018bdc
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x44], edi
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x10018bd2
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x10], 0x29efec1a
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x108], edi
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x44]
dec eax
neg eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x48]
jl 0x10018c30
mov eax, dword [ebp - 0x14]
mov dword [ebp - 8], 0xffffffff
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x108]
mov eax, dword [ebp - 0x10]
imul eax, dword [ebp - 0xc]
mov dword [ebp - 0x20], eax
jmp 0x10018cb1
xor edx, edx
mov dword [ebp - 0x20], 0xfffffffa
mov dword [ebp - 0x10], edx
jmp 0x10018ca5
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x10018c7c
push edx
call ebx
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.USER32.dll_DrawFocusRect]
xor edx, edx
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x10018ca2
push edx
push 0x243d
push 0x1fad
call ebx
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_MoveToEx]
xor edx, edx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jle 0x10018c60
mov dword [ebp - 0x20], 0xcb0a751
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x184], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], 0x3c61c71b
mov dword [ebp - 0x10], edx
jmp 0x100190f8
mov dword [ebp - 8], 5
mov eax, 0x2633933b
mov dword [ebp - 0xc], 0x814b11f3
mov dword [ebp - 0x10], 0xd71b36c9
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0xc], edx
jmp 0x10018d1d
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x3c], 0xa18e418a
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jl 0x10018d0f
mov dword [ebp - 0xc], edx
jmp 0x10018d38
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xe8], 0xae07ea4c
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 4
jl 0x10018d27
mov dword [ebp - 0xc], edx
jmp 0x10018d54
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x90], 0x699ff93f
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x10018d43
cmp dword [ebp - 0x3c], edx
jne 0x10018d62
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
sub eax, 0xfff8
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x3c]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0x3c]
sub ecx, eax
mov eax, dword [ebp - 0x38]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [ebp - 0x38]
setg dl
sub edx, 0xffff
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
mov eax, dword [ebp - 0x3c]
setne cl
add eax, ecx
xor ecx, ecx
cmp eax, 0xfffffffa
mov eax, dword [ebp - 0x3c]
setne cl
xor edx, edx
cmp ecx, 0x23c5ad05
setne dl
add eax, edx
xor edx, edx
cmp eax, 0x23d37f4a
mov eax, dword [ebp - 0x3c]
setge dl
xor ecx, ecx
cmp edx, eax
sete cl
xor edx, edx
mov dword [ebp - 0x3c], ecx
test ecx, ecx
jne 0x10018dfb
mov eax, edx
cmp dword [ebp - 0x3c], edx
je 0x10018dfd
mov eax, edi
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
cmp eax, 0x9690b281
mov dword [ebp - 0x74], eax
sbb eax, eax
inc eax
mov dword [ebp - 0x90], eax
mov dword [ebp - 8], edx
cmp dword [ebp - 8], 0xffffffee
jne 0x10018f4a
mov dword [ebp - 0x18], 0x7e1efc39
mov dword [ebp - 0x20], 0x693cdb7c
mov dword [ebp - 0x14], edx
jmp 0x10018e45
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x88], 0x9cc1
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x10018e34
mov dword [ebp - 0xc], edi
cmp dword [ebp - 0xc], edx
jl 0x10018ee2
mov dword [ebp - 0x24], 0xd215cd4d
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], edi
jg 0x10018eb3
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x38]
mov eax, dword [ebp - 0x24]
add eax, esi
sub eax, dword [ebp - 0xc]
neg eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0x24]
je 0x10018e83
cmp dword [ebp - 0x80], edx
je 0x10018e85
mov edx, edi
mov dword [ebp - 0x70], edx
mov eax, dword [ebp - 0xc]
push 0
mov ecx, dword [ebp + eax*4 - 0xe8]
mov eax, dword [ebp - 0x10]
imul eax, edx
xor edx, edx
cmp ecx, eax
setne dl
sub edx, 0x3eb8e3d6
mov dword [ebp - 0x18], edx
inc dword [ebp - 0x10]
pop edx
cmp dword [ebp - 0x10], edi
jle 0x10018e65
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x10018ed9
push edx
push 0x486
push 0xe9e
call ebx
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_SetWindowExtEx]
xor edx, edx
dec dword [ebp - 0xc]
jns 0x10018e56
cmp dword [ebp - 0x80], edx
je 0x10018f05
mov eax, dword [ebp - 0x74]
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0xdc]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x90]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x70]
xor edx, edx
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x90]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0xe0]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x74]
test eax, eax
mov eax, dword [ebp - 0x80]
setg dl
xor ecx, ecx
cmp edx, eax
push 0
setg cl
mov dword [ebp - 0xe0], ecx
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffee
pop edx
je 0x10018e21
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x10018cd2
push 0xe09
push edx
call fcn.1001afff
pop ecx
pop ecx
push 4
mov dword [ebp - 0x14], 0xfdc8dfba
mov dword [ebp - 0x10], 0
pop ecx
jmp 0x10018f88
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xc8], 0xffffffff
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x10018f77
mov dword [ebp - 0x10], 0
jmp 0x10018fa7
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x124], 0xffffffff
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jl 0x10018f96
mov ecx, dword [ebp - 0xc8]
xor edx, edx
mov eax, dword [ebp - 0xc0]
cmp eax, ecx
mov eax, dword [ebp - 0xc4]
setl dl
xor ecx, ecx
cmp edx, eax
setl cl
xor edx, edx
mov dword [ebp - 0x124], ecx
mov dword [ebp - 0x14], 0x10
cmp dword [ebp - 0x14], 4
je 0x10018cd2
mov dword [ebp - 0xc], 0x753e1e01
mov dword [ebp - 0xc], esi
cmp dword [ebp - 0xc], edx
jl 0x1001903d
mov eax, dword [ebp - 0xc]
xor edx, edx
mov eax, dword [ebp + eax*4 - 0xc8]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp + eax*4 - 0x124]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + eax*4 - 0x124]
mov eax, dword [ebp - 0xc0]
cmp ecx, eax
mov eax, dword [ebp - 0xc]
setne dl
mov ecx, dword [ebp + eax*4 - 0xc8]
mov eax, dword [ebp - 0xc]
imul ecx, edx
mov dword [ebp + eax*4 - 0x124], ecx
dec dword [ebp - 0xc]
jns 0x10018ff4
xor edx, edx
mov dword [ebp - 0xc], 0xffffffea
jmp 0x100190d5
mov dword [ebp - 8], edx
mov dword [ebp - 8], edx
jmp 0x100190a0
mov dword [ebp - 0x18], 4
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x1001906a
push edx
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
xor edx, edx
mov dword [ebp - 0x18], esi
cmp dword [ebp - 0x18], edx
jl 0x1001909d
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x10019098
push edx
push 0x243d
push 0x1fad
call ebx
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_MoveToEx]
xor edx, edx
dec dword [ebp - 0x18]
jns 0x10019072
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jle 0x10019051
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x100190d2
push 0x27c
push edx
push edx
push 0x703
push 0x1454
push edx
call ebx
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_GetDIBits]
xor edx, edx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0x1a
jne 0x10019049
dec dword [ebp - 0x14]
jmp 0x10018fdb
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x16c], 8
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x100190e7
mov dword [ebp - 0x10], edx
jmp 0x1001910c
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x5c], edi
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jl 0x10019102
mov eax, dword [ebp - 0xc]
mov ecx, edi
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
sub ecx, eax
je 0x10019292
mov dword [ebp - 0x18], 0xffffffff
push 2
mov dword [ebp - 0x20], 0xb0121307
mov dword [ebp - 0x10], edx
pop ecx
jmp 0x10019284
mov dword [ebp - 0x14], 0xa8bc
cmp dword [ebp - 0x14], edx
jne 0x1001928d
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x14], edx
jl 0x10019281
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x24], edx
mov dword [ebp - 0xc], edx
jmp 0x1001926f
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 8], 0xd3e99730
mov dword [ebp - 8], edx
jmp 0x1001919e
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xf4], 0xffffffff
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x1001918d
mov dword [ebp - 0xf4], ecx
cmp dword [ebp - 0xf4], edx
jl 0x1001926c
mov dword [ebp - 0x24], 0x7722
mov dword [ebp - 0x1c], 0x711a53fd
mov dword [ebp - 0x20], 4
mov dword [ebp - 0x2c], 0xe71cc545
inc dword [ebp - 0x24]
mov dword [ebp - 8], edx
cmp dword [ebp - 8], ecx
jg 0x10019260
mov dword [ebp - 0x24], 0x6cedda56
xor ecx, ecx
mov dword [ebp - 0x20], 0x4254
inc dword [ebp - 0x24]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + eax*4 - 0x16c]
sub edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
cmp edx, eax
setne cl
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x18]
jg 0x1001921d
cmp dword [ebp - 0x1c], 0
je 0x1001921d
mov eax, edi
jmp 0x1001921f
xor eax, eax
mov dword [ebp - 0x18], eax
xor edx, edx
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
push 2
mov ecx, dword [ebp + eax*4 - 0x16c]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
pop ecx
setl dl
xor eax, eax
sub edx, 9
cmp edx, 0x1260
setl al
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
inc dword [ebp - 8]
cmp dword [ebp - 8], ecx
jle 0x100191e0
xor edx, edx
dec dword [ebp - 0xf4]
jns 0x100191b5
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], ecx
jle 0x1001917a
dec dword [ebp - 0x14]
jns 0x10019168
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], ecx
jle 0x1001914c
dec dword [ebp - 0x5c]
jmp 0x100192a4
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x100192a4
call ebx
push eax
call dword [sym.imp.USER32.dll_ShowCaret]
dec dword [ebp - 0x28]
xor edx, edx
mov dword [ebp - 0x14], 0xb546158d
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x20], 0x9c9214a9
mov dword [ebp - 0x28], 0x66e6
mov dword [ebp - 8], edx
jmp 0x100192d7
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x9c], 0x2fafd11d
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x100192c6
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x14]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
sub ecx, eax
je 0x100193ea
mov dword [ebp - 0x1c], 0x35a2
xor ecx, ecx
mov dword [ebp - 0x10], edi
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
cmp eax, 0x21cd
setg cl
sub ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 0x10]
jne 0x10019326
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x94]
jl 0x1001935a
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x100193d9
push edi
push edx
call ebx
push eax
call dword [sym.imp.USER32.dll_SetWindowRgn]
jmp 0x100193d7
mov dword [ebp - 0x2c], 0xc0136ef6
xor ecx, ecx
mov eax, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
cmp eax, 0xe712
mov eax, dword [ebp - 0x2c]
setle cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x94]
setle dl
xor ecx, ecx
cmp edx, eax
setl cl
xor edx, edx
mov dword [ebp - 0x9c], ecx
test ecx, ecx
je 0x100193a8
cmp dword [ebp - 0x10], edx
jne 0x100193aa
mov edi, edx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edi, eax
setle cl
mov dword [ebp - 0x10], ecx
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x100193d9
push 0x71e
push edx
push edx
call ebx
push eax
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_PolyPolyline]
xor edx, edx
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x10019433
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
jmp 0x10019433
mov dword [ebp - 0x20], 0xa08552ad
mov dword [ebp - 8], edx
jmp 0x10019403
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x190], edx
inc dword [ebp - 8]
cmp dword [ebp - 8], esi
jl 0x100193f6
cmp dword [ebp - 0x20], edx
jne 0x10019414
cmp dword [ebp - 0x28], edx
jne 0x10019414
mov edi, edx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, edi
setl cl
mov dword [ebp - 0x188], ecx
mov byte [ebp - 1], dl
cmp byte [ebp - 1], 0
je 0x10019433
call dword [sym.imp.USER32.dll_DestroyCaret]
mov eax, dword [ebp - 0x7c]
mov ecx, 0x3e8
cdq
idiv ecx
mov ecx, dword [ebp - 0xa4]
mov edi, edx
mov esi, eax
call fcn.10018060
add eax, esi
add eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret