Function at 0x403a61
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4b9221
call fcn.004b8e18
sub esp, 0x4c
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x1c], 0x773672d7
mov dword [ebp - 0x18], 6
mov dword [ebp - 0x24], 0xfffffff9
xor ebx, ebx
mov dword [ebp - 0x18], ebx
push 2
pop edi
jmp 0x403aa7
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x38], 0xe29ea414
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x403a99
mov dword [ebp - 0x18], ebx
jmp 0x403abf
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x58], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x403ab1
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
xor esi, esi
inc esi
mov dword [ebp - 0x18], esi
cmp dword [ebp - 0x18], ebx
je 0x403b9c
mov dword [ebp - 0x28], 0x63c1
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], bl
je 0x403b19
push 0x806
push 0x25fb
push 0x638
push 0x265f
push ebx
call dword [fcn.00aa0528]
mov dword [ebp - 0x18], esi
cmp dword [ebp - 0x18], ebx
jl 0x403bb6
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], 0x61302d9c
mov dword [ebp - 0x1c], ebx
jmp 0x403b8d
mov ecx, dword [ebp - 0x20]
neg ecx
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x20]
imul eax, dword [ebp - 0x28]
imul eax, dword [ebp - 0x18]
imul eax, eax, 0xfffffffd
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
sub eax, 0xe49ce570
neg eax
sbb eax, eax
inc eax
cmp eax, 0xd0e101ea
sbb eax, eax
neg eax
sub eax, dword [ebp - 0x20]
cmp ecx, eax
jle 0x403b6e
mov eax, dword [ebp - 0x34]
cmp dword [ebp - 0x28], ebx
jg 0x403b7a
cmp dword [ebp - 0x20], ebx
mov ecx, ebx
je 0x403b7c
mov ecx, esi
xor eax, eax
cmp ecx, 0x3fca5eb
setne al
mov dword [ebp - 0x24], eax
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jle 0x403b34
mov dword [ebp - 0x24], edi
dec dword [ebp - 0x18]
jns 0x403b25
jmp 0x403bb6
mov byte [ebp - 0x11], bl
cmp byte [ebp - 0x11], bl
je 0x403bb6
push 0xdd
push ebx
push ebx
push 0x26a4
call dword [fcn.00aa005c]
mov eax, 0x5bb2c213
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x20], 0x2d0
cmp dword [ebp - 0x20], 0x350
jle 0x403c3c
mov edi, ebx
mov dword [ebp - 0x24], ebx
mov eax, ebx
mov dword [ebp - 0x28], ebx
mov esi, ebx
xor eax, edi
mov dword [ebp - 0x1c], eax
mov edi, ebx
mov ebx, dword [ebp - 0x1c]
mov eax, edi
xor eax, esi
or eax, ebx
cdq
push edx
push eax
mov ecx, 0xa9cbd8
call fcn.0040a6a5
inc edi
cmp edi, 0x378d
jl 0x403bed
inc esi
cmp esi, 0x35d0
push 0
pop ebx
jl 0x403be8
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, 0x4e7
mov edi, dword [ebp - 0x24]
jl 0x403be1
inc edi
mov dword [ebp - 0x24], edi
cmp edi, 0xf60
jl 0x403bdc
push ebx
call dword [0xaa0380]
xor esi, esi
inc esi
mov dword [ebp - 0x1c], 0x9351f200
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x20], 0x226
jge 0x403c5e
mov edx, 0xa7a8d0
mov ecx, 0xa9cbd8
call fcn.0040cf2b
or dword [ebp - 4], 0xffffffff
jmp 0x403c87
mov dword [ebp - 0x28], 0xffffffff
push 3
pop edi
mov dword [ebp - 0x1c], edi
cmp dword [ebp - 0x1c], ebx
jl 0x403d16
mov dword [ebp - 0x18], 0xf7a73d2d
mov dword [ebp - 0x28], 0xad8ea5f
mov dword [ebp - 0x18], ebx
jmp 0x403cbd
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp + eax*4 - 0x48]
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x48], ecx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jle 0x403cac
mov dword [ebp - 0x18], edi
cmp dword [ebp - 0x18], ebx
jl 0x403d11
mov dword [ebp - 0x28], 9
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp + eax*4 - 0x48]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + eax*4 - 0x48]
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp ecx, eax
setg dl
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x18]
cmp dword [ebp + eax*4 - 0x48], ebx
je 0x403d07
mov eax, dword [ebp - 0x18]
cmp dword [ebp + eax*4 - 0x48], 0x94e8
mov eax, esi
jg 0x403d09
mov eax, ebx
mov dword [ebp - 0x28], eax
dec dword [ebp - 0x18]
jns 0x403cca
dec dword [ebp - 0x1c]
jns 0x403c99
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x30]
mov dword [ecx], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret