Function at 0x10052de0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1fa4
call fcn.102244a0
mov ecx, dword [0x107ab964]
mov edx, dword [esp + 0x1fa8]
push ebx
push ebp
mov eax, dword [ecx]
push esi
push edi
push 0
push 0x8002
push edx
call dword [eax + 4]
mov ebx, eax
cmp ebx, 0xffffffff
mov dword [esp + 0x28], ebx
je 0x10053485
mov ecx, dword [0x107ab964]
push ebx
mov eax, dword [ecx]
call dword [eax + 0x20]
mov esi, eax
test esi, esi
jg 0x10052e42
mov ecx, dword [0x107ab964]
push ebx
mov edx, dword [ecx]
call dword [edx + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1fa4
ret
mov eax, dword [0x107ab964]
push 0xa
push 0x1000
push esi
push ebx
push eax
lea ecx, [esp + 0x40]
call fcn.100243a0
test eax, eax
jne 0x10052e77
mov ecx, dword [0x107ab964]
push ebx
mov edx, dword [ecx]
call dword [edx + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1fa4
ret
mov ecx, dword [0x107ab964]
lea eax, [esp + 0x2c]
push 1
push eax
push esi
push ebx
push ecx
lea ecx, [esp + 0x4d8]
call fcn.10001ab0
test eax, eax
jne 0x10052eb9
lea ecx, [esp + 0x2c]
call fcn.10024430
mov ecx, dword [0x107ab964]
push ebx
mov edx, dword [ecx]
call dword [edx + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1fa4
ret
lea ecx, [esp + 0x4c4]
call fcn.10003930
cmp eax, 1
mov dword [esp + 0x20], eax
jl 0x10053464
cmp eax, 5
jg 0x10053464
xor edi, edi
xor ebp, ebp
test eax, eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], ebp
jle 0x10052fff
test edi, edi
je 0x10052eff
test ebp, ebp
jne 0x10052fff
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x44]
push eax
push ecx
lea ecx, [esp + 0x4cc]
call fcn.10003980
test eax, eax
je 0x1005313c
mov byte [esp + 0x65], 0
lea esi, [esp + 0x48]
mov eax, 0x10265c40
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x10052f4f
test cl, cl
je 0x10052f4b
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x10052f4f
add eax, 2
add esi, 2
test cl, cl
jne 0x10052f2b
xor eax, eax
jmp 0x10052f54
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10052fe2
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x4c4]
push eax
call fcn.10003a20
mov ebp, eax
cmp ebp, 8
jle 0x1005316d
cmp ebp, 0x19
jge 0x1005316a
xor esi, esi
test ebp, ebp
jle 0x10052fe2
mov edx, dword [esp + 0x18]
mov ecx, 0x15
xor eax, eax
lea edi, [esp + 0x70]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x70]
push ecx
push esi
push edx
lea ecx, [esp + 0x4d0]
call fcn.10003a90
test eax, eax
je 0x10053464
mov eax, dword [esp + 0x70]
cmp eax, 0x2af8
je 0x10052fcc
cmp eax, 0x2328
je 0x10052fcc
inc esi
cmp esi, ebp
jl 0x10052f87
jmp 0x10052fe2
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jl 0x10052ef3
lea ecx, [esp + 0x4c4]
call fcn.10001b10
lea ecx, [esp + 0x2c]
call fcn.10024430
cmp ebp, 0x10
jbe 0x10053188
cmp edi, 0x10
jbe 0x10053188
push 0
push 0
push 0
push 0
push edi
call sub.platform.dll_Ordinal_24
mov esi, eax
add esp, 0x14
test esi, esi
je 0x10053479
mov ecx, dword [0x107ab964]
push ebp
push ebx
push ecx
call fcn.1000fe50
mov ecx, dword [0x107ab964]
add esp, 0xc
mov ebp, eax
mov edx, dword [ecx]
push 0
push ebp
push ebx
call dword [edx + 8]
mov ecx, dword [0x107ab964]
cmp eax, ebp
jne 0x10053120
mov edx, dword [ecx]
push edi
push esi
push ebx
call dword [edx + 0xc]
cmp eax, edi
jne 0x1005311a
cmp dword [esi], 0x44500025
jne 0x1005308f
cmp byte [esi + 4], 0x46
je 0x100530f8
cmp word [esi], 0x384d
jne 0x1005309c
cmp byte [esi + 2], 0x5a
je 0x100530f8
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + edi - 4]
mov edx, dword [esi + edi - 8]
mov ebp, edi
shr ebp, 2
add eax, 0xfffffffc
sub ebp, 2
xor edi, edi
mov dword [esp + 0x20], edx
test eax, eax
jbe 0x100530f4
lea ebx, [ecx + ebp]
mov eax, dword [edi + esi]
mov ecx, ebx
and ecx, 0xff
push ecx
push eax
call fcn.100185b0
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
xor eax, ecx
add esp, 8
sub eax, ebp
mov dword [edi + esi], eax
add edi, 4
dec ebp
lea eax, [edx - 4]
dec ebx
cmp edi, eax
jb 0x100530c0
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x10]
push 0
push 0
shl edi, 2
push 0
push 0
push edi
mov dword [esp + 0x30], edi
call sub.platform.dll_Ordinal_24
mov ebp, eax
add esp, 0x14
test ebp, ebp
jne 0x100531c4
mov ecx, dword [0x107ab964]
mov eax, dword [ecx]
push ebx
call dword [eax + 0x18]
push esi
call sub.platform.dll_Ordinal_27
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1fa4
ret
lea ecx, [esp + 0x4c4]
call fcn.10001b10
lea ecx, [esp + 0x2c]
call fcn.10024430
mov ecx, dword [0x107ab964]
push ebx
mov edx, dword [ecx]
call dword [edx + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1fa4
ret
cmp ebp, 8
jne 0x10053485
lea ecx, [esp + 0x4c4]
call fcn.10001b10
lea ecx, [esp + 0x2c]
call fcn.10024430
mov ecx, dword [0x107ab964]
push ebx
mov edx, dword [ecx]
call dword [edx + 0x18]
mov eax, dword [esp + 0x1fbc]
mov ecx, dword [esp + 0x1fb8]
mov edx, dword [0x107ab964]
push eax
push ecx
push edx
call fcn.1002bac0
add esp, 0xc
neg eax
pop edi
pop esi
sbb eax, eax
pop ebp
neg eax
pop ebx
add esp, 0x1fa4
ret
mov ecx, dword [esp + 0x1c]
xor eax, eax
mov edx, ecx
mov edi, ebp
shr ecx, 2
mov dword [esp + 0x24], 0
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x10]
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x20]
push 7
push ecx
push ebp
push edi
push esi
push 0x10227334
call fcn.10011a90
add esp, 0x1c
test eax, eax
jne 0x10053214
mov eax, dword [esp + 0x24]
cmp eax, 3
je 0x10053214
cmp eax, 2
jne 0x1005321c
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x10053244
mov ecx, dword [0x107ab964]
push ebx
mov edx, dword [ecx]
call dword [edx + 0x18]
push esi
call sub.platform.dll_Ordinal_27
push ebp
call sub.platform.dll_Ordinal_27
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1fa4
ret
cmp dword [ebp], 0x46445025
jne 0x10053257
mov dword [esp + 0x14], 1
jmp 0x1005326b
cmp word [ebp], 0x5a4d
jne 0x10053412
mov dword [esp + 0x14], 2
push esi
call sub.platform.dll_Ordinal_27
mov ecx, dword [0x107ab964]
add esp, 4
mov eax, dword [ecx]
push 0
push 0
push ebx
call dword [eax + 8]
test eax, eax
je 0x100532aa
push ebp
call sub.platform.dll_Ordinal_27
mov ecx, dword [0x107ab964]
add esp, 4
mov edx, dword [ecx]
push ebx
call dword [edx + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1fa4
ret
mov ecx, dword [0x107ab964]
mov edx, dword [esp + 0x1c]
push edx
push ebp
mov eax, dword [ecx]
push ebx
call dword [eax + 0x14]
cmp eax, 0xffffffff
jne 0x100532cf
push ebp
call sub.platform.dll_Ordinal_27
add esp, 4
jmp 0x10053479
mov ecx, dword [0x107ab964]
mov eax, dword [esp + 0x1c]
push eax
push ebx
mov edx, dword [ecx]
call dword [edx + 0x28]
push ebp
call sub.platform.dll_Ordinal_27
mov ecx, dword [0x107ab964]
add esp, 4
mov edx, dword [ecx]
push ebx
call dword [edx + 0x18]
mov ebx, dword [esp + 0x1fb8]
or ecx, 0xffffffff
mov edi, ebx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0xc4]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xc4]
push ecx
push ebx
call sub.platform.dll_Ordinal_13
add esp, 8
test eax, eax
jne 0x1005335b
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0xc4]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [sym.imp.MSVCRT.dll_strrchr]
lea ecx, [esp + 0xc4]
push 0x5c
push ecx
call esi
add esp, 8
test eax, eax
je 0x10053485
push 0x10232580
push eax
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
je 0x100533a5
lea edx, [esp + 0xc4]
push 0x2e
push edx
call esi
add esp, 8
test eax, eax
je 0x10053485
mov byte [eax], 0
mov eax, dword [esp + 0x14]
dec eax
je 0x100533bd
dec eax
jne 0x100533ee
lea edx, [esp + 0xc4]
mov edi, 0x102325e4
jmp 0x100533c9
lea edx, [esp + 0xc4]
mov edi, str..pdf
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x107ab964]
lea edx, [esp + 0xc4]
push edx
push ebx
mov eax, dword [ecx]
call dword [eax + 0x4c]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x1fa4
ret
mov ecx, dword [0x107ab964]
push ebx
mov eax, dword [ecx]
call dword [eax + 0x18]
push esi
call sub.platform.dll_Ordinal_27
push ebp
call sub.platform.dll_Ordinal_27
add esp, 8
cmp edi, 0x100
jae 0x10053485
mov ecx, dword [esp + 0x1fbc]
mov edx, dword [esp + 0x1fb8]
mov eax, dword [0x107ab964]
push ecx
push edx
push eax
call fcn.1002bac0
add esp, 0xc
neg eax
pop edi
pop esi
sbb eax, eax
pop ebp
neg eax
pop ebx
add esp, 0x1fa4
ret
lea ecx, [esp + 0x4c4]
call fcn.10001b10
lea ecx, [esp + 0x2c]
call fcn.10024430
mov ecx, dword [0x107ab964]
push ebx
mov eax, dword [ecx]
call dword [eax + 0x18]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1fa4
ret