Function at 0x10003330
Capabilities:
Encode data using xor

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 0x100689b8
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x1c8
mov eax, dword [0x10077008]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebx + 0x18]
mov ecx, dword [0x10078a9c]
mov dword [ebp - 0x1a8], eax
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0x198], eax
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x19c], eax
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x1a0], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
test eax, eax
je 0x10004097
mov ecx, dword [0x10078aa0]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
mov esi, eax
mov dword [ebp - 0x118], esi
test esi, esi
je 0x10004097
mov ecx, dword [esi]
mov edx, dword [ecx + 0x1d8]
mov ecx, esi
call edx
test al, al
je 0x10004097
mov ecx, esi
call fcn.1005ff10
mov esi, eax
test esi, esi
je 0x10004097
mov ecx, esi
call fcn.10066130
mov edx, eax
mov dword [ebp - 0x134], edx
test edx, edx
je 0x10004097
lea ecx, [ebp - 0x98]
call fcn.10004100
lea ecx, [ebp - 0x178]
call fcn.10004150
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1007885c]
movss xmm0, dword [edx + 0x7e4]
mov edi, dword [edx + 0x7dc]
movss dword [ebp - 0x11c], xmm0
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x1007c94c]
mov dword [ebp - 0x120], edi
mov dword [ebp - 0x194], ecx
cmp eax, dword [ecx + 4]
jle 0x10003505
push 0x1007c94c
call fcn.10067831
add esp, 4
cmp dword [0x1007c94c], 0xffffffff
jne 0x100034ff
mov dword [ebp - 4], 0
xor ecx, ecx
movaps xmm0, xmmword [0x10071700]
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 0x61747d
mov al, byte [ebp - 0x28]
xor byte [ebp + ecx - 0x27], al
inc ecx
cmp ecx, 0x12
jb 0x10003491
movaps xmm0, xmmword [0x10071960]
xor ecx, ecx
mov byte [ebp - 0x15], 0
movups xmmword [ebp - 0x40], xmm0
mov dword [ebp - 0x30], 0x76776879
mov byte [ebp - 0x2c], 0
nop word [eax + eax]
mov al, byte [ebp - 0x40]
xor byte [ebp + ecx - 0x3f], al
inc ecx
cmp ecx, 0x13
jb 0x100034c0
mov ecx, dword [0x1007c134]
lea eax, [ebp - 0x27]
push 0
push eax
lea eax, [ebp - 0x3f]
mov byte [ebp - 0x2c], 0
push eax
call fcn.1005ee80
push 0x1007c94c
mov dword [0x1007c96c], eax
mov dword [ebp - 4], 0xffffffff
call fcn.100677f2
add esp, 4
mov edx, dword [ebp - 0x134]
movss xmm0, dword [edx + 0x7e8]
mov eax, dword [0x1007c96c]
movss dword [ebp - 0x1b8], xmm0
movd xmm0, dword [edx + 0x7e0]
lea edx, [ebp - 0x138]
cvtdq2ps xmm0, xmm0
mov ecx, dword [eax + esi]
lea eax, [ebp - 0x144]
push eax
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x144], 0
movss dword [ebp - 0x10c], xmm0
xorps xmm0, xmm0
movss dword [ebp - 0x114], xmm0
call fcn.10065620
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x130]
add esp, 4
movss xmm0, dword [eax]
movss xmm3, dword [eax + 4]
movss xmm4, dword [eax + 8]
mov eax, dword [ebx + 0xc]
movss dword [ebp - 0xf8], xmm0
movss dword [ebp - 0x190], xmm0
movss dword [ebp - 0x104], xmm3
movss xmm2, dword [eax]
movss xmm1, dword [eax + 4]
subss xmm2, xmm0
movss xmm0, dword [eax + 8]
subss xmm1, xmm3
subss xmm0, xmm4
movss dword [ebp - 0x18c], xmm3
movss dword [ebp - 0x108], xmm4
movss dword [ebp - 0x188], xmm4
movss dword [ebp - 0x130], xmm2
movss dword [ebp - 0x12c], xmm1
movss dword [ebp - 0x128], xmm0
call fcn.100291c0
movss xmm0, dword [ebp - 0x10c]
xor eax, eax
xor esi, esi
mov dword [ebp - 0x13c], eax
comiss xmm0, dword [0x10070d94]
jbe 0x10004080
movss xmm1, dword [ebp - 0x130]
movss xmm0, dword [0x10070f1c]
movaps xmm2, xmm1
movss xmm7, dword [ebp - 0x128]
movss xmm4, dword [ebp - 0x104]
movss xmm5, dword [ebp - 0x108]
movss xmm6, dword [ebp - 0x11c]
mulss xmm2, xmm0
movss dword [ebp - 0x1b4], xmm2
movss xmm2, dword [ebp - 0x12c]
movaps xmm3, xmm2
mulss xmm3, xmm0
movss dword [ebp - 0x1b0], xmm3
movaps xmm3, xmm7
mulss xmm3, xmm0
movss dword [ebp - 0x1ac], xmm3
movss xmm3, dword [ebp - 0xf8]
movaps xmm0, xmm1
mov eax, dword [ebp - 0x118]
movaps xmm1, xmm2
mulss xmm0, xmm6
mov dword [ebp - 0x1c0], eax
mulss xmm1, xmm6
movaps xmm2, xmm7
mov dword [ebp - 0x1c4], 0x10070cf0
mulss xmm2, xmm6
movaps xmm7, xmm5
mov dword [ebp - 0x1bc], esi
movaps xmm6, xmm3
mov byte [ebp - 0x147], 1
addss xmm6, xmm0
movaps xmm0, xmm4
addss xmm0, xmm1
addss xmm7, xmm2
movaps xmm1, xmm6
movss dword [ebp - 0x124], xmm6
movaps xmm2, xmm0
movss dword [ebp - 0x108], xmm0
subss xmm2, xmm4
movss dword [ebp - 0x104], xmm7
subss xmm1, xmm3
movaps xmm0, xmm7
subss xmm0, xmm5
movss dword [ebp - 0x168], xmm2
movss dword [ebp - 0x16c], xmm1
mulss xmm2, xmm2
mulss xmm1, xmm1
movss dword [ebp - 0x164], xmm0
mulss xmm0, xmm0
addss xmm2, xmm1
addss xmm2, xmm0
ucomiss xmm2, dword [0x10070d94]
lahf
test ah, 0x44
jp 0x1000372b
mov byte [ebp - 0x147], 0
mov ecx, dword [0x10078a68]
lea edx, [ebp - 0x98]
push edx
mov dword [ebp - 0x154], 0
lea edx, [ebp - 0x1c4]
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x14c], 0
mov byte [ebp - 0x148], 1
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x158], 0
movss dword [ebp - 0x178], xmm3
movss dword [ebp - 0x174], xmm4
movss dword [ebp - 0x170], xmm5
mov eax, dword [ecx]
push edx
push 0x4600400b
lea edx, [ebp - 0x178]
mov eax, dword [eax + 0x10]
push edx
call eax
movss xmm2, dword [ebp - 0x1b4]
lea eax, [ebp - 0x98]
movss xmm1, dword [ebp - 0x1b0]
lea edx, [ebp - 0x1d8]
movss xmm0, dword [ebp - 0x1ac]
lea ecx, [ebp - 0x190]
addss xmm2, dword [ebp - 0x124]
addss xmm1, dword [ebp - 0x108]
addss xmm0, dword [ebp - 0x104]
push eax
lea eax, [ebp - 0x1c4]
push eax
push 0x4600400b
movss dword [ebp - 0x1d8], xmm2
movss dword [ebp - 0x1d4], xmm1
movss dword [ebp - 0x1d0], xmm0
call fcn.10065720
mov esi, dword [ebp - 0x4c]
add esp, 0xc
test esi, esi
je 0x10003836
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x1d8]
call eax
xor ecx, ecx
test al, al
cmove esi, ecx
movss xmm0, dword [ebp - 0x6c]
ucomiss xmm0, dword [0x10070e90]
mov dword [ebp - 0xf8], esi
lahf
test ah, 0x44
jnp 0x10004076
mov ecx, dword [0x10078a6c]
movsx edx, word [ebp - 0x58]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
movzx eax, word [eax + 0x48]
mov dword [ebp - 0x1a4], eax
add eax, 0xffffffbd
cmp eax, 0x14
ja case.0x10003881.69
movzx eax, byte [eax + 0x100040dc]
jmp dword [eax*4 + 0x100040bc]
movss xmm0, dword [0x10070e5c]
movss dword [ebp - 0xf4], xmm0
movss xmm0, dword [0x10070e48]
jmp 0x10003967
movss xmm0, dword [0x10070e54]
movss dword [ebp - 0xf4], xmm0
movss xmm0, dword [0x10070e38]
jmp 0x10003967
movss xmm0, dword [0x10070e90]
movss xmm1, dword [0x10070e88]
movss dword [ebp - 0xf4], xmm0
movss dword [ebp - 0x100], xmm1
jmp 0x1000397f
movss xmm0, dword [0x10070e5c]
movss dword [ebp - 0xf4], xmm0
movss xmm0, dword [0x10070e58]
jmp 0x10003967
movss xmm0, dword [0x10070e68]
movss dword [ebp - 0xf4], xmm0
movss xmm0, dword [0x10070e48]
jmp 0x10003967
movss xmm0, dword [0x10070e54]
movss dword [ebp - 0xf4], xmm0
movss xmm0, dword [0x10070e58]
jmp 0x10003967
movss xmm0, dword [0x10070e90]
movss dword [ebp - 0xf4], xmm0
movss xmm0, dword [0x10070e64]
jmp 0x10003967
movss xmm0, dword [0x10070e90]
movss dword [ebp - 0xf4], xmm0
movss xmm0, dword [0x10070e5c]
movss xmm1, dword [0x10070e88]
movss dword [ebp - 0x100], xmm0
movss xmm0, dword [0x10070e90]
mov eax, dword [ebp - 0x68]
shr eax, 3
and al, 1
mov dword [ebp - 0x140], eax
je 0x1000399f
movss dword [ebp - 0xf4], xmm0
movss dword [ebp - 0x100], xmm1
movss xmm1, dword [ebp - 0x6c]
mulss xmm1, dword [ebp - 0x11c]
movss xmm0, dword [ebp - 0x1b8]
cvtps2pd xmm0, xmm0
addss xmm1, dword [ebp - 0x114]
movss dword [ebp - 0x114], xmm1
divss xmm1, dword [0x10070f6c]
cvtps2pd xmm1, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_pow_precise
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [ebp - 0x10c]
movss dword [ebp - 0x124], xmm0
movss xmm0, dword [ebp - 0x114]
comiss xmm0, dword [ebp - 0x144]
jbe 0x10003a09
xor eax, eax
test edi, edi
cmovg edi, eax
mov dword [ebp - 0x120], edi
test esi, esi
je 0x10003cb8
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x10003a6f
cmp eax, 1
jne 0x10003a42
mov ecx, esi
call fcn.10029720
mov ecx, dword [ebp - 0x118]
mov esi, eax
call fcn.10029720
mov ecx, dword [eax]
cmp ecx, dword [esi]
mov esi, dword [ebp - 0xf8]
jne 0x10003a6f
jmp 0x10003cb8
cmp eax, 2
jne 0x10003cb8
mov ecx, esi
call fcn.10029720
mov ecx, dword [ebp - 0x118]
mov esi, eax
call fcn.10029720
mov ecx, dword [eax]
cmp ecx, dword [esi]
mov esi, dword [ebp - 0xf8]
jne 0x10003cb8
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x194]
movss xmm0, dword [eax*4 + 0x10070cf8]
mulss xmm0, dword [ebp - 0x124]
mov eax, dword [0x1007c8bc]
movss dword [ebp - 0x10c], xmm0
cmp eax, dword [ecx + 4]
jle 0x10003b53
push 0x1007c8bc
call fcn.10067831
add esp, 4
cmp dword [0x1007c8bc], 0xffffffff
jne 0x10003b53
mov dword [ebp - 4], 1
mov cl, 0x76
mov dword [ebp - 0x24], 0x14291b76
xor eax, eax
mov dword [ebp - 0x20], 0x3e05173e
mov dword [ebp - 0x1c], 0x131b1a13
mov word [ebp - 0x18], 2
xor byte [ebp + eax - 0x23], cl
inc eax
cmp eax, 0xc
jae 0x10003af1
mov cl, byte [ebp - 0x24]
jmp 0x10003ae2
mov byte [ebp - 0x17], 0
mov cl, 0x57
mov dword [ebp - 0x38], 0x8031357
xor eax, eax
mov dword [ebp - 0x34], 0x3b070414
mov dword [ebp - 0x30], 0x25322e36
mov byte [ebp - 0x2c], 0
xor byte [ebp + eax - 0x37], cl
inc eax
cmp eax, 0xb
jae 0x10003b21
mov cl, byte [ebp - 0x38]
jmp 0x10003b12
mov ecx, dword [0x1007c134]
lea eax, [ebp - 0x23]
push 0
push eax
lea eax, [ebp - 0x37]
mov byte [ebp - 0x2c], 0
push eax
call fcn.1005ee80
push 0x1007c8bc
mov dword [0x1007c8b4], eax
mov dword [ebp - 4], 0xffffffff
call fcn.100677f2
add esp, 4
mov edi, dword [0x1007c8b4]
mov ecx, esi
call fcn.1005fce0
cmp dword [ebp - 0x54], 1
mov ecx, esi
sete byte [ebp - 0xf9]
mov eax, dword [eax]
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x134]
movss xmm0, dword [eax + 0x664]
movss dword [ebp - 0x108], xmm0
call fcn.10029720
mov ecx, dword [ebp - 0x118]
mov esi, eax
call fcn.10029720
mov ecx, dword [ebp - 0xf8]
movss xmm3, dword [ebp - 0x10c]
mov dl, byte [edi + ecx]
mov ecx, dword [esi]
cmp ecx, dword [eax]
jne 0x10003bbc
mulss xmm3, dword [0x10070e4c]
movss xmm0, dword [ebp - 0x108]
movss xmm4, dword [0x10070e5c]
mov eax, dword [ebp - 0x104]
mulss xmm0, xmm4
test eax, eax
jle 0x10003be5
cmp byte [ebp - 0xf9], 0
je 0x10003bf2
jmp 0x10003bee
cmp byte [ebp - 0xf9], 0
je 0x10003c47
test dl, dl
je 0x10003c47
movaps xmm1, xmm3
movd xmm2, eax
mulss xmm1, xmm0
movaps xmm0, xmm3
cvtdq2ps xmm2, xmm2
subss xmm0, xmm1
mulss xmm0, xmm4
comiss xmm2, xmm0
jae 0x10003c1b
addss xmm2, xmm2
movaps xmm1, xmm3
subss xmm1, xmm2
cvtps2pd xmm0, xmm1
sub esp, 8
movsd qword [ebp - 0x110], xmm0
fld qword [ebp - 0x110]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
fstp qword [ebp - 0x110]
movsd xmm0, qword [ebp - 0x110]
jmp 0x10003c71
cvtps2pd xmm0, xmm3
sub esp, 8
movsd qword [ebp - 0x110], xmm0
fld qword [ebp - 0x110]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
fstp qword [ebp - 0x110]
movsd xmm0, qword [ebp - 0x110]
mov ecx, dword [ebp - 0x198]
add esp, 8
cvtpd2ps xmm0, xmm0
cvttss2si eax, xmm0
add dword [ebp - 0x13c], eax
test ecx, ecx
je 0x10003c91
mov eax, dword [ebp - 0x48]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x19c]
test ecx, ecx
je 0x10003ca0
mov eax, dword [ebp - 0x54]
mov dword [ecx], eax
mov eax, dword [ebp - 0x1a0]
mov esi, dword [ebp - 0xf8]
mov edi, dword [ebp - 0x120]
test eax, eax
je 0x10003cb8
mov dword [eax], esi
test edi, edi
jne 0x10003ccb
cmp byte [ebp - 0x140], 0
je 0x10004076
jmp 0x10003cd1
js 0x10004076
xorps xmm2, xmm2
nop dword [eax]
nop dword [eax + eax]
addss xmm2, dword [0x10070f14]
movss xmm0, dword [ebp - 0x130]
lea edx, [ebp - 0x184]
movss xmm3, dword [ebp - 0x12c]
movss xmm1, dword [ebp - 0x128]
mov ecx, dword [0x10078a68]
mulss xmm0, xmm2
push 0
mulss xmm3, xmm2
push edx
mulss xmm1, xmm2
addss xmm3, dword [ebp - 0x88]
movss dword [ebp - 0x140], xmm2
movss xmm2, dword [ebp - 0x8c]
addss xmm2, xmm0
movss xmm0, dword [ebp - 0x84]
addss xmm0, xmm1
movss dword [ebp - 0x180], xmm3
movss dword [ebp - 0x184], xmm2
movss dword [ebp - 0x17c], xmm0
mov eax, dword [ecx]
mov eax, dword [eax]
call eax
test eax, 0x200400b
je 0x10003d86
movss xmm2, dword [ebp - 0x140]
movss xmm0, dword [0x10070f48]
comiss xmm0, xmm2
jae 0x10003ce0
jmp 0x10004076
movss xmm2, dword [ebp - 0x8c]
xorps xmm0, xmm0
movss xmm3, dword [ebp - 0x184]
movss xmm1, dword [ebp - 0x88]
subss xmm2, xmm3
movss xmm4, dword [ebp - 0x180]
movss xmm5, dword [ebp - 0x17c]
subss xmm1, xmm4
movups xmmword [ebp - 0xf0], xmm0
mov dword [ebp - 0xd0], 0
movups xmmword [ebp - 0xe0], xmm0
mov byte [ebp - 0x147], 1
movss xmm0, dword [ebp - 0x84]
movss dword [ebp - 0x168], xmm1
subss xmm0, xmm5
movss dword [ebp - 0x16c], xmm2
mulss xmm1, xmm1
mulss xmm2, xmm2
movss dword [ebp - 0x164], xmm0
mulss xmm0, xmm0
addss xmm1, xmm2
addss xmm1, xmm0
ucomiss xmm1, dword [0x10070d94]
lahf
test ah, 0x44
jp 0x10003e24
mov byte [ebp - 0x147], 0
mov ecx, dword [0x10078a68]
lea edx, [ebp - 0xf0]
push edx
mov dword [ebp - 0x154], 0
lea edx, [ebp - 0x178]
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x14c], 0
mov byte [ebp - 0x148], 1
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x158], 0
movss dword [ebp - 0x178], xmm3
movss dword [ebp - 0x174], xmm4
movss dword [ebp - 0x170], xmm5
mov eax, dword [ecx]
push 0
push 0x4600400b
push edx
mov eax, dword [eax + 0x10]
call eax
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x4c]
je 0x10003f00
test eax, eax
je 0x10003f00
mov dword [ebp - 0x1c8], eax
lea ecx, [ebp - 0x178]
lea eax, [ebp - 0x8c]
mov dword [ebp - method.CTraceFilterSimple.virtual_0], vtable.CTraceFilterSimple.0
push eax
lea eax, [ebp - 0x184]
push eax
call fcn.10002c20
mov ecx, dword [0x10078a68]
lea edx, [ebp - 0xf0]
push edx
lea edx, [ebp - 0x1cc]
push edx
mov eax, dword [ecx]
lea edx, [ebp - 0x178]
push 0x4600400b
push edx
mov eax, dword [eax + 0x10]
call eax
mov ecx, dword [0x10078a6c]
movsx edx, word [ebp - 0xb0]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
movzx eax, word [eax + 0x48]
cmp dword [ebp - 0x1a4], eax
jne 0x10003f3f
cmp eax, 0x57
je 0x10003f2b
cmp eax, 0x4d
jne 0x10003f3f
movss xmm0, dword [ebp - 0xf4]
addss xmm0, xmm0
movss dword [ebp - 0xf4], xmm0
movss xmm0, dword [ebp - 0xe4]
movss xmm1, dword [ebp - 0xdc]
movaps xmm2, xmm0
subss xmm2, dword [ebp - 0x8c]
movss dword [ebp - 0xf8], xmm0
movss xmm0, dword [ebp - 0xe0]
movss dword [ebp - 0x104], xmm0
subss xmm0, dword [ebp - 0x88]
movss dword [ebp - 0x108], xmm1
subss xmm1, dword [ebp - 0x84]
mulss xmm2, xmm2
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm2
addss xmm0, xmm1
call fcn.10002bd0
movss xmm3, dword [ebp - 0xf4]
movss xmm2, dword [ebp - 0x138]
movaps xmm1, xmm3
mulss xmm1, xmm2
comiss xmm0, xmm1
ja 0x10004076
movaps xmm1, xmm0
movss xmm6, dword [ebp - 0x11c]
addss xmm0, dword [ebp - 0x114]
divss xmm1, xmm3
dec edi
mov dword [ebp - 0x120], edi
movss xmm3, dword [ebp - 0xf8]
subss xmm6, xmm0
movss xmm4, dword [ebp - 0x104]
subss xmm2, xmm1
movss xmm5, dword [ebp - 0x108]
movss xmm1, dword [ebp - 0x130]
movss xmm7, dword [ebp - 0x128]
mulss xmm6, dword [0x10070e5c]
movss dword [ebp - 0x114], xmm0
movss xmm0, dword [ebp - 0x100]
mulss xmm0, dword [ebp - 0x124]
movss dword [ebp - 0x138], xmm2
movss xmm2, dword [ebp - 0x12c]
comiss xmm0, dword [0x10070d94]
movss dword [ebp - 0x190], xmm3
movss dword [ebp - 0x18c], xmm4
movss dword [ebp - 0x188], xmm5
movss dword [ebp - 0x11c], xmm6
movss dword [ebp - 0x10c], xmm0
ja 0x10003671
mov eax, dword [ebp - 0x13c]
test eax, eax
jne 0x10004083
or eax, 0xffffffff
mov ecx, dword [ebp - 0x1a8]
test ecx, ecx
je 0x1000408f
mov dword [ecx], eax
cmp eax, dword [ebx + 0x10]
setge al
jmp 0x10004099
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100671ce
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x20