Function at 0x5d0cbe
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x631574
call fcn.005fcaec
sub esp, 0x818
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
mov esi, ecx
mov ecx, edi
and ecx, 0x80000000
jne 0x5d0d9d
cmp dword [ebp + 0xc], 0x91
jne 0x5d0d9d
call dword [fcn.006802e8]
mov ecx, dword [esi + 0x94]
xor ebx, ebx
cmp ecx, ebx
je 0x5d0d25
mov edx, eax
sub edx, ecx
cmp edx, 0x3e8
jge 0x5d0d25
cmp dword [0x67f93c], ebx
je 0x5d0d25
inc dword [esi + 0x98]
lea ecx, [esi + 0x98]
jmp 0x5d0d31
lea ecx, [esi + 0x98]
mov dword [ecx], 1
mov ecx, dword [ecx]
cmp ecx, 4
mov dword [esi + 0x94], eax
jge 0x5d0d51
mov eax, dword [0x67f220]
push dword [eax + 4]
call fcn.0050126b
pop ecx
jmp 0x5d10e0
jne 0x5d10e0
cmp dword [0x67f93c], ebx
je 0x5d10e0
push 0x851
lea eax, [ebp + 0xc]
push eax
mov ecx, 0x6805c0
call fcn.00519a9f
mov eax, dword [eax]
mov ecx, dword [0x67f93c]
push ebx
push 0xffffffffffffffff
push 8
push eax
mov dword [ebp - 4], ebx
call fcn.0056bb8f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call fcn.0040ead9
jmp 0x5d10e0
xor ebx, ebx
cmp ecx, ebx
mov eax, 0x100
jne 0x5d10ad
test eax, edi
je 0x5d0dd8
cmp dword [ebp + 0xc], 0x7b
jne 0x5d0dd8
cmp dword [0x680790], ebx
jne 0x5d0dc8
push 0x80004003
call fcn.005fc540
mov ecx, dword [0x680790]
call fcn.005d20d7
jmp 0x5d10e0
cmp ecx, ebx
jne 0x5d10ad
test eax, edi
je 0x5d0f1e
cmp dword [ebp + 0xc], 0x73
jne 0x5d0f1e
mov dword [ebp + 0xc], eax
xor eax, eax
push 0x3f
pop ecx
mov byte [ebp - 0x124], bl
lea edi, [ebp - 0x123]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
push 0x3f
mov byte [ebp - 0x324], bl
pop ecx
lea edi, [ebp - 0x323]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [ebp - 0x624], bl
push 0x3f
pop ecx
lea edi, [ebp - 0x623]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [0x676550]
mov cl, byte [eax]
cmp cl, bl
je 0x5d0e58
lea esi, [ebp - 0x124]
sub esi, eax
xor cl, 0xaa
mov byte [esi + eax], cl
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x5d0e4a
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp + 0x10]
push eax
push ebx
push 0xf
push ebx
push ebx
push ebx
lea eax, [ebp - 0x124]
push eax
push 0x80000002
call dword [fcn.00680280]
mov eax, dword [0x676554]
mov cl, byte [eax]
cmp cl, bl
je 0x5d0e99
lea esi, [ebp - 0x324]
sub esi, eax
xor cl, 0xaa
mov byte [esi + eax], cl
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x5d0e8b
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x724]
push eax
lea eax, [ebp - 0x18]
push eax
push ebx
lea eax, [ebp - 0x324]
push eax
push dword [ebp + 0x10]
call dword [0x680290]
test eax, eax
jne 0x5d0f10
cmp dword [ebp - 0x18], 1
jne 0x5d0f10
mov eax, dword [ebp + 0xc]
cmp byte [ebp + eax - 0x725], bl
jne 0x5d0f10
mov eax, dword [0x67654c]
mov cl, byte [eax]
cmp cl, bl
je 0x5d0ef0
lea esi, [ebp - 0x624]
sub esi, eax
xor cl, 0xaa
mov byte [esi + eax], cl
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x5d0ee2
lea eax, [ebp - 0x624]
push eax
lea eax, [ebp - 0x724]
push eax
call fcn.005fe320
test eax, eax
pop ecx
pop ecx
jne 0x5d0f10
push ebx
call dword [fcn.006800ec]
push dword [ebp + 0x10]
call dword [0x680284]
jmp 0x5d10e0
cmp ecx, ebx
jne 0x5d10ad
test eax, edi
je 0x5d10ad
cmp dword [ebp + 0xc], 0xd
jne 0x5d10ad
mov dword [ebp - 0x10], eax
xor eax, eax
push 0x3f
pop ecx
mov byte [ebp - 0x524], bl
lea edi, [ebp - 0x523]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
push 0x3f
mov byte [ebp - 0x224], bl
pop ecx
lea edi, [ebp - 0x223]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [ebp - 0x424], bl
push 0x3f
pop ecx
lea edi, [ebp - 0x423]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [0x676550]
mov cl, byte [eax]
cmp cl, bl
je 0x5d0f9e
lea esi, [ebp - 0x524]
sub esi, eax
xor cl, 0xaa
mov byte [esi + eax], cl
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x5d0f90
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x14]
push eax
push ebx
push 0xf
push ebx
push ebx
push ebx
lea eax, [ebp - 0x524]
push eax
push 0x80000002
call dword [fcn.00680280]
mov eax, dword [0x676554]
mov cl, byte [eax]
cmp cl, bl
je 0x5d0fdf
lea esi, [ebp - 0x224]
sub esi, eax
xor cl, 0xaa
mov byte [esi + eax], cl
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x5d0fd1
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x824]
push eax
lea eax, [ebp - 0x1c]
push eax
push ebx
lea eax, [ebp - 0x224]
push eax
push dword [ebp - 0x14]
call dword [0x680290]
test eax, eax
jne 0x5d10a5
cmp dword [ebp - 0x1c], 1
jne 0x5d10a5
mov eax, dword [ebp - 0x10]
cmp byte [ebp + eax - 0x825], bl
jne 0x5d10a5
mov eax, dword [0x67654c]
mov cl, byte [eax]
cmp cl, bl
je 0x5d1042
lea esi, [ebp - 0x424]
sub esi, eax
xor cl, 0xaa
mov byte [esi + eax], cl
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x5d1034
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x824]
push eax
call fcn.005fe320
test eax, eax
pop ecx
pop ecx
jne 0x5d10a5
cmp dword [0x680790], ebx
jne 0x5d107c
mov esi, 0x80004003
push esi
call fcn.005fc540
cmp dword [0x680790], ebx
jne 0x5d107c
push esi
call fcn.005fc540
mov ecx, dword [0x680790]
mov esi, ecx
call fcn.00485880
mov ecx, dword [esi]
neg eax
sbb eax, eax
inc eax
push eax
push esi
call dword [ecx + 0x44]
cmp eax, ebx
jge 0x5d10a5
push 0x671818
push esi
push eax
call fcn.005fc54e
push dword [ebp - 0x14]
jmp 0x5d0f13
cmp dword [esi + 0x78], ebx
jne 0x5d10c5
mov eax, esi
neg eax
lea ecx, [esi + 4]
sbb eax, eax
and eax, ecx
push eax
mov ecx, esi
call fcn.005d00e5
mov ecx, dword [esi + 0x78]
cmp ecx, ebx
je 0x5d10e0
mov eax, dword [ecx]
call dword [eax + 0x20]
test eax, eax
je 0x5d10e0
mov ecx, dword [esi + 0x78]
mov eax, dword [ecx]
push edi
push dword [ebp + 0xc]
call dword [eax]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor eax, eax
pop ebx
mov dword fs:[0], ecx
leave
ret 0xc