Function at 0x10003230
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
mov eax, dword [0x10039080]
xor eax, esp
mov dword [esp + 0x38], eax
mov eax, edx
cmp byte [eax + 2], 1
lea edx, [eax + 2]
push ebx
push esi
movzx esi, word [eax]
mov ebx, ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x14], eax
movzx eax, word [eax + 4]
push edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
jne 0x1000327a
xor eax, 0x657b
movzx eax, ax
movzx edx, ax
movzx eax, ax
mov byte [ecx], 0
cmp eax, 0x13fb
ja 0x10003765
je 0x10003749
cmp eax, 0xc30
ja 0x1000365b
je 0x1000358e
cmp eax, 0x45d
je 0x10003516
cmp eax, 0xc1c
jne 0x100037ee
lea eax, [esi + 0x1004]
movzx esi, ax
mov eax, esi
push eax
mov dword [esp + 0x1c], eax
call fcn.1000d6c8
mov ecx, dword [esp + 0x10]
mov edi, eax
add esp, 4
mov word [edi], si
movzx esi, cx
lea ecx, [esi - 2]
push ecx
push dword [esp + 0x14]
lea ecx, [edi + 2]
push ecx
call fcn.1000ecb0
add esp, 0xc
lea eax, [esi + edi]
push 0x1000
push dword [0x1003aee8]
push eax
call fcn.1000ecb0
mov eax, dword [0x1003aef4]
lea esi, [edi + 0x7d0]
xor eax, dword [0x1003aeec]
lea ebx, [edi + 0x5d1]
mov dword [edi + 0xbb8], eax
add esp, 0xc
mov eax, dword [0x1003af00]
mov dl, byte [edi + 0x24]
movzx ecx, byte [edi + 0x2ba]
xor dl, byte [eax]
mov byte [edi + 0x1fc], dl
mov eax, dword [0x1003af00]
mov al, byte [eax + 1]
xor al, byte [edi + 0x28]
mov byte [edi + 0x25d], al
mov eax, dword [0x1003af00]
xor cl, byte [eax + 2]
xor cl, byte [0x1003aef4]
mov byte [edi + 0x259], cl
mov eax, dword [0x1003af00]
movzx ecx, byte [edi + 0x223]
mov al, byte [eax + 3]
xor al, dl
mov byte [edi + 0x1e5], al
mov eax, dword [0x1003af00]
xor cl, byte [eax + 4]
xor cl, byte [0x1003aef4]
mov byte [edi + 0x22e], cl
mov eax, dword [0x1003af00]
movzx ecx, byte [edi + 0x22f]
xor cl, byte [eax + 5]
mov byte [edi + 0x30d], cl
mov eax, dword [0x1003af08]
movzx ecx, byte [edi + 0x3dc]
xor cl, byte [eax]
xor cl, byte [0x1003aef4]
mov byte [edi + 0x1f4], cl
mov eax, dword [0x1003af08]
movzx ecx, byte [edi + 0x318]
xor cl, byte [eax + 1]
mov byte [edi + 0x364], cl
mov eax, dword [0x1003af08]
movzx ecx, byte [edi + 0x3e7]
mov al, byte [eax + 2]
xor al, byte [edi + 7]
mov byte [edi + 0x3d5], al
mov eax, dword [0x1003af08]
xor cl, byte [eax + 3]
lea eax, [edi + 0x4e2]
xor cl, byte [0x1003aef4]
xor edx, edx
mov dword [esp + 0x20], eax
lea eax, [edi + 0x320]
mov dword [esp + 0xc], eax
lea eax, [edi + 0x3e8]
mov byte [edi + 0x309], cl
mov dword [esp + 0x10], eax
nop
mov eax, dword [0x1003aef4]
lea esi, [esi + 0x20]
add eax, edx
lea ebx, [ebx + 0xc]
mov cl, byte [eax + edi + 0x9f6]
mov eax, dword [0x1003af04]
xor cl, byte [edx + eax]
mov eax, dword [esp + 0x10]
add dword [esp + 0x10], 8
mov byte [eax], cl
mov eax, dword [0x1003af04]
mov ecx, dword [esp + 0xc]
sub dword [esp + 0xc], 4
mov al, byte [edx + eax + 1]
xor al, byte [ecx]
xor al, byte [0x1003aeec]
mov ecx, dword [esp + 0x20]
add dword [esp + 0x20], 0x10
mov byte [ecx], al
mov eax, dword [0x1003af04]
movzx ecx, dl
mov al, byte [edx + eax + 2]
xor al, byte [ebx - 0xc]
mov byte [esi - 0x20], al
movzx eax, dl
imul ecx, eax
mov eax, dword [0x1003af04]
add cl, cl
sub cl, 0x1d
xor cl, byte [edx + eax + 3]
mov byte [edi + edx + 0xaef], cl
add edx, 4
cmp edx, 0x48
jl 0x10003420
mov al, byte [0x1003aef4]
mov edx, edi
mov ecx, dword [esp + 0x18]
xor al, 0xac
push dword [ebp + 0xc]
mov byte [edi + 0xbc7], al
mov al, byte [0x1003aedc]
mov byte [ecx + edi - 4], al
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.10002210
mov ecx, dword [esp + 0x24]
add esp, 8
mov byte [ecx], 1
push edi
test al, al
jne 0x100034f7
call fcn.1000d6d1
add esp, 4
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.1000d579
mov esp, ebp
pop ebp
ret
call fcn.1000d6d1
add esp, 4
call fcn.10003150
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.1000d579
mov esp, ebp
pop ebp
ret
call fcn.10003150
lea ecx, [esi + 2]
mov bl, al
movzx esi, cx
mov edi, esi
push edi
call fcn.1000d6c8
mov ecx, dword [esp + 0x10]
add esp, 4
movzx ecx, cx
sub ecx, 2
mov dword [esp + 0x18], eax
mov word [eax], si
push ecx
push dword [esp + 0x14]
lea ecx, [eax + 2]
push ecx
call fcn.1000ecb0
mov esi, dword [esp + 0x24]
add esp, 0xc
mov ecx, dword [esp + 0x14]
xor bl, 1
inc bl
mov edx, esi
push dword [ebp + 0xc]
mov byte [edi + esi - 2], bl
push edi
call fcn.10002210
mov ecx, dword [esp + 0x24]
push esi
mov byte [ecx], 1
call fcn.1000d6d1
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.1000d579
mov esp, ebp
pop ebp
ret
cmp byte [0x1003aee1], 0
jne 0x100035de
mov eax, dword [0x1003af08]
mov ecx, dword [0x1003aee4]
add eax, 2
push 2
push eax
call fcn.10008970
mov ecx, dword [0x1003aee4]
push 0x48
push dword [0x1003af04]
call fcn.10008970
mov ecx, dword [0x1003aee4]
push 2
push 0x1003aeee
call fcn.10008970
call fcn.10008a20
mov byte [0x1003aee1], 1
lea eax, [esi + 0x10]
movzx esi, ax
mov edi, esi
push edi
call fcn.1000d6c8
mov ecx, dword [esp + 0x10]
mov ebx, eax
add esp, 4
mov word [ebx], si
movzx esi, cx
lea ecx, [esi - 2]
push ecx
push dword [esp + 0x14]
lea ecx, [ebx + 2]
push ecx
call fcn.1000ecb0
mov eax, dword [0x1003aee4]
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, ebx
movups xmm0, xmmword [eax]
mov eax, dword [esp + 0x18]
push dword [ebp + 0xc]
movups xmmword [esi + ebx - 2], xmm0
push edi
mov ax, word [esi + eax - 2]
mov word [edi + ebx - 2], ax
call fcn.10002210
push ebx
call fcn.1000d6d1
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov byte [ecx], 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.1000d579
mov esp, ebp
pop ebp
ret
cmp eax, 0x13ec
jne 0x100037ee
lea eax, [esi + 0x1000]
movzx esi, ax
mov edi, esi
push edi
call fcn.1000d6c8
mov ecx, dword [esp + 0x10]
mov ebx, eax
add esp, 4
mov word [ebx], si
movzx esi, cx
lea ecx, [esi - 2]
push ecx
push dword [esp + 0x14]
lea ecx, [ebx + 2]
push ecx
call fcn.1000ecb0
add esp, 0xc
lea eax, [esi + ebx]
push 0x1000
push dword [0x1003aee8]
push eax
call fcn.1000ecb0
mov esi, dword [ebp + 0xc]
lea edx, [esp + 0x30]
mov ecx, dword [esp + 0x20]
mov eax, 0xa
mov word [esp + 0x30], ax
add esp, 0xc
mov eax, dword [0x1003aef0]
mov dword [esp + 0x2a], eax
mov eax, 0x12
mov word [esp + 0x30], ax
mov eax, dword [0x1003aedc]
push esi
push 0xa
mov dword [esp + 0x2e], 0x4dff00
mov dword [esp + 0x3a], 0x4eff00
mov dword [esp + 0x3e], 0x1500076
mov dword [esp + 0x42], 0x1befa4c
mov dword [esp + 0x46], eax
call fcn.10002210
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x38]
push esi
push 0x12
call fcn.10002210
mov ecx, dword [esp + 0x24]
mov edx, ebx
push esi
push edi
call fcn.10002210
push ebx
call fcn.1000d6d1
mov ecx, dword [esp + 0x38]
add esp, 0x1c
mov byte [ecx], 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.1000d579
mov esp, ebp
pop ebp
ret
mov dword [0x10039b28], 3
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.1000d579
mov esp, ebp
pop ebp
ret
cmp eax, 0x1769
ja 0x1000377c
je 0x10003786
cmp eax, 0x1444
je 0x100037ee
cmp eax, 0x1674
jmp 0x10003784
mov eax, 0x183f
cmp dx, ax
jne 0x100037ee
mov esi, dword [ebp + 0xc]
lea edx, [esp + 0x24]
mov eax, 0xa
mov dword [esp + 0x26], 0x4dff00
mov word [esp + 0x24], ax
mov ecx, ebx
mov eax, dword [0x1003aef0]
mov dword [esp + 0x2a], eax
mov eax, 0x12
mov word [esp + 0x30], ax
mov eax, dword [0x1003aedc]
push esi
push 0xa
mov dword [esp + 0x3a], 0x4eff00
mov dword [esp + 0x3e], 0x1500076
mov dword [esp + 0x42], 0x1befa4c
mov dword [esp + 0x46], eax
call fcn.10002210
push esi
push 0x12
lea edx, [esp + 0x40]
mov ecx, ebx
call fcn.10002210
add esp, 0x10
mov ecx, dword [esp + 0x44]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1000d579
mov esp, ebp
pop ebp
ret