Function at 0x5799b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
push esi
push edi
mov edi, dword [ebp + 0x14]
push edi
call sym.vidcap60.exe__SfAudio_GetSampleType_4
movzx ecx, word [edi + 2]
mov dword [esp + 0x1c], eax
movzx eax, word [edi + 0xc]
mov dword [esp + 0x2c], eax
cdq
idiv ecx
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x20], ebx
mov edi, eax
mov eax, dword [ebp + 0xc]
mov edx, edi
imul edx, eax
cmp ecx, eax
mov dword [esp + 0x28], edx
jne 0x579a14
mov eax, dword [ebp + 0x18]
push 0x3f800000
push eax
mov eax, dword [ebp + 0x14]
mov ecx, esi
push ecx
push eax
push ebx
push eax
call sym.vidcap60.exe__SfAudio_Copy_24
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov edx, dword [ebp + 0x14]
mov cx, word [edx + 2]
movzx edx, cx
cmp edx, eax
jge 0x579a88
cmp cx, 1
jne case.0x579aa8.20
mov eax, dword [ebp + 0x18]
mov esi, dword [esp + 0x2c]
mov ecx, dword [ebp + 0x10]
imul esi, eax
add esi, ecx
mov ecx, dword [esp + 0x28]
imul ecx, eax
add ecx, ebx
test eax, eax
mov ebx, ecx
jle 0x57a4d2
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [ebp + 0xc]
sub esi, ecx
test eax, eax
jle 0x579a77
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x1c]
push esi
sub ebx, edi
push ebx
push ecx
call fcn.004da440
dec dword [esp + 0x28]
jne 0x579a63
dec dword [esp + 0x24]
jne 0x579a52
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp eax, 1
jne case.0x579aa8.20
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
cmp eax, 0x32
ja case.0x579aa8.20
movzx edx, byte [eax + 0x57a518]
jmp dword [edx*4 + 0x57a4ec]
mov eax, dword [ebp + 0x18]
test eax, eax
jle 0x57a4d2
mov dword [esp + 0x2c], eax
mov edi, edi
mov eax, dword [ebp + 0x14]
fld qword [0x5d8c90]
movzx ecx, word [eax + 2]
xor edx, edx
cmp ecx, 4
mov dword [esp + 0x24], ecx
jl 0x579b49
lea eax, [ecx - 4]
shr eax, 2
inc eax
lea edx, [eax*4]
jmp 0x579af0
movsx ebx, byte [esi]
mov dword [esp + 0x34], ebx
movsx ebx, byte [esi + edi]
fild dword [esp + 0x34]
add esi, edi
mov dword [esp + 0x34], ebx
fmul qword [0x5eb190]
movsx ebx, byte [esi + edi]
add esi, edi
faddp st(1)
add esi, edi
fild dword [esp + 0x34]
mov dword [esp + 0x34], ebx
movsx ebx, byte [esi]
fmul qword [0x5eb190]
add esi, edi
dec eax
faddp st(1)
fild dword [esp + 0x34]
mov dword [esp + 0x34], ebx
fmul qword [0x5eb190]
faddp st(1)
fild dword [esp + 0x34]
fmul qword [0x5eb190]
faddp st(1)
jne 0x579af0
cmp edx, ecx
jge 0x579b68
sub ecx, edx
nop
movsx edx, byte [esi]
mov dword [esp + 0x34], edx
add esi, edi
dec ecx
fild dword [esp + 0x34]
fmul qword [0x5eb190]
faddp st(1)
jne 0x579b50
fild dword [esp + 0x24]
sub esp, 8
fdivr st(1)
fstp qword [esp]
fstp st(0)
call fcn.004d97f0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov byte [ecx], al
mov eax, dword [esp + 0x2c]
add ecx, edx
dec eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], eax
jne 0x579ac0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [ebp + 0x18]
test eax, eax
jle 0x57a4d2
mov dword [esp + 0x2c], eax
mov ecx, dword [ebp + 0x14]
movzx ecx, word [ecx + 2]
xor eax, eax
test ecx, ecx
jle 0x579bd4
mov dl, byte [esi]
xor dl, 0x80
xor ebx, ebx
mov bh, dl
add esi, edi
movsx edx, bx
add eax, edx
dec ecx
jne 0x579bc1
mov ecx, dword [ebp + 0x14]
movzx ecx, word [ecx + 2]
cdq
idiv ecx
cmp eax, 0xffff8000
jge 0x579bec
mov eax, 0xffff8000
jmp 0x579bf8
cmp eax, 0x7fff
jle 0x579bf8
mov eax, 0x7fff
mov ecx, dword [esp + 0x28]
mov edx, eax
mov eax, dword [esp + 0x20]
sar edx, 8
xor dl, 0x80
mov byte [eax], dl
add eax, ecx
mov dword [esp + 0x20], eax
dec dword [esp + 0x2c]
jne 0x579bb4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [ebp + 0x18]
test eax, eax
jle 0x57a4d2
mov dword [esp + 0x1c], eax
mov ecx, dword [ebp + 0x14]
fld qword [0x5d8c90]
movzx edx, word [ecx + 2]
xor eax, eax
cmp edx, 4
mov dword [esp + 0x24], edx
jl 0x579d07
lea ecx, [edx - 4]
shr ecx, 2
inc ecx
lea eax, [ecx*4]
mov dword [esp + 0x2c], eax
mov edi, edi
xor eax, eax
mov ax, word [esi]
add esi, edi
mov ebx, eax
shr ebx, 8
movsx eax, al
movzx ebx, bl
shl eax, 8
or ebx, eax
xor eax, eax
mov ax, word [esi]
mov dword [esp + 0x34], ebx
add esi, edi
fild dword [esp + 0x34]
fmul qword [0x5eb180]
mov ebx, eax
shr ebx, 8
faddp st(1)
movsx eax, al
movzx ebx, bl
shl eax, 8
or ebx, eax
xor eax, eax
mov ax, word [esi]
mov dword [esp + 0x34], ebx
add esi, edi
fild dword [esp + 0x34]
fmul qword [0x5eb180]
mov ebx, eax
shr ebx, 8
faddp st(1)
movsx eax, al
movzx ebx, bl
shl eax, 8
or ebx, eax
xor eax, eax
mov ax, word [esi]
mov dword [esp + 0x34], ebx
add esi, edi
fild dword [esp + 0x34]
fmul qword [0x5eb180]
mov ebx, eax
shr ebx, 8
faddp st(1)
movsx eax, al
movzx ebx, bl
shl eax, 8
or ebx, eax
dec ecx
mov dword [esp + 0x34], ebx
fild dword [esp + 0x34]
fmul qword [0x5eb180]
faddp st(1)
jne 0x579c60
mov eax, dword [esp + 0x2c]
cmp eax, edx
jge 0x579d3a
sub edx, eax
lea ecx, [ecx]
xor eax, eax
mov ax, word [esi]
add esi, edi
mov ecx, eax
shr ecx, 8
movsx eax, al
movzx ecx, cl
shl eax, 8
or ecx, eax
dec edx
mov dword [esp + 0x34], ecx
fild dword [esp + 0x34]
fmul qword [0x5eb180]
faddp st(1)
jne 0x579d10
fidiv dword [esp + 0x24]
sub esp, 8
fstp qword [esp]
call fcn.004da330
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov word [ecx], ax
mov eax, dword [esp + 0x1c]
add ecx, edx
dec eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], eax
jne 0x579c30
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [ebp + 0x18]
xor ebx, ebx
cmp eax, ebx
jle 0x57a4d2
mov dword [esp + 0x34], eax
jmp 0x579d90
mov ecx, dword [ebp + 0x14]
fld qword [0x5d8c90]
movzx edx, word [ecx + 2]
xor eax, eax
cmp edx, 4
mov dword [esp + 0x24], edx
jl 0x579e8f
lea eax, [edx - 4]
shr eax, 2
inc eax
lea ecx, [eax*4]
mov byte [esp + 0x1c], bl
mov dword [esp + 0x2c], ecx
mov ecx, esi
mov bx, word [ecx]
mov cl, byte [ecx + 2]
mov byte [esp + 0x1d], cl
mov cx, bx
shr cx, 8
mov byte [esp + 0x1e], cl
mov cl, bl
mov byte [esp + 0x1f], cl
fild dword [esp + 0x1c]
add esi, edi
mov ecx, esi
fmul qword [0x5eb178]
mov word [esp + 0x10], bx
mov bx, word [ecx]
mov cl, byte [ecx + 2]
mov byte [esp + 0x1d], cl
mov cx, bx
shr cx, 8
mov byte [esp + 0x1e], cl
mov cl, bl
mov byte [esp + 0x1f], cl
add esi, edi
mov ecx, esi
mov word [esp + 0x10], bx
mov bx, word [ecx]
mov cl, byte [ecx + 2]
faddp st(1)
fild dword [esp + 0x1c]
mov byte [esp + 0x1d], cl
mov cx, bx
shr cx, 8
fmul qword [0x5eb178]
mov byte [esp + 0x1e], cl
mov cl, bl
mov byte [esp + 0x1f], cl
add esi, edi
mov ecx, esi
mov word [esp + 0x10], bx
mov bx, word [ecx]
mov cl, byte [ecx + 2]
faddp st(1)
fild dword [esp + 0x1c]
mov byte [esp + 0x1d], cl
mov cx, bx
shr cx, 8
fmul qword [0x5eb178]
mov byte [esp + 0x1e], cl
mov cl, bl
mov byte [esp + 0x1f], cl
faddp st(1)
fild dword [esp + 0x1c]
add esi, edi
dec eax
mov word [esp + 0x10], bx
fmul qword [0x5eb178]
faddp st(1)
jne 0x579dc2
mov eax, dword [esp + 0x2c]
xor ebx, ebx
cmp eax, edx
jge 0x579ed1
mov byte [esp + 0x1c], bl
sub edx, eax
lea esp, [esp]
mov eax, esi
mov cx, word [eax]
mov al, byte [eax + 2]
mov byte [esp + 0x1d], al
mov ax, cx
shr ax, 8
mov byte [esp + 0x1e], al
mov byte [esp + 0x1f], cl
fild dword [esp + 0x1c]
add esi, edi
dec edx
fmul qword [0x5eb178]
mov word [esp + 0x10], cx
faddp st(1)
jne 0x579ea0
fidiv dword [esp + 0x24]
sub esp, 8
lea edx, [esp + 0x1c]
fstp qword [esp]
push edx
call fcn.004da380
mov dx, word [eax]
mov ecx, dword [esp + 0x20]
mov word [ecx], dx
mov al, byte [eax + 2]
mov edx, dword [esp + 0x20]
mov byte [ecx + 2], al
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
add edx, ecx
dec eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x34], eax
jne 0x579d90
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [ebp + 0x18]
test eax, eax
jle 0x57a4d2
mov dword [esp + 0x34], eax
lea esp, [esp]
mov edx, dword [ebp + 0x14]
fld qword [0x5d8c90]
movzx edx, word [edx + 2]
xor ebx, ebx
cmp edx, 4
mov dword [esp + 0x24], edx
jl 0x57a006
lea ecx, [edx - 4]
shr ecx, 2
inc ecx
lea ebx, [ecx*4]
lea ebx, [ebx]
mov eax, dword [esi]
mov byte [esp + 0x13], al
mov byte [esp + 0x12], ah
mov dword [esp + 0x2c], eax
shr eax, 0x10
mov byte [esp + 0x11], al
mov byte [esp + 0x10], ah
fild dword [esp + 0x10]
mov eax, dword [esi + edi]
add esi, edi
fmul qword [0x5eb178]
mov byte [esp + 0x13], al
mov byte [esp + 0x12], ah
mov dword [esp + 0x2c], eax
shr eax, 0x10
mov byte [esp + 0x11], al
mov byte [esp + 0x10], ah
mov eax, dword [esi + edi]
faddp st(1)
fild dword [esp + 0x10]
add esi, edi
mov byte [esp + 0x13], al
mov byte [esp + 0x12], ah
fmul qword [0x5eb178]
mov dword [esp + 0x2c], eax
shr eax, 0x10
mov byte [esp + 0x11], al
mov byte [esp + 0x10], ah
mov eax, dword [esi + edi]
faddp st(1)
fild dword [esp + 0x10]
add esi, edi
mov byte [esp + 0x13], al
mov byte [esp + 0x12], ah
fmul qword [0x5eb178]
mov dword [esp + 0x2c], eax
shr eax, 0x10
mov byte [esp + 0x11], al
faddp st(1)
mov byte [esp + 0x10], ah
fild dword [esp + 0x10]
add esi, edi
dec ecx
fmul qword [0x5eb178]
faddp st(1)
jne 0x579f60
cmp ebx, edx
jge 0x57a03a
sub edx, ebx
mov ecx, edx
mov edi, edi
mov eax, dword [esi]
mov byte [esp + 0x13], al
mov byte [esp + 0x12], ah
mov dword [esp + 0x2c], eax
shr eax, 0x10
mov byte [esp + 0x11], al
mov byte [esp + 0x10], ah
fild dword [esp + 0x10]
add esi, edi
dec ecx
fmul qword [0x5eb178]
faddp st(1)
jne 0x57a010
fidiv dword [esp + 0x24]
sub esp, 8
fstp qword [esp]
call fcn.004da3e0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov dword [ecx], eax
mov eax, dword [esp + 0x34]
add ecx, edx
dec eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x34], eax
jne 0x579f30
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [ebp + 0x18]
test eax, eax
jle 0x57a4d2
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x14]
fld qword [0x5d8c90]
movzx ecx, word [eax + 2]
xor edx, edx
cmp ecx, 4
mov dword [esp + 0x24], ecx
jl 0x57a109
lea eax, [ecx - 4]
shr eax, 2
inc eax
lea edx, [eax*4]
jmp 0x57a0b0
movsx ebx, word [esi]
mov dword [esp + 0x2c], ebx
movsx ebx, word [esi + edi]
fild dword [esp + 0x2c]
add esi, edi
fmul qword [0x5eb180]
mov dword [esp + 0x2c], ebx
movsx ebx, word [esi + edi]
add esi, edi
faddp st(1)
add esi, edi
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
movsx ebx, word [esi]
fmul qword [0x5eb180]
add esi, edi
dec eax
faddp st(1)
fild dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
fmul qword [0x5eb180]
faddp st(1)
fild dword [esp + 0x2c]
fmul qword [0x5eb180]
faddp st(1)
jne 0x57a0b0
cmp edx, ecx
jge 0x57a128
sub ecx, edx
nop
movsx edx, word [esi]
mov dword [esp + 0x2c], edx
add esi, edi
dec ecx
fild dword [esp + 0x2c]
fmul qword [0x5eb180]
faddp st(1)
jne 0x57a110
fild dword [esp + 0x24]
sub esp, 8
fdivr st(1)
fstp qword [esp]
fstp st(0)
call fcn.004d9750
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov word [ecx], ax
mov eax, dword [esp + 0x34]
add ecx, edx
dec eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x34], eax
jne 0x57a082
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [ebp + 0x18]
test eax, eax
jle 0x57a4d2
mov dword [esp + 0x34], eax
jmp 0x57a180
mov ecx, dword [ebp + 0x14]
fld qword [0x5d8c90]
movzx ecx, word [ecx + 2]
xor eax, eax
cmp ecx, 4
mov dword [esp + 0x24], ecx
jl 0x57a283
lea eax, [ecx - 4]
shr eax, 2
inc eax
lea edx, [eax*4]
mov dword [esp + 0x2c], edx
mov edi, edi
mov edx, esi
mov bx, word [edx]
mov dl, byte [edx + 2]
mov byte [esp + 0x12], dl
xor edx, edx
mov dh, bl
mov word [esp + 0x10], bx
add esi, edi
mov word [esp + 0x1c], dx
mov dx, word [esp + 0x11]
mov word [esp + 0x1e], dx
fild dword [esp + 0x1c]
mov edx, esi
mov bx, word [edx]
mov dl, byte [edx + 2]
fmul qword [0x5eb178]
mov byte [esp + 0x12], dl
xor edx, edx
mov dh, bl
mov word [esp + 0x10], bx
add esi, edi
faddp st(1)
mov word [esp + 0x1c], dx
mov dx, word [esp + 0x11]
mov word [esp + 0x1e], dx
fild dword [esp + 0x1c]
mov edx, esi
mov bx, word [edx]
mov dl, byte [edx + 2]
fmul qword [0x5eb178]
mov byte [esp + 0x12], dl
xor edx, edx
mov dh, bl
mov word [esp + 0x10], bx
add esi, edi
faddp st(1)
mov word [esp + 0x1c], dx
mov dx, word [esp + 0x11]
mov word [esp + 0x1e], dx
fild dword [esp + 0x1c]
mov edx, esi
mov bx, word [edx]
mov dl, byte [edx + 2]
fmul qword [0x5eb178]
mov byte [esp + 0x12], dl
xor edx, edx
mov dh, bl
mov word [esp + 0x10], bx
faddp st(1)
add esi, edi
dec eax
mov word [esp + 0x1c], dx
mov dx, word [esp + 0x11]
mov word [esp + 0x1e], dx
fild dword [esp + 0x1c]
fmul qword [0x5eb178]
faddp st(1)
jne 0x57a1b0
mov eax, dword [esp + 0x2c]
cmp eax, ecx
jge 0x57a2c7
sub ecx, eax
lea esp, [esp]
mov eax, esi
mov dx, word [eax]
mov al, byte [eax + 2]
mov word [esp + 0x10], dx
xor edx, edx
mov dh, byte [esp + 0x10]
mov byte [esp + 0x12], al
mov ax, word [esp + 0x11]
mov word [esp + 0x1e], ax
add esi, edi
dec ecx
mov word [esp + 0x1c], dx
fild dword [esp + 0x1c]
fmul qword [0x5eb178]
faddp st(1)
jne 0x57a290
fidiv dword [esp + 0x24]
sub esp, 8
lea ecx, [esp + 0x20]
fstp qword [esp]
push ecx
call fcn.004d9830
mov ecx, dword [esp + 0x20]
mov bx, word [eax]
mov edx, ecx
mov word [edx], bx
mov al, byte [eax + 2]
mov byte [edx + 2], al
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
add ecx, edx
dec eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x34], eax
jne 0x57a180
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [ebp + 0x18]
test eax, eax
jle 0x57a4d2
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x34], eax
jmp 0x57a330
mov ecx, dword [ebp + 0x14]
fld qword [0x5d8c90]
movzx ecx, word [ecx + 2]
xor edx, edx
cmp ecx, 4
mov dword [esp + 0x24], ecx
jl 0x57a389
lea eax, [ecx - 4]
shr eax, 2
inc eax
lea edx, [eax*4]
fild dword [esi]
add esi, edi
fmul qword [0x5eb178]
faddp st(1)
fild dword [esi]
add esi, edi
fmul qword [0x5eb178]
faddp st(1)
fild dword [esi]
add esi, edi
fmul qword [0x5eb178]
faddp st(1)
fild dword [esi]
add esi, edi
dec eax
fmul qword [0x5eb178]
faddp st(1)
jne 0x57a356
cmp edx, ecx
jge 0x57a39f
sub ecx, edx
nop
fild dword [esi]
add esi, edi
dec ecx
fmul qword [0x5eb178]
faddp st(1)
jne 0x57a390
fild dword [esp + 0x24]
sub esp, 8
fdivr st(1)
fstp qword [esp]
fstp st(0)
call fcn.004d97b0
mov ecx, dword [esp + 0x28]
mov dword [ebx], eax
mov eax, dword [esp + 0x34]
add ebx, ecx
dec eax
mov dword [esp + 0x34], eax
jne 0x57a330
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [ebp + 0x18]
test eax, eax
jle 0x57a4d2
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x34], eax
jmp 0x57a3f0
mov eax, dword [ebp + 0x14]
fld qword [0x5d8c90]
movzx ecx, word [eax + 2]
xor edx, edx
cmp ecx, 4
mov dword [esp + 0x24], ecx
jl 0x57a429
lea eax, [ecx - 4]
shr eax, 2
inc eax
lea edx, [eax*4]
fadd dword [esi]
add esi, edi
fadd dword [esi]
add esi, edi
fadd dword [esi]
add esi, edi
fadd dword [esi]
add esi, edi
dec eax
jne 0x57a416
cmp edx, ecx
jge 0x57a437
sub ecx, edx
nop
fadd dword [esi]
add esi, edi
dec ecx
jne 0x57a430
fild dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
fdivr st(1)
fstp dword [ebx]
add ebx, ecx
dec eax
fstp st(0)
mov dword [esp + 0x34], eax
jne 0x57a3f0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [ebp + 0x18]
test eax, eax
jle 0x57a4d2
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x34], eax
lea esp, [esp]
mov ecx, dword [ebp + 0x14]
fld qword [0x5d8c90]
movzx ecx, word [ecx + 2]
xor edx, edx
cmp ecx, 4
mov dword [esp + 0x24], ecx
jl 0x57a4a9
lea eax, [ecx - 4]
shr eax, 2
inc eax
lea edx, [eax*4]
fadd qword [esi]
add esi, edi
fadd qword [esi]
add esi, edi
fadd qword [esi]
add esi, edi
fadd qword [esi]
add esi, edi
dec eax
jne 0x57a496
cmp edx, ecx
jge 0x57a4b7
sub ecx, edx
nop
fadd qword [esi]
add esi, edi
dec ecx
jne 0x57a4b0
fild dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x34]
fdivr st(1)
fstp qword [ebx]
add ebx, ecx
dec eax
fstp st(0)
mov dword [esp + 0x34], eax
jne 0x57a470
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
pop edi
pop esi
mov eax, 0x80004005
pop ebx
mov esp, ebp
pop ebp
ret 0x14