Function at 0x4526e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x430
mov eax, dword [ecx + 4]
test eax, eax
push esi
push edi
mov dword [esp + 0x2c], ecx
jne 0x452712
push 0x530474
push 0
lea eax, [esp + 0x14]
mov dword [esp + 0x18], 0x2b5
push eax
jmp 0x4529f9
push 0
push 0
push 0
call fcn.00419aa0
mov esi, dword [ebp + 8]
add esp, 0xc
push 1
push 0
push 0
push esi
mov dword [esp + 0x24], eax
call dword [sym.imp.kernel32.dll_SetFilePointer]
cmp eax, 0xffffffff
mov dword [esp + 0xc], eax
jne 0x45275c
call dword [sym.imp.kernel32.dll_GetLastError]
push 0x530474
push 0
lea ecx, [esp + 0x14]
mov dword [esp + 0x18], 0x2c6
push ecx
jmp 0x4529f9
push 0
push 4
lea edx, [esp + 0x28]
push edx
push esi
call fcn.00419b60
add esp, 0x10
test al, al
jne 0x452791
call dword [sym.imp.kernel32.dll_GetLastError]
push 0x530474
push 0
lea eax, [esp + 0x14]
mov dword [esp + 0x18], 0x2d4
push eax
jmp 0x4529f9
cmp dword [esp + 0x20], 0x52415653
je 0x4527b4
push 0x530474
push 0
lea ecx, [esp + 0x14]
mov dword [esp + 0x18], 0x2dd
push ecx
jmp 0x4529f9
push 0
push 4
lea edx, [esp + 0x24]
push edx
push esi
call fcn.00419b60
add esp, 0x10
test al, al
jne 0x4527e9
call dword [sym.imp.kernel32.dll_GetLastError]
push 0x530474
push 0
lea eax, [esp + 0x14]
mov dword [esp + 0x18], 0x2e8
push eax
jmp 0x4529f9
mov edx, dword [esp + 0x1c]
cmp edx, 0x10000000
jb 0x45280e
push 0x530474
push 0
lea ecx, [esp + 0x14]
mov dword [esp + 0x18], 0x2f1
push ecx
jmp 0x4529f9
xor eax, eax
mov ecx, 0x100
lea edi, [esp + 0x31]
mov byte [esp + 0x30], 0
rep stosd dword es:[edi], eax
xor edi, edi
test edx, edx
jbe 0x4528d7
lea ebx, [ebx]
lea edx, [esp + 0x14]
push edx
push 4
lea eax, [esp + 0x20]
push eax
push esi
call fcn.00419b60
add esp, 0x10
test al, al
je 0x452928
mov eax, dword [esp + 0x18]
cmp eax, 0x400
ja 0x45293b
lea ecx, [esp + 0x14]
push ecx
push eax
lea edx, [esp + 0x38]
push edx
push esi
call fcn.00419b60
add esp, 0x10
test al, al
je 0x452954
mov ecx, dword [esp + 0x18]
xor eax, eax
test ecx, ecx
mov byte [esp + ecx + 0x30], 0
jbe 0x452891
xor byte [esp + eax + 0x30], 0x65
inc eax
cmp eax, ecx
jb 0x452887
lea eax, [esp + 0x14]
push eax
push 4
lea ecx, [esp + 0x2c]
push ecx
push esi
call fcn.00419b60
add esp, 0x10
test al, al
je 0x452973
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x30]
push edx
call fcn.00452690
test eax, eax
je 0x452983
mov ecx, dword [esp + 0x24]
mov dword [eax], ecx
mov eax, dword [esp + 0x1c]
inc edi
cmp edi, eax
jb 0x452830
lea ecx, [esp + 0x14]
push ecx
push 2
lea edx, [esp + 0x30]
push edx
push esi
call fcn.00419b60
add esp, 0x10
test al, al
jne 0x452990
call dword [sym.imp.kernel32.dll_GetLastError]
mov dword [esp + 0x10], 0x345
push 0x530474
lea eax, [esp + 0x10]
push 0
push eax
mov dword [esp + 0x18], 0x539060
call fcn.0041ce50
add esp, 0xc
xor al, al
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
call dword [sym.imp.kernel32.dll_GetLastError]
mov dword [esp + 0x10], 0x307
jmp 0x4529ed
push 0x530474
push 0
lea eax, [esp + 0x14]
mov dword [esp + 0x18], 0x310
push eax
jmp 0x4529f9
call dword [sym.imp.kernel32.dll_GetLastError]
push 0x530474
push 0
lea ecx, [esp + 0x14]
mov dword [esp + 0x18], 0x31a
push ecx
jmp 0x4529f9
call dword [sym.imp.kernel32.dll_GetLastError]
mov dword [esp + 0x10], 0x32a
jmp 0x4529ed
mov dword [esp + 0x10], 0x335
jmp 0x452902
cmp word [esp + 0x14], 0
je 0x4529c6
push 0x530474
lea ecx, [esp + 0x10]
push 0
push ecx
mov dword [esp + 0x18], 0x539060
mov dword [esp + 0x1c], 0x34e
call fcn.0041ce50
add esp, 0xc
xor al, al
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x452a19
push 1
push 0
push 0
push esi
call dword [sym.imp.kernel32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x452a13
call dword [sym.imp.kernel32.dll_GetLastError]
mov dword [esp + 0x10], 0x35c
push 0x530474
push 0
lea edx, [esp + 0x14]
push edx
mov dword [esp + 0x18], 0x539060
call fcn.0041ce50
add esp, 0xc
xor al, al
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
sub eax, dword [esp + 0xc]
mov dword [edi], eax
pop edi
mov al, 1
pop esi
mov esp, ebp
pop ebp
ret 8