Function at 0x100165d0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100832f7
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x38
push esi
push edi
mov eax, dword [0x100ba040]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x24], esi
lea ecx, [esi + 8]
call fcn.10017b50
mov dword [ebp - 4], 0
lea ecx, [esi + 0x1518]
call fcn.100179b0
lea edx, [esi + 0x193c]
mov ecx, 0x30
lea edi, [edx + 0x2c]
mov dword [edx + 4], 0
mov dword [ebp - 0x20], edx
mov eax, edi
mov dword [edx], 0
mov dword [edx + 0x24], 0
mov dword [edx + 0x20], 0
mov dword [edx + 0x1c], 0
mov dword [edx + 0x18], 0
mov dword [eax + 4], 0
lea eax, [eax + 8]
mov dword [eax - 8], 0
sub ecx, 1
jne 0x10016666
push 0x1f4
push ecx
push edx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
xor esi, esi
nop dword [eax]
movd xmm0, esi
cvtdq2ps xmm0, xmm0
addss xmm0, xmm0
mulss xmm0, dword [0x100b1b18]
divss xmm0, dword [0x100b1ba0]
movss dword [ebp - 0x18], xmm0
call fcn.1002c1a0
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0x18]
cvtps2pd xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
xorps xmm1, xmm1
inc esi
cvtsd2ss xmm1, xmm0
movss xmm0, dword [ebp - 0x1c]
movss dword [edi], xmm1
movss dword [edi + 4], xmm0
add edi, 8
cmp esi, 0x30
jl 0x10016690
movsd xmm0, qword [0x100b1a98]
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
movss xmm1, dword [0x100b1a78]
mov eax, dword [ebp - 0x20]
cvtsd2ss xmm0, xmm0
mov esi, dword [ebp - 0x24]
subss xmm1, xmm0
movss xmm0, dword [eax + 0x14]
divss xmm0, xmm1
movss dword [eax + 0x1ac], xmm0
mov dword [esi + 0x1b54], 0
mov dword [esi + 0x1b50], 0
mov dword [esi + 0x1b58], 0
mov byte [ebp - 4], 1
mov dword [esi + 0x1b60], 0
mov dword [esi + 0x1b5c], 0
mov dword [esi + 0x1b64], 0
mov byte [ebp - 4], 2
mov dword [esi + 0x1b6c], 0
mov dword [esi + 0x1b68], 0
mov dword [esi + 0x1b70], 0
mov byte [ebp - 4], 3
mov dword [esi + 0x1b78], 0
mov dword [esi + 0x1b74], 0
mov dword [esi + 0x1b7c], 0
mov byte [ebp - 4], 4
lea eax, [esi + 0x1b80]
mov dword [ebp - 0x20], eax
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 8], 0
mov byte [ebp - 4], 6
lea eax, [esi + 0x1c38]
mov dword [esi + 0x1b94], 0
xorps xmm0, xmm0
mov dword [esi + 0x1b90], 0
mov dword [esi + 0x1bb0], 0
mov dword [esi + 0x1bac], 0
mov dword [esi + 0x1bfc], 0
mov dword [esi + 0x1bf8], 0
movups xmmword [esi + 0x1c24], xmm0
mov dword [esi + 0x1c34], 0
push 0x3c
push 0
push eax
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x30], 0
mov dword [eax + 0x34], 0
mov dword [eax + 0x38], 0
call sub.VCRUNTIME140.dll_memset
lea eax, [esi + 0x1c74]
add esp, 0xc
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x34], 0
mov dword [eax + 0x30], 0
mov dword [eax + 0x3c], 0
mov dword [eax + 0x40], 0
mov dword [eax + 0x44], 0
mov dword [eax + 0x48], 0
mov dword [eax + 0x5c], 0
push 0x60
push 0
push eax
mov dword [eax + 0x58], 0
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [esi + 0x1cd8], 0
mov dword [esi + 0x1cd4], 0
mov dword [esi + 0x1cdc], 0
mov byte [ebp - 4], 7
mov dword [esi + 0x1ce4], 0
mov dword [esi + 0x1ce0], 0
mov dword [esi + 0x1ce8], 0
mov byte [ebp - 4], 8
mov dword [esi + 0x1cf0], 0
mov dword [esi + 0x1cec], 0
mov dword [esi + 0x1cf4], 0
mov byte [ebp - 4], 9
mov dword [esi + 0x1cfc], 0
mov dword [esi + 0x1cf8], 0
mov dword [esi + 0x1d00], 0
mov byte [ebp - 4], 0xa
mov dword [esi + 0x1d08], 0
mov dword [esi + 0x1d04], 0
mov dword [esi + 0x1d0c], 0
mov byte [ebp - 4], 0xb
mov dword [esi + 0x1d14], 0
mov dword [esi + 0x1d10], 0
mov dword [esi + 0x1d18], 0
mov byte [ebp - 4], 0xc
mov dword [esi + 0x1d20], 0
mov dword [esi + 0x1d1c], 0
mov dword [esi + 0x1d24], 0
mov byte [ebp - 4], 0xd
mov dword [esi + 0x1d2c], 0
mov dword [esi + 0x1d28], 0
mov dword [esi + 0x1d30], 0
mov byte [ebp - 4], 0xe
mov dword [esi + 0x1d38], 0
mov dword [esi + 0x1d34], 0
mov dword [esi + 0x1d3c], 0
mov byte [ebp - 4], 0xf
mov dword [esi + 0x1d90], 0
mov dword [esi + 0x1d94], 0
mov dword [esi + 0x1d98], 0
mov dword [esi + 0x1d9c], 0
mov dword [esi + 0x1dbc], 0
mov dword [esi + 0x1dc0], 0
mov dword [esi + 0x1dc4], 0
mov dword [esi + 0x1dc8], 0
mov dword [esi + 0x1de0], 0
mov dword [esi + 0x1de4], 0
mov dword [esi + 0x1de8], 0
mov dword [esi + 0x1dec], 0
mov dword [esi + 0x1dd4], 0
mov dword [esi + 0x1ddc], 0
mov dword [esi + 0x1dd8], 0
mov dword [esi + 0x1df0], 0
mov dword [esi + 0x1dfc], 0x7f7fffff
mov dword [esi + 0x1df8], 0x7f7fffff
mov dword [esi + 0x1df4], 0x7f7fffff
mov dword [esi + 0x1e0c], 0
mov dword [esi + 0x1e10], 0
mov dword [esi + 0x1e14], 0
mov dword [esi + 0x1e18], 0
mov dword [esi + 0x1e00], 0
mov dword [esi + 0x1e08], 0
mov dword [esi + 0x1e04], 0
mov dword [esi + 0x1e1c], 0
mov dword [esi + 0x1e28], 0x7f7fffff
mov dword [esi + 0x1e24], 0x7f7fffff
mov dword [esi + 0x1e20], 0x7f7fffff
mov dword [esi + 0x1e38], 0
xorps xmm0, xmm0
mov dword [esi + 0x1e3c], 0
mov dword [esi + 0x1e40], 0
mov dword [esi + 0x1e44], 0
mov dword [esi + 0x1e2c], 0
mov dword [esi + 0x1e34], 0
mov dword [esi + 0x1e30], 0
mov dword [esi + 0x1e48], 0
mov dword [esi + 0x1e54], 0x7f7fffff
mov dword [esi + 0x1e50], 0x7f7fffff
mov dword [esi + 0x1e4c], 0x7f7fffff
mov dword [esi + 0x1ea8], 0
mov dword [esi + 0x1ea4], 0
mov dword [esi + 0x1e9c], 0
mov dword [esi + 0x1ea0], 0
movups xmmword [esi + 0x1eb0], xmm0
movups xmmword [esi + 0x1ec0], xmm0
mov word [esi + 0x1ed0], 0
mov dword [esi + 0x1eac], 0xffffffff
mov byte [esi + 0x1ed2], 0
mov dword [esi + 0x1ed4], 0
mov dword [esi + 0x1ed8], 0
mov dword [esi + 0x1edc], 0
mov dword [esi + 0x1ee0], 0
mov dword [esi + 0x1f04], 0
mov dword [esi + 0x1f00], 0
mov dword [esi + 0x1f08], 0
mov byte [ebp - 4], 0x10
lea ecx, [esi + 0x1f24]
mov dword [ebp - 0x1c], ecx
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [ecx + 8], 0
mov byte [ebp - 4], 0x11
lea eax, [ecx + 0xc]
mov dword [ebp - 0x18], eax
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 8], 0
mov byte [ebp - 4], 0x13
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x18], 0
mov byte [ebp - 4], 0x14
mov dword [esi + 0x1f48], 0
mov dword [esi + 0x1f44], 0
mov dword [esi + 0x1f4c], 0
mov byte [ebp - 4], 0x15
mov dword [esi + 0x1f54], 0
mov dword [esi + 0x1f50], 0
mov dword [esi + 0x1f58], 0
mov byte [ebp - 4], 0x16
mov dword [esi + 0x1f60], 0
mov dword [esi + 0x1f5c], 0
mov dword [esi + 0x1f64], 0
mov byte [ebp - 4], 0x17
lea ecx, [esi + 0x1f6c]
mov dword [ebp - 0x28], ecx
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [ecx + 8], 0
mov byte [ebp - 4], 0x18
lea eax, [ecx + 0xc]
mov dword [ebp - 0x2c], eax
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 8], 0
mov byte [ebp - 4], 0x1a
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x18], 0
mov byte [ebp - 4], 0x1b
mov dword [esi + 0x1f90], 0
mov dword [esi + 0x1f8c], 0
mov dword [esi + 0x1f94], 0
mov byte [ebp - 4], 0x1c
mov dword [esi + 0x1f9c], 0
mov dword [esi + 0x1f98], 0
mov dword [esi + 0x1fa0], 0
mov byte [ebp - 4], 0x1d
lea eax, [esi + 0x1fac]
mov dword [esi + 0x1fa8], 0
mov dword [esi + 0x1fa4], 0
mov dword [ebp - 0x30], eax
mov dword [eax + 0x10], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x14], 0
mov byte [ebp - 4], 0x1e
mov dword [eax + 0x1c], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x20], 0
mov byte [ebp - 4], 0x1f
mov dword [eax + 0x28], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x2c], 0
mov byte [ebp - 4], 0x20
push 0xe7c
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov byte [ebp - 4], 0x21
lea ecx, [esi + 0x2e28]
call fcn.10039f70
mov byte [ebp - 4], 0x22
lea eax, [esi + 0x2ea4]
mov dword [esi + 0x2ea0], 0
mov dword [esi + 0x2e9c], 0
mov dword [esi + 0x2e98], 0
mov dword [esi + 0x2e94], 0
push 0x30
push 0
push eax
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x20], 0
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [esi + 0x2ef8], 0
mov dword [esi + 0x2ef4], 0
mov dword [esi + 0x2efc], 0
mov byte [ebp - 4], 0x23
mov dword [esi + 0x2f04], 0
mov dword [esi + 0x2f00], 0
mov dword [esi + 0x2f08], 0
mov byte [ebp - 4], 0x24
lea eax, [esi + 0x2f24]
mov dword [esi + 0x2f10], 0
mov dword [esi + 0x2f0c], 0
mov dword [esi + 0x2f18], 0
mov dword [esi + 0x2f14], 0
mov dword [ebp - 0x34], eax
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 8], 0
mov byte [ebp - 4], 0x26
mov dword [esi + 0x2f34], 0
mov dword [esi + 0x2f30], 0
mov dword [esi + 0x2f38], 0
mov byte [ebp - 4], 0x27
lea eax, [esi + 0x2f3c]
mov dword [ebp - 0x38], eax
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 8], 0
mov byte [ebp - 4], 0x29
lea eax, [esi + 0x2f48]
mov dword [ebp - 0x3c], eax
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 8], 0
mov byte [ebp - 4], 0x2b
mov dword [esi + 0x2f58], 0
mov dword [esi + 0x2f54], 0
mov dword [esi + 0x2f5c], 0
mov byte [ebp - 4], 0x2c
lea eax, [esi + 0x2f70]
mov dword [ebp - 0x40], eax
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 8], 0
mov byte [ebp - 4], 0x2e
lea eax, [esi + 0x2fb0]
mov dword [esi + 0x2fa0], 0
mov word [esi + 0x2fa4], 0x101
mov dword [esi + 0x2fa8], 0xffffffff
mov dword [esi + 0x2fac], 0xffffffff
mov dword [ebp - 0x44], eax
mov dword [eax + 0x10], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x14], 0
mov byte [ebp - 4], 0x2f
xorps xmm0, xmm0
movups xmmword [eax], xmm0
movq qword [eax + 0x10], xmm0
mov byte [ebp - 4], 0x30
mov eax, dword [0x100bdd64]
mov word [esi], 0x100
mov dword [esi + 0x1930], 0
mov dword [esi + 0x1938], 0
mov dword [esi + 0x1934], 0
test eax, eax
je 0x1001707a
inc dword [eax + 0x36c]
push 0x468
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov edi, eax
add esp, 4
mov dword [ebp - 0x44], edi
lea eax, [ebp - 0x11]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edi
mov byte [ebp - 4], 0x31
test edi, edi
je 0x10017165
mov dword [edi + 0x28], 0
mov dword [edi + 0x24], 0
mov dword [edi + 0x30], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x34], 0
mov dword [edi + 0x3c], 0
mov byte [ebp - 4], 0x32
mov dword [edi + 0x44], 0
mov dword [edi + 0x40], 0
mov dword [edi + 0x48], 0
mov byte [ebp - 4], 0x33
mov dword [edi + 0x50], 0
mov dword [edi + 0x4c], 0
mov dword [edi + 0x54], 0
mov byte [ebp - 4], 0x34
lea eax, [edi + 0x58]
mov ecx, 0x40
mov dword [eax + 0xc], 0
lea eax, [eax + 0x10]
mov dword [eax - 8], 0
mov dword [eax - 0xc], 0
mov dword [eax - 0x10], 0
sub ecx, 1
jne 0x10017111
push 0x468
push ecx
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [edi + 0xc], 1
mov dword [edi + 0x464], 0xffffffff
mov dword [edi + 0x460], 0xffffffff
mov byte [ebp - 4], 0x31
jmp 0x10017167
xor edi, edi
mov byte [ebp - 4], 0x30
xorps xmm0, xmm0
mov dword [esi + 0x98], edi
movsd qword [esi + 0x1b30], xmm0
mov dword [esi + 0x1b38], 0
mov dword [esi + 0x1b40], 0xffffffff
mov dword [esi + 0x1b3c], 0xffffffff
mov dword [esi + 0x1b45], 0
mov byte [esi + 0x1b44], 0
mov dword [esi + 0x1b4c], 0
mov dword [esi + 0x1b8c], 0
mov dword [esi + 0x1b98], 0
mov dword [esi + 0x1b9c], 0
mov dword [esi + 0x1ba0], 0
mov dword [esi + 0x1ba4], 0
mov dword [esi + 0x1ba8], 0
mov dword [esi + 0x1bb4], 0
mov dword [esi + 0x1bb8], 0
mov dword [esi + 0x1bc0], 0
mov dword [esi + 0x1bbc], 0
mov dword [esi + 0x1bc4], 0
mov dword [esi + 0x1bcc], 0
mov dword [esi + 0x1bc8], 0
mov dword [esi + 0x1bd0], 0
mov dword [esi + 0x1bd4], 0
mov dword [esi + 0x1bd8], 0
mov dword [esi + 0x1bdc], 0
mov word [esi + 0x1be0], 0
mov byte [esi + 0x1be2], 0
mov dword [esi + 0x1be4], 0
mov dword [esi + 0x1be8], 0
mov dword [esi + 0x1bf0], 0
mov dword [esi + 0x1bf4], 0
mov dword [esi + 0x1bf8], 0xbf800000
mov dword [esi + 0x1bfc], 0xbf800000
mov dword [esi + 0x1c00], 0
mov dword [esi + 0x1c04], 0
mov dword [esi + 0x1c08], 0xffffffff
mov dword [esi + 0x1c0c], 0
mov word [esi + 0x1c10], 0
mov dword [esi + 0x1c14], 0
mov dword [esi + 0x1c18], 0
mov dword [esi + 0x1c1c], 0
mov dword [esi + 0x1c20], 0
mov dword [esi + 0x1d40], 0
mov dword [esi + 0x1d58], 0
mov dword [esi + 0x1d54], 0
mov dword [esi + 0x1d50], 0
mov dword [esi + 0x1d4c], 0
mov dword [esi + 0x1d48], 0
mov dword [esi + 0x1d44], 0
mov dword [esi + 0x1d70], 0
mov dword [esi + 0x1d68], 0
mov dword [esi + 0x1d64], 0
mov dword [esi + 0x1d60], 0
mov dword [esi + 0x1d74], 0
mov dword [esi + 0x1d5c], 0
mov dword [esi + 0x1d6c], 0
mov dword [esi + 0x1d78], 0
mov dword [esi + 0x1d7c], 0
mov dword [esi + 0x1d80], 0x7fffffff
mov dword [esi + 0x1d84], 0x10000
mov word [esi + 0x1d88], 0
mov byte [esi + 0x1d8a], 0
mov dword [esi + 0x1d8c], 0
mov word [esi + 0x1da0], 0
mov byte [esi + 0x1da2], 0
mov dword [esi + 0x1da4], 0
mov dword [esi + 0x1da8], 0
mov dword [esi + 0x1dac], 0
mov dword [esi + 0x1db8], 0xffffffff
mov dword [esi + 0x1db4], 0xffffffff
mov dword [esi + 0x1db0], 0xffffffff
mov dword [esi + 0x1dcc], 0
mov dword [esi + 0x1dd0], 0
mov dword [esi + 0x1e60], 0
mov dword [esi + 0x1e5c], 0
mov dword [esi + 0x1e58], 0
mov dword [esi + 0x1e68], 0
mov dword [esi + 0x1e64], 0
mov byte [esi + 0x1e6c], 0
mov dword [esi + 0x1e74], 0
xor eax, eax
mov dword [esi + 0x1e70], 0
mov dword [esi + 0x1e78], 0x7fffffff
mov dword [esi + 0x1e7c], 0x7fffffff
mov byte [esi + 0x1e80], 0
mov dword [esi + 0x1e84], 0
mov dword [esi + 0x1e88], 0
mov word [esi + 0x1e8d], 0
mov byte [esi + 0x1e8c], 0
mov dword [esi + 0x1e90], 0
mov dword [esi + 0x1e94], 0xffffffff
mov dword [esi + 0x1e98], 0xffffffff
mov dword [esi + 0x1ee4], 0
mov dword [esi + 0x1ee8], 0
mov dword [esi + 0x1eec], 0
mov dword [esi + 0x1ef0], 0
mov dword [esi + 0x1ef4], 0
mov dword [esi + 0x1ef8], 0xffffffff
mov dword [esi + 0x1efc], 0
movups xmmword [esi + 0x1f0c], xmm0
mov dword [esi + 0x1f1c], 0
mov dword [esi + 0x1f20], 0xffffffff
mov dword [esi + 0x1f68], 0
mov dword [esi + 0x2e80], 0
mov dword [esi + 0x2e84], 0xa900000
mov dword [esi + 0x2e8c], 0
mov dword [esi + 0x2e88], 0
mov dword [esi + 0x2e90], 0
mov dword [esi + 0x2ed4], 0
mov word [esi + 0x2ed8], 0
mov dword [esi + 0x2edc], 0
mov dword [esi + 0x2ee0], 0x3c23d70a
mov dword [esi + 0x2ee8], 0
mov dword [esi + 0x2eec], eax
mov dword [esi + 0x2ee4], eax
mov dword [esi + 0x2ef0], 0x3f000000
mov dword [esi + 0x2f14], 0x7f7fffff
mov dword [esi + 0x2f18], 0x7f7fffff
mov dword [esi + 0x2f0c], 0x7f7fffff
mov dword [esi + 0x2f10], 0x7f7fffff
mov word [esi + 0x2f1c], 0x2e
mov dword [esi + 0x2f20], eax
mov dword [esi + 0x2f60], eax
mov byte [esi + 0x2f64], al
mov dword [esi + 0x2f68], eax
mov dword [esi + 0x2f80], eax
mov dword [esi + 0x2f7c], eax
mov dword [esi + 0x2f6c], eax
mov dword [esi + 0x2f84], 0x7f7fffff
mov byte [esi + 0x2f88], al
mov dword [esi + 0x2f8c], eax
mov dword [esi + 0x2f94], 2
mov dword [esi + 0x2f90], 2
mov byte [esi + 0x2f98], al
push 0x1e0
push eax
mov dword [esi + 0x2f9c], eax
lea eax, [esi + 0x2fc8]
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [esi + 0x31ac], 0
mov dword [esi + 0x31a8], 0
lea eax, [esi + 0x31c0]
mov dword [esi + 0x31b0], 0
mov dword [esi + 0x31bc], 0xffffffff
push 0xc01
push 0
mov dword [esi + 0x31b8], 0xffffffff
push eax
mov dword [esi + 0x31b4], 0xffffffff
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp - 4], 0xffffffff
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4