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

Disassembly:
mov eax, 0x7c
call fcn.005c5c30
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 0x14]
mov dword [esp + 4], ecx
push ebx
mov ebx, dword [eax + 0x20]
push ebp
mov ebp, dword [eax + 4]
push esi
mov esi, dword [eax + 0x18]
mov ecx, esi
shr ecx, 2
add ecx, esi
mov dword [esp + 0x24], ecx
push edi
mov edi, dword [eax + 0x1c]
mov ecx, edi
shr ecx, 2
add ecx, edi
mov dword [esp + 0x20], ecx
mov ecx, ebx
shr ecx, 2
add ecx, ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 0x24], esi
mov esi, dword [eax + 0x10]
mov dword [esp + 0x2c], edi
mov edi, dword [eax]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x10], esi
cmp edx, 0x10
jb 0x5101fc
mov esi, dword [esp + 0x94]
add esi, 6
shr edx, 4
mov dword [esp + 0x30], edx
movzx edx, byte [esi - 3]
movzx eax, byte [esi - 4]
shl edx, 8
or edx, eax
movzx eax, byte [esi - 5]
shl edx, 8
or edx, eax
movzx eax, byte [esi - 6]
xor ebx, ebx
shl edx, 8
or edx, eax
xor eax, eax
add edx, edi
adc eax, ebx
movzx ebx, byte [esi + 1]
mov dword [esp + 0x70], eax
movzx eax, byte [esi]
shl ebx, 8
or ebx, eax
movzx eax, byte [esi - 1]
xor edi, edi
shl ebx, 8
or ebx, eax
movzx eax, byte [esi - 2]
shl ebx, 8
or ebx, eax
xor eax, eax
add ebx, dword [esp + 0x70]
mov dword [esp + 0x80], 0
adc eax, edi
add ebx, ebp
adc eax, edi
movzx edi, byte [esi + 5]
movzx ebp, byte [esi + 4]
shl edi, 8
or edi, ebp
movzx ebp, byte [esi + 3]
shl edi, 8
or edi, ebp
movzx ebp, byte [esi + 2]
shl edi, 8
or edi, ebp
xor ebp, ebp
add edi, eax
adc dword [esp + 0x80], ebp
xor eax, eax
add edi, dword [esp + 0x18]
mov dword [esp + 0x84], ebx
mov dword [esp + 0x54], edi
mov edi, dword [esp + 0x80]
adc edi, eax
movzx eax, byte [esi + 8]
mov dword [esp + 0x58], edi
movzx edi, byte [esi + 9]
shl edi, 8
or edi, eax
movzx eax, byte [esi + 7]
shl edi, 8
or edi, eax
movzx eax, byte [esi + 6]
shl edi, 8
or edi, eax
xor eax, eax
add edi, dword [esp + 0x58]
mov dword [esp + 0x64], ebx
adc eax, ebp
add edi, ecx
mov ecx, dword [esp + 0x54]
adc eax, ebp
add eax, dword [esp + 0x98]
mov dword [esp + 0x74], ecx
add dword [esp + 0x10], eax
xor eax, eax
xor ecx, ecx
push ecx
mov ecx, dword [esp + 0x18]
push ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], eax
push eax
push edx
call fcn.005c5ca0
mov ebp, eax
xor eax, eax
push eax
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x2c]
push edx
push eax
push edi
call fcn.005c5ca0
mov ecx, dword [esp + 0x74]
add ebp, eax
adc dword [esp + 0x60], edx
xor eax, eax
push eax
mov eax, dword [esp + 0x24]
push eax
xor eax, eax
push eax
push ecx
call fcn.005c5ca0
add ebp, eax
adc dword [esp + 0x60], edx
mov edx, dword [esp + 0x1c]
xor eax, eax
push eax
push edx
push eax
push ebx
call fcn.005c5ca0
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x10]
add ebp, eax
mov eax, dword [esp + 0x60]
adc eax, edx
imul ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x44]
push ecx
mov dword [esp + 0x74], eax
push edx
xor eax, eax
push eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x78], ebp
push eax
xor ebp, ebp
call fcn.005c5ca0
mov ecx, dword [esp + 0x14]
add ebx, eax
adc ebp, edx
mov edx, dword [esp + 0x84]
xor eax, eax
push eax
push ecx
push eax
push edx
call fcn.005c5ca0
add ebx, eax
adc ebp, edx
xor eax, eax
push eax
mov eax, dword [esp + 0x24]
push eax
xor eax, eax
push eax
push edi
call fcn.005c5ca0
mov ecx, dword [esp + 0x1c]
add ebx, eax
adc ebp, edx
mov edx, dword [esp + 0x74]
xor eax, eax
push eax
push ecx
push eax
push edx
call fcn.005c5ca0
add ebx, eax
adc ebp, edx
xor eax, eax
add ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x68]
adc ebp, eax
imul ecx, dword [esp + 0x20]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x64]
push edx
push eax
xor eax, eax
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x2c]
push eax
push ecx
call fcn.005c5ca0
add dword [esp + 0x3c], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x2c]
adc dword [esp + 0x40], edx
mov edx, dword [esp + 0x48]
push edx
push eax
xor eax, eax
push eax
push ecx
call fcn.005c5ca0
add dword [esp + 0x3c], eax
adc dword [esp + 0x40], edx
mov edx, dword [esp + 0x14]
xor eax, eax
push eax
push edx
push eax
mov eax, dword [esp + 0x80]
push eax
call fcn.005c5ca0
add dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x1c]
adc dword [esp + 0x40], edx
xor eax, eax
push eax
push ecx
push eax
push edi
call fcn.005c5ca0
mov ecx, eax
mov eax, dword [esp + 0x3c]
add eax, ecx
mov ecx, dword [esp + 0x40]
adc ecx, edx
xor edx, edx
add eax, ebp
mov ebp, dword [esp + 0x10]
adc ecx, edx
imul ebp, dword [esp + 0x1c]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x68]
push eax
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x68]
push ecx
xor eax, eax
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x34]
push eax
push edx
call fcn.005c5ca0
mov ecx, dword [esp + 0x44]
add ebp, eax
mov eax, dword [esp + 0x48]
adc dword [esp + 0x50], edx
mov edx, dword [esp + 0x38]
push eax
push ecx
xor eax, eax
push eax
push edx
call fcn.005c5ca0
add ebp, eax
adc dword [esp + 0x50], edx
xor eax, eax
mov ecx, dword [esp + 0x74]
push eax
mov eax, dword [esp + 0x28]
push eax
xor eax, eax
push eax
push ecx
call fcn.005c5ca0
add ebp, eax
adc dword [esp + 0x50], edx
mov edx, dword [esp + 0x14]
xor eax, eax
push eax
push edx
push eax
push edi
call fcn.005c5ca0
add ebp, eax
mov eax, dword [esp + 0x50]
adc eax, edx
mov edx, dword [esp + 0x10]
xor ecx, ecx
add ebp, dword [esp + 0x58]
mov edi, dword [esp + 0x6c]
adc eax, ecx
imul edx, dword [esp + 0x14]
add edx, eax
mov ecx, edx
shr ecx, 2
mov eax, edx
and eax, 0xfffffffc
add ecx, eax
add edi, ecx
mov eax, edi
sub eax, ecx
xor eax, ecx
xor ecx, edi
or eax, ecx
xor eax, edi
shr eax, 0x1f
add ebx, eax
mov ecx, ebx
sub ecx, eax
xor ecx, eax
xor eax, ebx
or ecx, eax
mov eax, dword [esp + 0x54]
xor ecx, ebx
shr ecx, 0x1f
add eax, ecx
mov dword [esp + 0x18], eax
sub eax, ecx
xor eax, ecx
xor ecx, dword [esp + 0x18]
mov dword [esp + 0x34], ebx
or eax, ecx
xor eax, dword [esp + 0x18]
and edx, 3
shr eax, 0x1f
lea ecx, [eax + ebp]
mov ebp, dword [esp + 0x34]
mov ebx, ecx
sub ebx, eax
xor ebx, eax
xor eax, ecx
or ebx, eax
xor ebx, ecx
shr ebx, 0x1f
add ebx, edx
add esi, 0x10
dec dword [esp + 0x30]
mov dword [esp + 0x10], ebx
jne 0x50fe82
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x18]
mov dword [eax], edi
pop edi
pop esi
mov dword [eax + 4], ebp
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 8]
pop ebp
mov dword [eax + 8], edx
mov dword [eax + 0x10], ecx
pop ebx
add esp, 0x7c
ret