Function at 0x4c0fb0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x154
call fcn.0054ddb0
mov eax, dword [0x5e56f0]
xor eax, esp
mov dword [esp + 0x150], eax
test dword [0x5eb5a8], 0x800000
mov ecx, dword [esp + 0x158]
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x6c], ecx
jne 0x4c1598
push ebx
push ebp
push esi
push edi
mov edi, ecx
lea edx, [esp + 0xe0]
sub edi, edx
lea edx, [esp + 0xa0]
sub edx, ecx
mov dword [esp + 0x88], edx
lea edx, [esp + 0xa1]
sub edx, ecx
mov dword [esp + 0x94], edx
lea edx, [esp + 0xa2]
sub edx, ecx
mov dword [esp + 0x90], edx
lea edx, [esp + 0xa3]
sub edx, ecx
mov dword [esp + 0x8c], edx
mov ecx, eax
lea edx, [esp + 0xa0]
sub ecx, edx
mov dword [esp + 0x30], ecx
lea ecx, [eax + 2]
lea edx, [esp + 0xe0]
sub eax, edx
mov esi, eax
mov dword [esp + 0x78], edi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x60], esi
jmp 0x4c1074
mov edi, dword [esp + 0x78]
xor eax, eax
jmp 0x4c1080
lea ecx, [esp + eax + 0xe0]
mov dl, byte [ecx + edi]
mov byte [ecx], dl
mov cl, byte [esi + ecx]
xor cl, dl
mov byte [esp + eax + 0xa0], cl
inc eax
cmp eax, 0x40
jl 0x4c1080
mov ecx, 0x5c3000
mov dword [esp + 0x14], ecx
xor eax, eax
jmp 0x4c10b4
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x4c10be
xor edx, edx
xor esi, esi
jmp 0x4c10c3
mov edx, dword [ecx]
mov esi, dword [ecx + 4]
mov dword [esp + eax*8 + 0x120], edx
lea ecx, [esp + eax*8 + 0x120]
lea edx, [eax - 1]
and edx, 7
movzx edx, byte [esp + edx*8 + 0xe1]
mov edi, dword [edx*8 + 0x5c2800]
mov ebx, dword [edx*8 + 0x5c2804]
mov dword [esp + 0x84], ebx
lea edx, [eax - 2]
and edx, 7
movzx edx, byte [esp + edx*8 + 0xe2]
mov ebp, dword [edx*8 + 0x5c2800]
mov edx, dword [edx*8 + 0x5c2804]
mov dword [esp + 0x70], edx
mov dword [esp + 0x80], edi
shrd edi, ebx, 8
shr ebx, 8
xor ebx, dword [esp + 0x70]
mov dword [ecx + 4], esi
lea edx, [eax - 3]
and edx, 7
movzx edx, byte [esp + edx*8 + 0xe3]
mov esi, dword [edx*8 + 0x5c2800]
mov edx, dword [edx*8 + 0x5c2804]
mov dword [esp + 0x2c], edx
xor edi, ebp
shrd edi, ebx, 8
shr ebx, 8
xor ebx, dword [esp + 0x2c]
mov dword [esp + 0x28], esi
xor edi, dword [esp + 0x28]
lea edx, [eax - 4]
and edx, 7
movzx edx, byte [esp + edx*8 + 0xe4]
mov esi, dword [edx*8 + 0x5c2800]
mov edx, dword [edx*8 + 0x5c2804]
shrd edi, ebx, 8
mov dword [esp + 0x24], edx
shr ebx, 8
xor ebx, dword [esp + 0x24]
mov dword [esp + 0x20], esi
xor edi, dword [esp + 0x20]
lea edx, [eax + 3]
and edx, 7
movzx edx, byte [esp + edx*8 + 0xe5]
mov esi, dword [edx*8 + 0x5c2800]
mov edx, dword [edx*8 + 0x5c2804]
shrd edi, ebx, 8
mov dword [esp + 0x1c], edx
shr ebx, 8
xor ebx, dword [esp + 0x1c]
mov dword [esp + 0x18], esi
xor edi, dword [esp + 0x18]
lea edx, [eax + 2]
and edx, 7
movzx edx, byte [esp + edx*8 + 0xe6]
mov esi, dword [edx*8 + 0x5c2800]
mov edx, dword [edx*8 + 0x5c2804]
shrd edi, ebx, 8
mov dword [esp + 0x4c], edx
shr ebx, 8
xor ebx, dword [esp + 0x4c]
mov dword [esp + 0x48], esi
xor edi, dword [esp + 0x48]
lea edx, [eax + 1]
mov dword [esp + 0x10], edx
and edx, 7
movzx esi, byte [esp + edx*8 + 0xe7]
mov edx, dword [esi*8 + 0x5c2800]
mov esi, dword [esi*8 + 0x5c2804]
shrd edi, ebx, 8
shr ebx, 8
xor edi, edx
xor ebx, esi
shrd edi, ebx, 8
shld esi, edx, 8
shl edx, 8
xor edx, dword [esp + 0x48]
shr ebx, 8
xor esi, dword [esp + 0x4c]
mov dword [esp + 0x6c], ebp
shld esi, edx, 8
xor esi, dword [esp + 0x1c]
shl edx, 8
xor edx, dword [esp + 0x18]
movzx eax, byte [esp + eax*8 + 0xe0]
shld esi, edx, 8
xor esi, dword [esp + 0x24]
shl edx, 8
xor edx, dword [esp + 0x20]
shld esi, edx, 8
xor esi, dword [esp + 0x2c]
shl edx, 8
xor edx, dword [esp + 0x28]
shld esi, edx, 8
xor esi, dword [esp + 0x70]
shl edx, 8
xor edx, ebp
shld esi, edx, 8
xor esi, dword [esp + 0x84]
shl edx, 8
xor edx, dword [esp + 0x80]
shld esi, edx, 8
shl edx, 8
xor edi, edx
xor edi, dword [eax*8 + 0x5c2800]
xor ebx, esi
xor ebx, dword [eax*8 + 0x5c2804]
mov eax, dword [esp + 0x10]
xor dword [ecx], edi
xor dword [ecx + 4], ebx
cmp eax, 8
jl 0x4c10b0
mov ecx, 0x10
lea esi, [esp + 0x120]
lea edi, [esp + 0xe0]
rep movsd dword es:[edi], dword [esi]
mov eax, 2
xor edx, edx
mov dword [esp + 0x10], 8
lea ecx, [eax - 3]
and ecx, 7
movzx ecx, byte [esp + ecx*8 + 0xa1]
mov edi, dword [ecx*8 + 0x5c2804]
mov esi, dword [ecx*8 + 0x5c2800]
lea ecx, [eax - 4]
and ecx, 7
movzx ecx, byte [esp + ecx*8 + 0xa2]
mov ebx, dword [ecx*8 + 0x5c2800]
mov ecx, dword [ecx*8 + 0x5c2804]
mov dword [esp + 0x68], ecx
lea ecx, [eax + 3]
and ecx, 7
movzx ecx, byte [esp + ecx*8 + 0xa3]
mov ebp, dword [ecx*8 + 0x5c2800]
mov ecx, dword [ecx*8 + 0x5c2804]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x58], ebp
lea ecx, [eax + 2]
and ecx, 7
movzx ecx, byte [esp + ecx*8 + 0xa4]
mov ebp, dword [ecx*8 + 0x5c2800]
mov ecx, dword [ecx*8 + 0x5c2804]
mov dword [esp + 0x54], ecx
lea ecx, [eax + 1]
mov dword [esp + 0x74], ecx
and ecx, 7
movzx ecx, byte [esp + ecx*8 + 0xa5]
mov dword [esp + 0x50], ebp
mov ebp, dword [ecx*8 + 0x5c2800]
mov ecx, dword [ecx*8 + 0x5c2804]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], ebp
mov ecx, eax
mov dword [esp + 0x9c], edi
and ecx, 7
movzx ecx, byte [esp + ecx*8 + 0xa6]
mov ebp, dword [ecx*8 + 0x5c2800]
mov dword [esp + 0x34], ebp
mov ebp, esi
shrd ebp, edi, 8
shr edi, 8
xor edi, dword [esp + 0x68]
xor ebp, ebx
shrd ebp, edi, 8
xor ebp, dword [esp + 0x58]
shr edi, 8
xor edi, dword [esp + 0x5c]
mov ecx, dword [ecx*8 + 0x5c2804]
shrd ebp, edi, 8
xor ebp, dword [esp + 0x50]
shr edi, 8
xor edi, dword [esp + 0x54]
mov dword [esp + 0x38], ecx
shrd ebp, edi, 8
xor ebp, dword [esp + 0x40]
shr edi, 8
xor edi, dword [esp + 0x44]
dec eax
shrd ebp, edi, 8
xor ebp, dword [esp + 0x34]
shr edi, 8
xor edi, dword [esp + 0x38]
and eax, 7
movzx ecx, byte [esp + eax*8 + 0xa7]
mov eax, dword [ecx*8 + 0x5c2800]
mov ecx, dword [ecx*8 + 0x5c2804]
shrd ebp, edi, 8
shr edi, 8
xor edi, ecx
shld ecx, eax, 8
xor ecx, dword [esp + 0x38]
xor ebp, eax
shl eax, 8
xor eax, dword [esp + 0x34]
shrd ebp, edi, 8
shld ecx, eax, 8
shl eax, 8
shr edi, 8
xor eax, dword [esp + 0x40]
mov dword [esp + 0x64], ebx
xor ecx, dword [esp + 0x44]
add edx, 8
shld ecx, eax, 8
xor ecx, dword [esp + 0x54]
shl eax, 8
xor eax, dword [esp + 0x50]
shld ecx, eax, 8
xor ecx, dword [esp + 0x5c]
shl eax, 8
xor eax, dword [esp + 0x58]
shld ecx, eax, 8
xor ecx, dword [esp + 0x68]
shl eax, 8
xor eax, ebx
shld ecx, eax, 8
xor ecx, dword [esp + 0x9c]
shl eax, 8
xor eax, esi
shld ecx, eax, 8
shl eax, 8
xor ebp, eax
movzx eax, byte [esp + edx + 0x98]
xor ebp, dword [eax*8 + 0x5c2800]
xor edi, ecx
xor edi, dword [eax*8 + 0x5c2804]
xor dword [esp + edx + 0x118], ebp
xor dword [esp + edx + 0x11c], edi
dec dword [esp + 0x10]
mov eax, dword [esp + 0x74]
jne 0x4c12e2
mov ecx, 0x10
lea esi, [esp + 0x120]
lea edi, [esp + 0xa0]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x14]
add ecx, 8
mov dword [esp + 0x14], ecx
cmp ecx, 0x5c3050
jl 0x4c10a7
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x88]
mov edi, dword [esp + 0x30]
mov ebp, 0x10
lea esi, [edx + eax]
movzx ebx, byte [edi + esi]
xor bl, byte [eax]
add eax, 4
xor bl, byte [esi]
mov esi, dword [esp + 0x94]
mov byte [eax - 4], bl
movzx ebx, byte [esi + eax - 4]
xor bl, byte [ecx - 1]
mov esi, dword [esp + 0x90]
xor byte [eax - 3], bl
movzx ebx, byte [esi + eax - 4]
xor bl, byte [ecx]
mov esi, dword [esp + 0x8c]
xor byte [eax - 2], bl
movzx ebx, byte [esi + eax - 4]
xor bl, byte [ecx + 1]
add ecx, 4
xor byte [eax - 1], bl
dec ebp
jne 0x4c1510
mov esi, dword [esp + 0x60]
add esi, 0x40
add edi, 0x40
dec dword [esp + 0x170]
mov dword [esp + 0x60], esi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x30], edi
jne 0x4c1070
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x150]
xor ecx, esp
call fcn.0054caf9
add esp, 0x154
ret
mov edx, dword [esp + 0x160]
push edx
push eax
push ecx
call fcn.004de1c0
mov ecx, dword [esp + 0x15c]
add esp, 0xc
xor ecx, esp
call fcn.0054caf9
add esp, 0x154
ret