Function at 0x403222
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._deflateStateCheck
test eax, eax
jne 0x40323d
cmp dword [ebp + 0xc], 0
jne 0x403247
mov eax, 0xfffffffe
jmp 0x4034c0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 2
je 0x40327a
cmp dword [ebp - 0x18], 1
jne 0x403270
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 4]
cmp eax, 0x2a
jne 0x40327a
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x74]
test eax, eax
je 0x403284
mov eax, 0xfffffffe
jmp 0x4034c0
cmp dword [ebp - 0x18], 1
jne 0x4032ae
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x30]
mov edx, dword [ebp + 0x10]
mov dword [esp + 8], edx
mov edx, dword [ebp + 0xc]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._adler32
mov edx, eax
mov eax, dword [ebp + 8]
mov dword [eax + 0x30], edx
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x18], 0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x2c]
cmp eax, dword [ebp + 0x10]
ja 0x403349
cmp dword [ebp - 0x18], 0
jne 0x403330
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x44]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x4c]
add eax, 0x7fffffff
add eax, eax
add eax, edx
mov word [eax], 0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x4c]
add eax, 0x7fffffff
lea edx, [eax + eax]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x44]
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._memset
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x6c], 0
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x5c], 0
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x16b4], 0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x2c]
mov edx, dword [ebp + 0x10]
sub edx, eax
mov eax, edx
add dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x2c]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
mov dword [eax + 4], edx
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov dword [eax], edx
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
call sym._fill_window
jmp 0x403437
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x6c]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x74]
sub eax, 2
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x48]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x58]
mov ecx, eax
shl edx, cl
mov ecx, edx
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x38]
mov edx, dword [ebp - 0xc]
add edx, 2
add eax, edx
movzx eax, byte [eax]
movzx eax, al
xor ecx, eax
mov edx, ecx
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x54]
and edx, eax
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x48], edx
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x40]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x34]
and eax, dword [ebp - 0xc]
add eax, eax
add edx, eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x44]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x48]
add eax, eax
add eax, ecx
movzx eax, word [eax]
mov word [edx], ax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x44]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x48]
add eax, eax
add eax, edx
mov edx, dword [ebp - 0xc]
mov word [eax], dx
add dword [ebp - 0xc], 1
sub dword [ebp - 0x10], 1
cmp dword [ebp - 0x10], 0
jne 0x403390
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
mov dword [eax + 0x6c], edx
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x74], 2
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
call sym._fill_window
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x74]
cmp eax, 2
ja 0x40337b
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x6c]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x74]
add edx, eax
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x6c], edx
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x6c]
mov edx, eax
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x5c], edx
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x74]
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x16b4], edx
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x74], 0
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x78], 2
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x78]
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x60], edx
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x68], 0
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x20]
mov dword [eax], edx
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x1c]
mov dword [eax + 4], edx
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
mov dword [eax + 0x18], edx
mov eax, 0
leave
ret