Function at 0x753f2c
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x801c64
call fcn.007a83c4
sub esp, 0x818
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
mov esi, ecx
mov ecx, edi
and ecx, 0x80000000
jne 0x75400b
cmp dword [ebp + 0xc], 0x91
jne 0x75400b
call dword [0x884ea4]
mov ecx, dword [esi + 0x9c]
xor ebx, ebx
cmp ecx, ebx
je 0x753f93
mov edx, eax
sub edx, ecx
cmp edx, 0x3e8
jge 0x753f93
cmp dword [0x88285c], ebx
je 0x753f93
inc dword [esi + 0xa0]
lea ecx, [esi + 0xa0]
jmp 0x753f9f
lea ecx, [esi + 0xa0]
mov dword [ecx], 1
mov ecx, dword [ecx]
cmp ecx, 4
mov dword [esi + 0x9c], eax
jge 0x753fbf
mov eax, dword [0x8829c8]
push dword [eax + 4]
call fcn.005e99c6
pop ecx
jmp 0x754357
jne 0x754357
cmp dword [0x88285c], ebx
je 0x754357
push 0xa1e
lea eax, [ebp + 0xc]
push eax
mov ecx, 0x885138
call fcn.00614231
mov eax, dword [eax]
mov ecx, dword [0x88285c]
push ebx
push 0xffffffffffffffff
push 0xa
push eax
mov dword [ebp - 4], ebx
call fcn.006a9a60
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call fcn.00414549
jmp 0x754357
xor ebx, ebx
cmp ecx, ebx
mov eax, 0x100
jne 0x75431b
test eax, edi
je 0x754046
cmp dword [ebp + 0xc], 0x7b
jne 0x754046
cmp dword [0x885468], ebx
jne 0x754036
push 0x80004003
call fcn.007a760b
mov ecx, dword [0x885468]
call fcn.007553f9
jmp 0x754357
cmp ecx, ebx
jne 0x75431b
test eax, edi
je 0x75418c
cmp dword [ebp + 0xc], 0x73
jne 0x75418c
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 [0x877164]
mov cl, byte [eax]
cmp cl, bl
je 0x7540c6
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 0x7540b8
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 [0x884e48]
mov eax, dword [0x877168]
mov cl, byte [eax]
cmp cl, bl
je 0x754107
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 0x7540f9
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 [0x884e58]
test eax, eax
jne 0x75417e
cmp dword [ebp - 0x18], 1
jne 0x75417e
mov eax, dword [ebp + 0xc]
cmp byte [ebp + eax - 0x725], bl
jne 0x75417e
mov eax, dword [0x877160]
mov cl, byte [eax]
cmp cl, bl
je 0x75415e
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 0x754150
lea eax, [ebp - 0x624]
push eax
lea eax, [ebp - 0x724]
push eax
call fcn.007aa30a
test eax, eax
pop ecx
pop ecx
jne 0x75417e
push ebx
call dword [0x884cb4]
push dword [ebp + 0x10]
call dword [0x884e4c]
jmp 0x754357
cmp ecx, ebx
jne 0x75431b
test eax, edi
je 0x75431b
cmp dword [ebp + 0xc], 0xd
jne 0x75431b
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 [0x877164]
mov cl, byte [eax]
cmp cl, bl
je 0x75420c
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 0x7541fe
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 [0x884e48]
mov eax, dword [0x877168]
mov cl, byte [eax]
cmp cl, bl
je 0x75424d
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 0x75423f
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 [0x884e58]
test eax, eax
jne 0x754313
cmp dword [ebp - 0x1c], 1
jne 0x754313
mov eax, dword [ebp - 0x10]
cmp byte [ebp + eax - 0x825], bl
jne 0x754313
mov eax, dword [0x877160]
mov cl, byte [eax]
cmp cl, bl
je 0x7542b0
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 0x7542a2
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x824]
push eax
call fcn.007aa30a
test eax, eax
pop ecx
pop ecx
jne 0x754313
cmp dword [0x885468], ebx
jne 0x7542ea
mov esi, 0x80004003
push esi
call fcn.007a760b
cmp dword [0x885468], ebx
jne 0x7542ea
push esi
call fcn.007a760b
mov ecx, dword [0x885468]
mov esi, ecx
call fcn.004fdf7d
mov ecx, dword [esi]
neg eax
sbb eax, eax
inc eax
push eax
push esi
call dword [ecx + 0x44]
cmp eax, ebx
jge 0x754313
push 0x870bd0
push esi
push eax
call fcn.007a7619
push dword [ebp - 0x14]
jmp 0x754181
cmp dword [esi + 0x80], ebx
jne 0x754336
mov eax, esi
neg eax
lea ecx, [esi + 4]
sbb eax, eax
and eax, ecx
push eax
mov ecx, esi
call fcn.0075324d
mov ecx, dword [esi + 0x80]
cmp ecx, ebx
je 0x754357
mov eax, dword [ecx]
call dword [eax + 0x20]
test eax, eax
je 0x754357
mov ecx, dword [esi + 0x80]
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