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

Disassembly:
sub esp, 0x35c
mov eax, dword [0x5c9040]
xor eax, esp
mov dword [esp + 0x358], eax
push ebx
mov ebx, ecx
mov eax, 0x79cc4519
push ebp
push esi
push edi
push 0x10
pop ebp
mov ecx, ebp
mov dword [esp + 0x34], ebx
lea edi, [esp + 0x168]
mov dword [esp + 0x30], ebp
rep stosd dword es:[edi], eax
push 0x30
mov eax, 0x7a879d8a
lea edi, [esp + 0x1ac]
pop ecx
rep stosd dword es:[edi], eax
movzx ecx, byte [edx]
shl ecx, 8
movzx eax, byte [edx + 1]
or ecx, eax
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 3]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 5]
mov dword [esp + 0x58], ecx
movzx ecx, byte [edx + 4]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 6]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 7]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 9]
mov dword [esp + 0x5c], ecx
movzx ecx, byte [edx + 8]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0xa]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0xb]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0xd]
mov dword [esp + 0x60], ecx
movzx ecx, byte [edx + 0xc]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0xe]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0xf]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x11]
mov dword [esp + 0x64], ecx
movzx ecx, byte [edx + 0x10]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x12]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x13]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x15]
mov dword [esp + 0x68], ecx
movzx ecx, byte [edx + 0x14]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x16]
shl ecx, 8
or ecx, eax
shl ecx, 8
movzx eax, byte [edx + 0x17]
or ecx, eax
movzx eax, byte [edx + 0x19]
mov dword [esp + 0x6c], ecx
movzx ecx, byte [edx + 0x18]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x1a]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x1b]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x1d]
mov dword [esp + 0x70], ecx
movzx ecx, byte [edx + 0x1c]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x1e]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x1f]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x21]
mov dword [esp + 0x74], ecx
movzx ecx, byte [edx + 0x20]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x22]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x23]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x25]
mov dword [esp + 0x78], ecx
movzx ecx, byte [edx + 0x24]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x26]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x27]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x29]
mov dword [esp + 0x7c], ecx
movzx ecx, byte [edx + 0x28]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x2a]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x2b]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x2d]
mov dword [esp + 0x80], ecx
movzx ecx, byte [edx + 0x2c]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x2e]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x2f]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x31]
mov dword [esp + 0x84], ecx
movzx ecx, byte [edx + 0x30]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x32]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x33]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x88], ecx
movzx ecx, byte [edx + 0x34]
movzx eax, byte [edx + 0x35]
lea esi, [esp + 0x58]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x36]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x37]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x39]
mov dword [esp + 0x8c], ecx
movzx ecx, byte [edx + 0x38]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x3a]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x3b]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x3d]
mov dword [esp + 0x90], ecx
movzx ecx, byte [edx + 0x3c]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x3e]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x3f]
shl ecx, 8
or ecx, eax
push 0x34
mov dword [esp + 0x98], ecx
pop edi
mov edx, dword [esi + 0x34]
mov ecx, dword [esi + 0xc]
ror edx, 0x11
xor edx, dword [esi + 0x1c]
xor edx, dword [esi]
lea esi, [esi + 4]
ror ecx, 0x19
mov eax, edx
ror eax, 0x11
xor ecx, eax
mov eax, edx
ror eax, 9
xor ecx, eax
xor ecx, dword [esi + 0x24]
xor ecx, edx
mov dword [esi + 0x3c], ecx
sub edi, 1
jne 0x4f3096
xor ecx, ecx
mov dword [esp + 0x28], ecx
mov eax, ecx
movups xmm1, xmmword [esp + eax + 0x68]
movups xmm0, xmmword [esp + eax + 0x58]
xorps xmm1, xmm0
movups xmmword [esp + eax + 0x268], xmm1
add eax, ebp
cmp eax, 0x100
jl 0x4f30cd
mov eax, dword [ebx + 0xc]
mov esi, dword [ebx + 8]
mov ebp, dword [ebx + 0x18]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x40], eax
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x44], eax
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x50], eax
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x38], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x48], ebp
mov dword [esp + 0x54], eax
mov dword [esp + 0x24], eax
mov edx, dword [esp + ecx*4 + 0x168]
mov eax, esi
rol edx, cl
mov ecx, esi
shl eax, 0xc
shr ecx, 0x14
or ecx, eax
shr esi, 0xd
mov eax, dword [esp + 0x18]
and esi, 0x7ff80
shl eax, 0x13
or esi, eax
mov ebx, dword [esp + 0x28]
lea eax, [edx + ebp]
shl eax, 7
add esi, eax
lea eax, [ecx + edx]
mov edx, dword [esp + 0x2c]
add eax, ebp
shr eax, 0x19
or esi, eax
mov eax, dword [esp + 0x1c]
xor ecx, esi
mov edi, eax
xor edi, dword [esp + 0x14]
xor edi, dword [esp + 0x18]
add edi, ecx
mov ecx, dword [esp + 0x28]
push 0x10
add edi, dword [esp + ecx*4 + 0x26c]
mov ecx, edx
xor ecx, dword [esp + 0x14]
add edi, dword [esp + 0x24]
xor ecx, ebp
add ecx, dword [esp + ebx*4 + 0x5c]
add ecx, esi
mov dword [esp + 0x24], eax
mov esi, dword [esp + 0x18]
mov eax, esi
add ecx, dword [esp + 0x28]
shr eax, 0x17
shl esi, 9
or eax, esi
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov eax, edx
shl eax, 0x13
shr edx, 0xd
or eax, edx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x30], eax
mov ebp, ecx
mov eax, ecx
ror ebp, 0x17
ror eax, 0xf
xor ebp, eax
mov dword [esp + 0x18], esi
xor ebp, ecx
mov esi, edi
mov ecx, ebx
mov dword [esp + 0x1c], esi
inc ecx
pop eax
mov dword [esp + 0x28], ecx
cmp ecx, eax
jl 0x4f313f
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + eax*4 + 0x168]
mov cl, al
rol edx, cl
mov eax, edi
shl eax, 0xc
mov ecx, edi
shr ecx, 0x14
mov esi, edi
or ecx, eax
shr esi, 0xd
mov eax, edi
and esi, 0x7ff80
shl eax, 0x13
or esi, eax
lea eax, [edx + ebp]
shl eax, 7
add esi, eax
lea eax, [edx + ecx]
mov edx, dword [esp + 0x30]
add eax, ebp
shr eax, 0x19
or esi, eax
mov eax, edi
or eax, dword [esp + 0x14]
and edi, dword [esp + 0x14]
and eax, ebx
or eax, edi
mov edi, ecx
add eax, dword [esp + edx*4 + 0x268]
xor edi, esi
add eax, dword [esp + 0x20]
mov ecx, ebp
mov edx, dword [esp + 0x2c]
add edi, eax
mov eax, dword [esp + 0x10]
not ecx
and eax, ebp
mov dword [esp + 0x20], ebx
and ecx, edx
or ecx, eax
mov eax, dword [esp + 0x30]
add ecx, dword [esp + eax*4 + 0x58]
mov eax, dword [esp + 0x14]
add ecx, esi
add ecx, dword [esp + 0x24]
mov ebx, eax
mov esi, dword [esp + 0x18]
shl eax, 9
shr ebx, 0x17
or ebx, eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x10]
mov edx, eax
shr eax, 0xd
shl edx, 0x13
or edx, eax
mov dword [esp + 0x10], ebp
mov ebp, ecx
mov dword [esp + 0x14], esi
ror ebp, 0x17
mov eax, ecx
ror eax, 0xf
xor ebp, eax
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x30]
xor ebp, ecx
inc eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], eax
cmp eax, 0x40
jl 0x4f3215
mov eax, dword [esp + 0x38]
xor eax, edi
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x40]
xor ecx, dword [esp + 0x1c]
pop edi
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x38]
xor eax, esi
mov dword [ebx + 0x10], ecx
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x40]
xor eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x364]
mov dword [ebx + 0x14], eax
mov eax, dword [esp + 0x44]
xor eax, ebp
mov dword [ebx + 0x18], eax
mov eax, dword [esp + 0x48]
xor eax, dword [esp + 0xc]
mov dword [ebx + 0x1c], eax
mov eax, dword [esp + 0x4c]
xor eax, edx
mov dword [ebx + 0x20], eax
mov eax, dword [esp + 0x50]
xor eax, dword [esp + 0x20]
pop esi
pop ebp
mov dword [ebx + 0x24], eax
pop ebx
xor ecx, esp
call fcn.0051b034
add esp, 0x35c
ret