Function at 0x436c33
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4c5797
call fcn.004c4f40
sub esp, 0xa4
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x34], 0x61c2
xor ebx, ebx
cmp dword [ebp - 0x34], 0x645e
jle 0x436cb8
mov esi, ebx
mov edi, ebx
mov dword [ebp - 0x1c], ebx
mov ecx, ebx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x14], 0x29b2
mov ebx, dword [ebp - 0x1c]
mov eax, edi
shl eax, cl
xor eax, esi
cdq
push edx
push eax
mov ecx, 0xad77b8
call fcn.0043487e
mov ecx, dword [ebp - 0x30]
add ecx, ebx
mov dword [ebp - 0x30], ecx
dec dword [ebp - 0x14]
jne 0x436c77
inc ebx
mov dword [ebp - 0x1c], ebx
cmp ebx, 0x481c
push 0
pop ebx
jl 0x436c68
inc edi
cmp edi, 0x13f4
jl 0x436c65
inc esi
cmp esi, 0x5e4b
jl 0x436c63
xor esi, esi
inc esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x28], 0x1bab5934
mov dword [ebp - 0x20], 0xfffffff9
mov dword [ebp - 0x18], 0x1b1b552b
mov dword [ebp - 0x30], 0x7582ba8d
mov dword [ebp - 0x1c], 0x5b627429
push 0xfffffffffffffffa
pop edi
mov dword [ebp - 0x88], edi
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x1c], ebx
jmp 0x436d09
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x48], 0xfffffff6
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x436cfb
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp ecx, eax
sbb eax, eax
neg eax
cmp eax, dword [ebp - 0x30]
je 0x436d22
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
neg eax
sbb eax, eax
neg eax
neg eax
cmp eax, 0xfd47030f
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, edx
setle cl
cmp ecx, dword [ebp - 0x28]
je 0x436d4f
cmp dword [ebp - 0x14], ebx
mov edx, ebx
je 0x436d51
mov edx, esi
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setg cl
imul ecx, dword [ebp - 0x20]
dec ecx
dec ecx
mov dword [ebp - 0x28], ecx
je 0x436d6d
cmp dword [ebp - 0x28], ebx
mov edx, esi
jne 0x436d6f
mov edx, ebx
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x48], eax
xor ecx, ecx
cmp eax, edx
setg cl
mov eax, 0x98737a30
cmp eax, ecx
sbb ecx, ecx
neg ecx
imul ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp ecx, eax
setne dl
sub edx, dword [ebp - 0x30]
neg edx
sbb edx, edx
inc edx
cmp edx, esi
jb 0x436e22
mov dword [ebp - 0x30], 0x685e
mov dword [ebp - 0x1c], 9
mov dword [ebp - 0x18], 0x16fefd52
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x1c], 0x903adfe1
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x1c], 0xffffffff
push esi
lea ecx, [ebp - 0x94]
call fcn.00434993
mov dword [ebp - 0x1c], ebx
jmp 0x436df1
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x94]
mov dword [eax + ecx*4], 0x15e3087c
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], esi
jl 0x436dde
cmp dword [ebp - 0x30], ebx
je 0x436e02
cmp dword [ebp - 0x20], ebx
mov eax, esi
jne 0x436e04
mov eax, ebx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
sub ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x48], ecx
lea ecx, [ebp - 0x94]
jmp 0x436f11
push 4
pop edi
push edi
lea ecx, [ebp - 0x78]
call fcn.00434993
push edi
lea ecx, [ebp - 0xa0]
call fcn.00434993
mov dword [ebp - 0x18], ebx
jmp 0x436e4c
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x78]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x436e3f
mov dword [ebp - 0x18], ebx
jmp 0x436e69
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xa0]
mov dword [eax + ecx*4], 0xfffffffd
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x436e56
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], 0x2e
je 0x436ef6
mov edi, dword [ebp - 0x78]
mov dword [ebp - 0x14], ebx
jmp 0x436e8d
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x6c], 0xfffa
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x436e7f
mov byte [ebp - 0x21], bl
cmp byte [ebp - 0x21], 0
je 0x436ead
push ebx
push 0x155e
push 0x945
call dword [0xada4b0]
cmp dword [ebp - 0x6c], 0xea955042
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x48]
add eax, ecx
xor ecx, ecx
cmp eax, dword [edi + 4]
setne cl
imul ecx, ecx, 0x3ef4
mov eax, dword [ebp - 0x6c]
xor edx, edx
cmp eax, ecx
setle dl
sub edx, dword [edi + 4]
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
cmp ecx, 9
setne al
mov dword [ebp - 0x48], eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x2e
jne 0x436e7a
mov eax, dword [ebp - 0x80]
xor ecx, ecx
cmp eax, esi
setg cl
mov dword [ebp - 0x28], ecx
lea ecx, [ebp - 0xa0]
call fcn.00434a65
lea ecx, [ebp - 0x78]
call fcn.00434a65
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x34], 0x5ea7
jge 0x436f31
mov edx, 0xabf904
mov ecx, 0xad77b8
call fcn.00436224
or dword [ebp - 4], 0xffffffff
jmp 0x436f5a
mov dword [ebp - 0x20], esi
push esi
lea ecx, [ebp - 0x60]
call fcn.00434993
mov dword [ebp - 0x34], 0xd7c3b7c3
mov dword [ebp - 0x30], 0x32d683a7
mov dword [ebp - 0x14], ebx
jmp 0x436f89
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x60]
mov dword [eax + ecx*4], 0x3fcb50bf
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x436f79
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x60]
mov dword [eax], ecx
mov dword [ebp - 0x20], ebx
jmp 0x4370fd
movdqa xmm0, xmmword [0xac9a00]
movdqu xmmword [ebp - 0xb0], xmm0
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
push dword [ebp - 0x40]
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0xb0]
push eax
push ebx
lea ecx, [ebp - 0x54]
call fcn.004366f5
mov dword [ebp - 0x18], 0xcbde6b78
mov dword [ebp - 0x14], ebx
jmp 0x436feb
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x2c], 0x42a1e948
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x436fdd
mov dword [ebp - 0x2c], ebx
jmp 0x4370b0
mov dword [ebp - 0x14], ebx
jmp 0x43700b
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x3c], 0x4c90d297
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x436ffd
mov dword [ebp - 0x38], ebx
jmp 0x43704d
mov dword [ebp - 0x28], 0xfffffffc
mov dword [ebp - 0x28], ebx
jmp 0x43702a
cmp dword [ebp - 0x28], ebx
jne 0x437030
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 3
jl 0x437022
mov byte [ebp - 0x21], bl
cmp byte [ebp - 0x21], 0
je 0x43704a
push ebx
push 0x1669
push 0x2681
call dword [0xada078]
dec dword [ebp - 0x38]
cmp dword [ebp - 0x38], 0xfffffff2
jne 0x437016
cmp dword [ebp - 0x2c], ebx
je 0x43706d
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], ebx
jne 0x437066
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x20], esi
mov ecx, esi
je 0x43706f
mov ecx, ebx
mov eax, dword [ebp - 0x54]
mov dword [eax], ecx
cmp ecx, esi
sbb ecx, ecx
inc ecx
mov eax, dword [ebp - 0x38]
xor edx, edx
cmp eax, ecx
setne dl
xor ecx, ecx
mov eax, dword [ebp - 0x60]
cmp dword [eax], edx
setle cl
cmp ecx, 0x782e
jle 0x437098
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x18], eax
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0xc
jne 0x436ff8
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], 3
jg 0x4370f2
mov edx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 0x54]
xor eax, eax
cmp dword [esi], eax
setg al
xor ecx, ecx
cmp dword [esi + edx*4], eax
setg cl
mov eax, dword [ebp - 0x60]
imul ecx, dword [eax]
sub ecx, dword [esi]
mov dword [esi + edi*4], ecx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jle 0x4370c3
xor esi, esi
inc esi
lea ecx, [ebp - 0x54]
call fcn.00434a65
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xffffffec
jg 0x436f9e
lea ecx, [ebp - 0x60]
call fcn.00434a65
mov edx, dword [ebp - 0x64]
mov dword [edx], ebx
cmp dword [edx], esi
jge 0x43712c
mov edi, dword [ebp - 0x40]
mov ecx, dword [edx]
mov eax, dword [edi]
mov dword [eax + ecx*4], 0x15e3087c
inc dword [edx]
cmp dword [edx], esi
jl 0x43711b
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret