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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x300
mov eax, dword [ebp + 8]
mov dword [esp + 0x28], ecx
test eax, eax
mov dword [esp + 0x2c], eax
je 0x47ad17
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
movdqu xmm1, xmmword [eax + 0x18]
movdqu xmm0, xmmword [eax + 8]
movdqu xmm2, xmmword [eax + 0x28]
mov ebx, dword [eax + 0x38]
mov dword [esp + 0xc], ecx
mov ecx, dword [eax + 4]
pshufd xmm1, xmm1, 0x4e
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + 0x3c]
nop dword [eax]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x14]
movdqu xmmword [esp + 0x2b8], xmm0
pshufd xmm0, xmm1, 0xee
lea eax, [esp + 0x2b0]
mov esi, 0xffffff80
movq qword [esp + 0x2c8], xmm0
pshufd xmm0, xmm1, 0xe5
movdqu xmmword [esp + 0x2d8], xmm2
mov dword [esp + 0x2e8], ebx
mov dword [esp + 0x2ec], ecx
movd ecx, xmm1
mov ebx, eax
movd edi, xmm0
nop word cs:[eax + eax]
nop dword [eax + eax]
mov eax, ecx
mov dword [esp + 0x14], edx
mov edx, edi
mov dword [esp + 4], ebx
mov ebx, edi
mov dword [esp + 0x18], esi
shld eax, edi, 0xe
shld edx, ecx, 0x17
shld ebx, ecx, 0xe
xor edx, eax
mov eax, ecx
shld eax, edi, 0x12
xor edx, eax
mov eax, ecx
shld eax, edi, 0x17
xor eax, ebx
mov ebx, edi
shld ebx, ecx, 0x12
xor eax, ebx
mov ebx, dword [esp + 0x24]
mov ebx, dword [ebx + esi + 0x84]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 8]
bswap ebx
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x24]
mov esi, dword [ebx + esi + 0x80]
mov ebx, dword [esp + 4]
bswap esi
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x14]
mov dword [ebx + 4], esi
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0xc]
mov dword [ebx], esi
mov esi, dword [esp + 4]
mov ebx, dword [esp + 0x10]
mov dword [esi + 0x24], edi
mov esi, dword [esp + 4]
mov dword [esi + 0x20], ecx
mov esi, dword [esp + 4]
mov dword [esi + 0x44], ebx
mov esi, dword [esp + 4]
mov ebx, dword [esp + 8]
mov dword [esi + 0x40], ebx
mov esi, dword [esp + 4]
mov ebx, dword [esi + 0x28]
mov esi, dword [esp + 4]
and ebx, ecx
not ecx
and ecx, dword [esi + 0x30]
mov esi, dword [esp + 4]
or ecx, ebx
mov ebx, dword [esi + 0x2c]
mov esi, dword [esp + 4]
and ebx, edi
not edi
and edi, dword [esi + 0x34]
mov esi, dword [esp + 4]
or edi, ebx
add eax, dword [esp + 8]
mov ebx, dword [esp + 0xc]
adc edx, dword [esp + 0x10]
add eax, dword [esi + 0x38]
mov esi, dword [esp + 4]
mov dword [esp + 0xc], ebx
adc edx, dword [esi + 0x3c]
mov esi, dword [esp + 0x18]
add eax, dword [esi + 0x593c78]
adc edx, dword [esi + 0x593c7c]
add eax, ecx
mov ecx, dword [esp + 4]
mov esi, dword [esp + 4]
mov ecx, dword [ecx + 0x18]
adc edx, edi
mov edi, dword [esi + 0x1c]
mov dword [esp + 0x10], edx
add ecx, eax
adc edi, edx
mov edx, dword [esp + 0x14]
mov esi, edx
shld esi, ebx, 0x1e
mov dword [esp + 8], esi
mov esi, edx
shld esi, ebx, 0x19
xor esi, dword [esp + 8]
mov dword [esp + 8], esi
mov esi, ebx
shld esi, edx, 4
xor dword [esp + 8], esi
mov esi, ebx
shld esi, edx, 0x1e
mov edx, ebx
mov ebx, dword [esp + 0x14]
shld edx, ebx, 0x19
xor edx, esi
mov esi, ebx
mov ebx, dword [esp + 0xc]
shld esi, ebx, 4
xor edx, esi
add edx, eax
mov eax, dword [esp + 0x10]
adc dword [esp + 8], eax
mov eax, dword [esp + 4]
mov ebx, dword [eax + 8]
mov eax, dword [esp + 4]
mov esi, dword [eax + 0x10]
mov eax, dword [esp + 4]
mov dword [esp + 0x1c], ebx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x10], esi
xor esi, ebx
and esi, dword [esp + 0xc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x1c]
mov eax, dword [eax + 0x14]
and dword [esp + 0x10], esi
mov esi, dword [esp + 0x20]
mov ebx, eax
and eax, dword [esp + 0xc]
xor ebx, dword [esp + 0xc]
xor dword [esp + 0x10], esi
mov esi, dword [esp + 0x10]
and ebx, dword [esp + 0x14]
xor eax, ebx
add esi, edx
mov ebx, dword [esp + 4]
mov edx, eax
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x18]
adc edx, dword [esp + 8]
add ebx, 0xfffffff8
add esi, 8
jne 0x47a7c0
dec dword [esp + 0x2c]
mov dword [esp + 0x10], 0xfffffe00
nop dword [eax + eax]
movq xmm1, qword [ebx + 0x50]
movq xmm0, qword [ebx + 0xb8]
mov eax, dword [ebx + 0x78]
mov dword [esp + 0x14], edx
mov edx, dword [ebx + 0x7c]
mov dword [esp + 4], ebx
punpcklqdq xmm0, xmm1
add eax, dword [ebx + 0xc0]
movdqa xmm1, xmm0
movdqa xmm2, xmm0
movdqa xmm3, xmm0
movdqa xmm5, xmm0
movdqa xmm4, xmm0
psrlq xmm1, 1
psrlq xmm2, 0x13
psllq xmm3, 0x2d
psrlq xmm5, 0x3d
psllq xmm4, 3
movsd xmm2, xmm1
movdqa xmm1, xmm0
psllq xmm1, 0x3f
adc edx, dword [ebx + 0xc4]
movsd xmm3, xmm1
movdqa xmm1, xmm0
psrlq xmm1, 8
orpd xmm3, xmm2
movsd xmm5, xmm1
movdqa xmm1, xmm0
psllq xmm1, 0x38
movsd xmm4, xmm1
movdqa xmm1, xmm0
psrlq xmm0, 6
psrlq xmm1, 7
orpd xmm4, xmm5
movsd xmm0, xmm1
xorpd xmm0, xmm3
xorpd xmm0, xmm4
movd esi, xmm0
pshufd xmm1, xmm0, 0xe5
add esi, eax
movd eax, xmm1
pshufd xmm1, xmm0, 0x4e
pshufd xmm0, xmm0, 0xe7
adc eax, edx
movd edx, xmm1
add edx, esi
mov esi, edi
mov dword [esp + 8], edx
movd edx, xmm0
adc edx, eax
mov eax, ecx
shld esi, ecx, 0xe
mov dword [esp + 0x18], edx
mov edx, edi
shld eax, edi, 0xe
shld edx, ecx, 0x17
xor edx, eax
mov eax, ecx
shld eax, edi, 0x12
xor edx, eax
mov eax, ecx
shld eax, edi, 0x17
mov ebx, edx
mov edx, dword [esp + 4]
xor eax, esi
mov esi, edi
shld esi, ecx, 0x12
xor eax, esi
mov esi, dword [esp + 0xc]
mov dword [edx], esi
mov edx, dword [esp + 4]
mov esi, dword [esp + 0x14]
mov dword [edx + 4], esi
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
mov dword [edx + 0x20], ecx
mov edx, dword [esp + 4]
mov dword [edx + 0x24], edi
mov edx, dword [esp + 4]
mov dword [edx + 0x40], esi
mov edx, dword [esp + 4]
mov esi, dword [esp + 0x18]
mov dword [edx + 0x44], esi
mov edx, dword [esp + 4]
mov esi, dword [edx + 0x28]
mov edx, dword [esp + 4]
and esi, ecx
not ecx
and ecx, dword [edx + 0x30]
mov edx, dword [esp + 4]
or ecx, esi
mov esi, dword [edx + 0x2c]
mov edx, dword [esp + 4]
and esi, edi
not edi
and edi, dword [edx + 0x34]
mov edx, dword [esp + 4]
or edi, esi
add eax, dword [esp + 8]
mov esi, dword [esp + 0xc]
adc ebx, dword [esp + 0x18]
add eax, dword [edx + 0x38]
mov edx, dword [esp + 4]
adc ebx, dword [edx + 0x3c]
mov edx, dword [esp + 0x10]
add eax, dword [edx + 0x593e78]
adc ebx, dword [edx + 0x593e7c]
add eax, ecx
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
mov ecx, dword [ecx + 0x18]
adc ebx, edi
mov edi, dword [edx + 0x1c]
mov dword [esp + 8], ebx
add ecx, eax
adc edi, ebx
mov ebx, dword [esp + 0x14]
mov edx, ebx
shld edx, esi, 0x1e
mov dword [esp + 0x18], edx
mov edx, ebx
shld edx, esi, 0x19
mov esi, dword [esp + 0xc]
xor edx, dword [esp + 0x18]
shld esi, ebx, 4
xor edx, esi
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xc]
mov esi, edx
shld edx, ebx, 0x19
shld esi, ebx, 0x1e
mov dword [esp + 0x1c], esi
mov esi, ebx
mov ebx, dword [esp + 0xc]
xor edx, dword [esp + 0x1c]
shld esi, ebx, 4
xor edx, esi
add edx, eax
mov eax, dword [esp + 8]
adc dword [esp + 0x18], eax
mov eax, dword [esp + 4]
mov esi, dword [eax + 8]
mov eax, dword [esp + 4]
mov ebx, dword [eax + 0x10]
mov eax, dword [esp + 4]
mov dword [esp + 0x1c], esi
mov eax, dword [eax + 0xc]
mov dword [esp + 8], ebx
xor ebx, esi
and ebx, dword [esp + 0xc]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x14]
mov esi, eax
and eax, dword [esp + 0xc]
xor esi, dword [esp + 0xc]
and esi, dword [esp + 0x14]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x1c]
xor eax, dword [esp + 0x14]
and dword [esp + 8], esi
xor dword [esp + 8], ebx
mov ebx, dword [esp + 4]
mov esi, dword [esp + 8]
add esi, edx
mov edx, eax
adc edx, dword [esp + 0x18]
add ebx, 0xfffffff8
add dword [esp + 0x10], 8
mov dword [esp + 0xc], esi
jne 0x47a9a0
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0xc]
movd xmm0, ecx
movd xmm1, edi
punpckldq xmm0, xmm1
add esi, dword [eax]
adc edx, dword [eax + 4]
mov dword [eax], esi
mov dword [esp + 0xc], esi
mov dword [eax + 4], edx
mov dword [esp + 0x14], edx
mov edx, dword [eax + 8]
mov esi, dword [eax + 0xc]
add edx, dword [ebx + 8]
adc esi, dword [ebx + 0xc]
mov dword [eax + 8], edx
mov dword [esp + 8], edx
mov dword [eax + 0xc], esi
mov dword [esp + 4], esi
mov edx, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
movd xmm3, dword [esp + 4]
add edx, dword [ebx + 0x10]
adc ecx, dword [ebx + 0x14]
mov dword [eax + 0x10], edx
mov dword [esp + 0x18], edx
movd xmm4, dword [esp + 0x18]
mov dword [eax + 0x14], ecx
mov dword [esp + 0x10], ecx
movq xmm1, qword [ebx + 0x18]
movdqu xmm2, xmmword [eax + 0x18]
movd xmm5, dword [esp + 0x10]
punpcklqdq xmm1, xmm0
movd xmm0, dword [esp + 8]
punpckldq xmm4, xmm5
paddq xmm1, xmm2
movdqu xmmword [eax + 0x18], xmm1
pshufd xmm1, xmm1, 0x4e
mov ecx, dword [eax + 0x28]
mov edx, dword [eax + 0x2c]
punpckldq xmm0, xmm3
punpcklqdq xmm0, xmm4
add ecx, dword [ebx + 0x28]
adc edx, dword [ebx + 0x2c]
mov dword [eax + 0x28], ecx
mov dword [esp + 0x20], ecx
movd xmm2, dword [esp + 0x20]
mov dword [eax + 0x2c], edx
mov dword [esp + 0x1c], edx
mov edx, ebx
mov esi, dword [eax + 0x30]
mov edi, dword [eax + 0x34]
movd xmm6, dword [esp + 0x1c]
add esi, dword [ebx + 0x30]
punpckldq xmm2, xmm6
adc edi, dword [ebx + 0x34]
mov dword [eax + 0x30], esi
movd xmm7, esi
mov dword [eax + 0x34], edi
movd xmm3, edi
mov ebx, dword [eax + 0x38]
mov ecx, dword [eax + 0x3c]
punpckldq xmm7, xmm3
punpcklqdq xmm2, xmm7
add ebx, dword [edx + 0x38]
adc ecx, dword [edx + 0x3c]
mov edx, dword [esp + 0x24]
mov dword [eax + 0x38], ebx
sub edx, 0xffffff80
cmp dword [esp + 0x2c], 0
mov dword [eax + 0x3c], ecx
jne 0x47a760
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret