Function at 0x47d900
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], edx
mov dword [esp + 0x20], ecx
test eax, eax
mov dword [esp + 0x24], eax
je 0x47de08
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
movdqu xmm1, xmmword [ecx + 0x18]
mov edx, dword [ecx + 4]
movupd xmm0, xmmword [ecx + 8]
movupd xmm2, xmmword [ecx + 0x28]
mov dword [esp], eax
mov eax, dword [ecx + 0x3c]
mov ecx, dword [ecx + 0x38]
pshufd xmm1, xmm1, 0x4e
nop dword [eax]
pshufd xmm3, xmm1, 0xee
movd dword [esp + 0x18], xmm1
pshufd xmm1, xmm1, 0xe5
movupd xmmword [esp + 0x2b8], xmm0
mov ebx, 0xffffff80
mov esi, edx
movq qword [esp + 0x2c8], xmm3
movupd xmmword [esp + 0x2d8], xmm2
mov dword [esp + 0x2e8], ecx
mov dword [esp + 0x2ec], eax
movd eax, xmm1
lea ecx, [esp + 0x2b0]
mov dword [esp + 0x10], ecx
nop
mov edx, dword [esp + 0x18]
mov edi, eax
mov dword [esp + 0xc], esi
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x14], ebx
mov esi, edx
shld edi, edx, 0x17
shld esi, eax, 0xe
xor edi, esi
mov esi, edx
shld esi, eax, 0x12
xor edi, esi
mov esi, eax
mov dword [esp + 8], edi
mov edi, edx
shld esi, edx, 0xe
shld edi, eax, 0x17
xor edi, esi
mov esi, eax
shld esi, edx, 0x12
xor edi, esi
mov esi, dword [ecx + ebx + 0x84]
mov ebx, dword [ecx + ebx + 0x80]
mov ecx, dword [esp + 0x10]
bswap esi
bswap ebx
mov dword [esp + 4], esi
mov esi, dword [esp + 0xc]
mov dword [ecx + 4], esi
mov esi, dword [esp]
mov dword [ecx], esi
mov esi, dword [esp + 4]
mov dword [ecx + 0x24], eax
mov dword [ecx + 0x20], edx
mov dword [ecx + 0x44], ebx
mov dword [ecx + 0x40], esi
mov esi, dword [ecx + 0x28]
and esi, edx
not edx
and edx, dword [ecx + 0x30]
xor edx, esi
mov esi, dword [ecx + 0x2c]
and esi, eax
not eax
and eax, dword [ecx + 0x34]
xor eax, esi
add edi, dword [esp + 4]
mov esi, dword [esp + 8]
adc esi, ebx
add edi, dword [ecx + 0x38]
adc esi, dword [ecx + 0x3c]
mov ebx, esi
mov esi, dword [esp + 0x14]
add edi, dword [esi + 0x5819e0]
adc ebx, dword [esi + 0x5819e4]
add edi, edx
mov esi, dword [esp + 0xc]
mov edx, dword [esp]
adc ebx, eax
mov eax, dword [ecx + 0x18]
mov dword [esp], edx
mov dword [esp + 8], ebx
add eax, edi
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 0x1c]
adc eax, ebx
mov ebx, edx
mov dword [esp + 0x1c], eax
mov eax, esi
shld eax, edx, 0x1e
mov dword [esp + 4], eax
mov eax, esi
shld eax, edx, 0x19
shld edx, esi, 4
xor eax, dword [esp + 4]
xor eax, edx
mov edx, ebx
shld edx, esi, 0x1e
mov esi, ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1c]
shld esi, ebx, 0x19
xor esi, edx
mov edx, ebx
mov ebx, dword [esp]
shld edx, ebx, 4
xor esi, edx
mov edx, dword [esp + 8]
add esi, edi
mov edi, dword [ecx + 0x10]
adc dword [esp + 4], edx
mov edx, dword [ecx + 8]
mov dword [esp + 8], edi
xor edi, edx
mov dword [esp + 0x2c], edx
mov edx, dword [ecx + 0xc]
and edi, ebx
mov ebx, dword [ecx + 0x14]
mov dword [esp], edx
mov edx, ebx
and ebx, dword [esp]
xor edx, dword [esp]
and edx, dword [esp + 0xc]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x2c]
xor ebx, dword [esp + 0xc]
and dword [esp + 8], edx
xor dword [esp + 8], edi
mov edx, dword [esp + 8]
add edx, esi
mov esi, ebx
adc esi, dword [esp + 4]
add ecx, 0xfffffff8
mov dword [esp], edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
add ecx, 8
mov ebx, ecx
jne 0x47d9a0
dec dword [esp + 0x24]
lea ebx, [esp + 0x230]
mov ecx, esi
mov dword [esp + 0x14], 0xfffffe00
nop word cs:[eax + eax]
nop
movq xmm1, qword [ebx + 0x50]
movq xmm0, qword [ebx + 0xb8]
mov edx, dword [ebx + 0x78]
mov esi, dword [ebx + 0x7c]
mov dword [esp + 0xc], ecx
punpcklqdq xmm0, xmm1
add edx, 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 esi, 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 edi, xmm0
pshufd xmm1, xmm0, 0xe5
add edi, edx
movd edx, xmm1
pshufd xmm1, xmm0, 0x4e
pshufd xmm0, xmm0, 0xe7
adc edx, esi
movd esi, xmm1
add esi, edi
mov edi, eax
mov dword [esp + 0x10], esi
movd esi, xmm0
adc esi, edx
mov edx, dword [esp + 0x18]
mov dword [esp + 4], esi
mov esi, edx
shld edi, edx, 0x17
shld esi, eax, 0xe
xor edi, esi
mov esi, edx
shld esi, eax, 0x12
xor edi, esi
mov esi, eax
mov dword [esp + 8], edi
mov edi, edx
shld esi, edx, 0xe
shld edi, eax, 0x17
xor edi, esi
mov esi, eax
shld esi, edx, 0x12
xor edi, esi
mov esi, ebx
mov ebx, dword [esp]
mov dword [esi + 4], ecx
mov ecx, esi
mov dword [esp + 0x1c], ecx
mov dword [esi], ebx
mov ebx, dword [esp + 0x10]
mov dword [esi + 0x20], edx
mov dword [esi + 0x24], eax
mov dword [esi + 0x40], ebx
mov ebx, dword [esp + 4]
mov dword [esi + 0x44], ebx
mov ebx, dword [esp + 0x14]
mov esi, dword [esi + 0x28]
and esi, edx
not edx
and edx, dword [ecx + 0x30]
xor edx, esi
mov esi, dword [ecx + 0x2c]
and esi, eax
not eax
and eax, dword [ecx + 0x34]
xor eax, esi
add edi, dword [esp + 0x10]
mov esi, dword [esp + 8]
adc esi, dword [esp + 4]
add edi, dword [ecx + 0x38]
adc esi, dword [ecx + 0x3c]
add edi, dword [ebx + 0x581be0]
adc esi, dword [ebx + 0x581be4]
add edi, edx
mov edx, dword [esp + 0xc]
adc esi, eax
mov eax, dword [ecx + 0x18]
mov ebx, edx
mov dword [esp + 8], esi
add eax, edi
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 0x1c]
mov ecx, dword [esp]
adc eax, esi
mov esi, edx
shld ebx, ecx, 0x19
shld esi, ecx, 0x1e
mov dword [esp + 4], esi
mov esi, edx
mov edx, ecx
xor ebx, dword [esp + 4]
mov dword [esp], edx
mov ecx, ebx
mov ebx, edx
shld ebx, esi, 4
xor ecx, ebx
mov ebx, edx
mov edx, dword [esp]
shld ebx, esi, 0x1e
shld edx, esi, 0x19
xor edx, ebx
mov ebx, esi
mov esi, dword [esp]
shld ebx, esi, 4
xor edx, ebx
add edx, edi
adc ecx, dword [esp + 8]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x1c]
mov edi, dword [ecx + 0x10]
mov esi, dword [ecx + 8]
mov ebx, edi
mov dword [esp + 4], esi
xor ebx, esi
mov esi, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x14]
and edi, dword [esp + 4]
and ebx, dword [esp]
mov dword [esp], esi
mov esi, ecx
xor esi, dword [esp]
and ecx, dword [esp]
xor edi, ebx
mov ebx, dword [esp + 0x1c]
and esi, dword [esp + 0xc]
xor ecx, esi
add edi, edx
adc ecx, dword [esp + 8]
add ebx, 0xfffffff8
add dword [esp + 0x14], 8
mov dword [esp], edi
jne 0x47db40
movd xmm1, dword [esp]
movd xmm0, ecx
mov ecx, dword [esp + 0x20]
movd xmm4, eax
sub dword [esp + 0x28], 0xffffff80
cmp dword [esp + 0x24], 0
punpckldq xmm1, xmm0
movq xmm0, qword [esp + 0x38]
movdqu xmm2, xmmword [ecx + 0x10]
punpcklqdq xmm1, xmm0
movdqu xmm0, xmmword [ecx]
paddq xmm0, xmm1
movdqu xmmword [ecx], xmm0
pshufd xmm5, xmm0, 0xe5
movd dword [esp], xmm0
movdqu xmm1, xmmword [esp + 0x40]
movd edx, xmm5
paddq xmm1, xmm2
movd xmm2, dword [esp + 0x18]
movdqu xmmword [ecx + 0x10], xmm1
shufpd xmm0, xmm1, 1
movdqu xmm3, xmmword [ecx + 0x20]
punpckldq xmm2, xmm4
movq xmm4, qword [esp + 0x58]
punpcklqdq xmm2, xmm4
paddq xmm2, xmm3
movdqu xmmword [ecx + 0x20], xmm2
movsd xmm1, xmm2
movdqu xmm3, xmmword [esp + 0x60]
movdqu xmm4, xmmword [ecx + 0x30]
paddq xmm4, xmm3
pshufd xmm6, xmm4, 0xe7
pshufd xmm5, xmm4, 0x4e
movdqu xmmword [ecx + 0x30], xmm4
shufpd xmm2, xmm4, 1
movd eax, xmm6
movd ecx, xmm5
jne 0x47d950
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret