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

Disassembly:
sub esp, 0x33c
push ebx
push ebp
push esi
push edi
mov ecx, 0x10
mov eax, 0x79cc4519
lea edi, [esp + 0x14c]
xor edx, edx
rep stosd dword es:[edi], eax
mov ecx, 0x30
mov eax, 0x7a879d8a
lea edi, [esp + 0x18c]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x354]
xor ecx, ecx
mov ch, byte [eax]
mov dl, byte [eax + 2]
mov cl, byte [eax + 1]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 3]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 6]
mov dword [esp + 0x3c], ecx
xor ecx, ecx
mov ch, byte [eax + 4]
mov cl, byte [eax + 5]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 7]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0xa]
mov dword [esp + 0x40], ecx
xor ecx, ecx
mov ch, byte [eax + 8]
mov cl, byte [eax + 9]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0xb]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0xe]
mov dword [esp + 0x44], ecx
xor ecx, ecx
mov ch, byte [eax + 0xc]
mov cl, byte [eax + 0xd]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0xf]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0x12]
mov dword [esp + 0x48], ecx
xor ecx, ecx
mov ch, byte [eax + 0x10]
mov cl, byte [eax + 0x11]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0x13]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0x16]
mov dword [esp + 0x4c], ecx
xor ecx, ecx
mov ch, byte [eax + 0x14]
mov cl, byte [eax + 0x15]
shl ecx, 8
or ecx, edx
shl ecx, 8
xor edx, edx
mov dl, byte [eax + 0x17]
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0x1a]
mov dword [esp + 0x50], ecx
xor ecx, ecx
mov ch, byte [eax + 0x18]
mov cl, byte [eax + 0x19]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0x1b]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0x1e]
mov dword [esp + 0x54], ecx
xor ecx, ecx
mov ch, byte [eax + 0x1c]
mov cl, byte [eax + 0x1d]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0x1f]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0x22]
mov dword [esp + 0x58], ecx
xor ecx, ecx
mov ch, byte [eax + 0x20]
mov cl, byte [eax + 0x21]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0x23]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0x26]
mov dword [esp + 0x5c], ecx
xor ecx, ecx
mov ch, byte [eax + 0x24]
mov cl, byte [eax + 0x25]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0x27]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0x2a]
mov dword [esp + 0x60], ecx
xor ecx, ecx
mov ch, byte [eax + 0x28]
mov cl, byte [eax + 0x29]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0x2b]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0x2e]
mov dword [esp + 0x64], ecx
xor ecx, ecx
mov ch, byte [eax + 0x2c]
mov cl, byte [eax + 0x2d]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0x2f]
shl ecx, 8
or ecx, edx
mov dword [esp + 0x68], ecx
xor ecx, ecx
mov ch, byte [eax + 0x30]
mov cl, byte [eax + 0x31]
shl ecx, 8
xor edx, edx
mov dl, byte [eax + 0x32]
mov esi, 0x34
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0x33]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0x36]
mov dword [esp + 0x6c], ecx
xor ecx, ecx
mov ch, byte [eax + 0x34]
mov cl, byte [eax + 0x35]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0x37]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0x3a]
mov dword [esp + 0x70], ecx
xor ecx, ecx
mov ch, byte [eax + 0x38]
mov cl, byte [eax + 0x39]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0x3b]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0x3e]
mov dword [esp + 0x74], ecx
xor ecx, ecx
mov ch, byte [eax + 0x3c]
mov cl, byte [eax + 0x3d]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 0x3f]
shl ecx, 8
or ecx, edx
mov dword [esp + 0x78], ecx
lea ecx, [esp + 0x70]
mov edx, dword [ecx]
mov edi, dword [ecx - 0x34]
mov eax, edx
mov ebp, dword [ecx - 0xc]
shr eax, 0x11
shl edx, 0xf
or eax, edx
mov edx, dword [ecx - 0x18]
xor eax, edi
add ecx, 4
xor eax, edx
mov edx, dword [ecx - 0x2c]
mov edi, edx
mov ebx, eax
shr edi, 0x19
shl edx, 7
or edi, edx
mov edx, eax
shr edx, 0x11
shl ebx, 0xf
or edx, ebx
mov ebx, eax
xor edi, edx
mov edx, eax
shl edx, 0x17
shr ebx, 9
or edx, ebx
xor edi, edx
xor edi, ebp
xor edi, eax
dec esi
mov dword [ecx + 8], edi
jne 0x46ee8f
xor eax, eax
mov ecx, dword [esp + eax + 0x4c]
mov esi, dword [esp + eax + 0x3c]
xor ecx, esi
mov dword [esp + eax + 0x24c], ecx
add eax, 4
cmp eax, 0x100
jl 0x46eee0
mov eax, dword [esp + 0x350]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov ebx, dword [eax + 0x1c]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x24], eax
xor eax, eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x34], edi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
jmp 0x46ef4a
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + eax*4 + 0x14c]
mov ecx, 0x20
sub ecx, eax
mov eax, ebp
shr eax, cl
mov ecx, dword [esp + 0x10]
shl ebp, cl
mov ecx, edx
shl ecx, 0xc
or eax, ebp
mov ebp, edx
shr ebp, 0x14
or ebp, ecx
mov ecx, edx
shr ecx, 0xd
and ecx, 0x7ff80
shl edx, 0x13
or ecx, edx
lea edx, [eax + esi]
add eax, esi
shl edx, 7
add eax, ebp
add ecx, edx
mov edx, dword [esp + 0x1c]
shr eax, 0x19
or ecx, eax
mov eax, dword [esp + 0x18]
xor eax, edi
xor eax, edx
mov edx, dword [esp + 0x10]
add eax, dword [esp + edx*4 + 0x24c]
mov edx, ecx
xor edx, ebp
mov ebp, dword [esp + 0x20]
add ebp, eax
mov eax, dword [esp + 0x14]
add edx, ebp
mov ebp, dword [esp + 0x10]
xor eax, ebx
xor eax, esi
add eax, dword [esp + ebp*4 + 0x3c]
add eax, ecx
mov ecx, dword [esp + 0x24]
add eax, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov ecx, edi
shr ecx, 0x17
shl edi, 9
or ecx, edi
mov ebp, eax
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x24], ecx
mov ecx, ebx
shl ecx, 0x13
shr ebx, 0xd
or ecx, ebx
mov ebx, esi
mov dword [esp + 0x14], ecx
mov ecx, eax
mov esi, eax
mov edi, dword [esp + 0x1c]
shr ecx, 0xf
shl esi, 0x11
or ecx, esi
mov esi, eax
shr esi, 0x17
shl ebp, 9
or esi, ebp
mov dword [esp + 0x1c], edx
xor ecx, esi
xor ecx, eax
mov eax, dword [esp + 0x10]
inc eax
mov esi, ecx
cmp eax, 0x10
mov dword [esp + 0x10], eax
jl 0x46ef42
xor eax, eax
mov dword [esp + 0x10], 0x10
mov dword [esp + 0x28], eax
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + eax + 0x18c]
mov ecx, 0x20
sub ecx, ebp
mov ebp, eax
shr ebp, cl
mov ecx, dword [esp + 0x10]
shl eax, cl
mov ecx, edx
shl ecx, 0xc
or ebp, eax
mov eax, edx
shr eax, 0x14
or eax, ecx
mov ecx, edx
mov dword [esp + 0x2c], ebp
mov ebp, edx
shr ecx, 0xd
and ecx, 0x7ff80
shl ebp, 0x13
or ecx, ebp
mov ebp, dword [esp + 0x2c]
add ebp, esi
shl ebp, 7
add ecx, ebp
mov ebp, dword [esp + 0x2c]
add ebp, eax
add ebp, esi
shr ebp, 0x19
or ecx, ebp
mov ebp, edx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x18]
or ebp, edi
and edx, edi
and ebp, ecx
or ebp, edx
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + edx + 0x28c]
mov edx, dword [esp + 0x20]
add ebp, ecx
mov ecx, dword [esp + 0x2c]
xor eax, ecx
add edx, ebp
mov ebp, dword [esp + 0x14]
add eax, edx
mov edx, eax
mov eax, esi
not eax
and eax, ebp
mov ebp, ebx
and ebp, esi
or eax, ebp
mov ebp, dword [esp + 0x28]
add eax, dword [esp + ebp + 0x7c]
add eax, ecx
mov ecx, dword [esp + 0x24]
add eax, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov ecx, edi
shr ecx, 0x17
shl edi, 9
or ecx, edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x24], ecx
mov ecx, ebx
shl ecx, 0x13
shr ebx, 0xd
or ecx, ebx
mov ebx, esi
mov dword [esp + 0x14], ecx
mov ecx, eax
mov esi, eax
mov dword [esp + 0x1c], edx
shr ecx, 0xf
shl esi, 0x11
or ecx, esi
mov esi, eax
mov ebp, eax
shr esi, 0x17
shl ebp, 9
or esi, ebp
xor ecx, esi
xor ecx, eax
mov eax, dword [esp + 0x10]
inc eax
mov esi, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
add eax, 4
cmp eax, 0xc0
mov dword [esp + 0x28], eax
jl 0x46f040
mov eax, dword [esp + 0x350]
mov ecx, dword [eax + 8]
mov ebp, dword [eax + 0x1c]
xor edx, ecx
mov ecx, dword [esp + 0x34]
xor ecx, edi
mov edi, dword [esp + 0x18]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x38]
xor ecx, edi
mov dword [eax + 8], edx
mov edx, dword [esp + 0x20]
mov dword [eax + 0x10], ecx
mov ecx, dword [esp + 0x30]
xor ebx, ebp
xor ecx, edx
mov edx, dword [eax + 0x20]
mov dword [eax + 0x14], ecx
mov ecx, dword [eax + 0x18]
xor esi, ecx
mov ecx, dword [esp + 0x14]
xor ecx, edx
mov edx, dword [eax + 0x24]
mov dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + 0x18], esi
pop edi
xor ecx, edx
pop esi
mov dword [eax + 0x1c], ebx
pop ebp
mov dword [eax + 0x24], ecx
pop ebx
add esp, 0x33c
ret