Function at 0x489800
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 + 0x1c], ecx
test eax, eax
mov dword [esp + 0x20], eax
je 0x489d53
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 4]
movdqu xmm1, xmmword [eax + 0x18]
mov esi, dword [eax]
movdqu xmm0, xmmword [eax + 8]
movdqu xmm2, xmmword [eax + 0x28]
mov edi, dword [eax + 0x38]
mov dword [esp + 0xc], ecx
mov ecx, dword [eax + 0x3c]
pshufd xmm1, xmm1, 0x4e
nop dword [eax]
mov ebx, dword [esp + 0xc]
movdqu xmmword [esp + 0x2b8], xmm0
pshufd xmm0, xmm1, 0xee
mov dword [esp + 0x24], edx
lea eax, [esp + 0x2b0]
movd edx, xmm1
mov dword [esp + 0x18], 0xffffff80
movq qword [esp + 0x2c8], xmm0
pshufd xmm0, xmm1, 0xe5
movdqu xmmword [esp + 0x2d8], xmm2
mov dword [esp + 0x2e8], edi
mov dword [esp + 0x2ec], ecx
mov dword [esp + 0x14], eax
movd edi, xmm0
nop word cs:[eax + eax]
mov eax, edx
mov ecx, edi
mov dword [esp], esi
mov esi, ebx
mov dword [esp + 0xc], ebx
mov ebx, edi
shld eax, edi, 0xe
shld ecx, edx, 0x17
shld ebx, edx, 0xe
xor ecx, eax
mov eax, edx
shld eax, edi, 0x12
xor ecx, eax
mov eax, edx
shld eax, edi, 0x17
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x18]
xor eax, ebx
mov ebx, edi
shld ebx, edx, 0x12
xor eax, ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
mov ebx, dword [eax + ecx + 0x84]
mov ecx, dword [eax + ecx + 0x80]
mov eax, dword [esp + 0x14]
mov dword [eax + 4], esi
mov esi, dword [esp]
bswap ecx
bswap ebx
mov dword [esp + 0x10], ecx
mov dword [eax], esi
mov dword [eax + 0x24], edi
mov dword [eax + 0x20], edx
mov dword [eax + 0x44], ecx
mov dword [eax + 0x40], ebx
mov ecx, eax
mov esi, dword [eax + 0x28]
mov dword [esp + 0x14], ecx
and esi, edx
not edx
and edx, dword [eax + 0x30]
or edx, esi
mov esi, dword [eax + 0x2c]
and esi, edi
not edi
and edi, dword [eax + 0x34]
mov eax, dword [esp + 8]
or edi, esi
add eax, ebx
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0x18]
adc ebx, dword [esp + 0x10]
add eax, dword [ecx + 0x38]
adc ebx, dword [ecx + 0x3c]
add eax, dword [esi + 0x526000]
adc ebx, dword [esi + 0x526004]
add eax, edx
mov edx, dword [ecx + 0x18]
mov dword [esp + 8], eax
adc ebx, edi
add edx, eax
mov edi, dword [ecx + 0x1c]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp]
mov dword [esp + 4], ebx
adc edi, ebx
mov esi, eax
mov ebx, eax
shld esi, ecx, 0x1e
shld ebx, ecx, 0x19
xor ebx, esi
mov esi, ecx
shld esi, eax, 4
xor ebx, esi
mov esi, ecx
shld esi, eax, 0x1e
mov eax, ecx
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0xc]
shld eax, esi, 0x19
mov esi, dword [esp + 0xc]
xor eax, dword [esp + 0x10]
shld esi, ecx, 4
xor eax, esi
add eax, dword [esp + 8]
adc ebx, dword [esp + 4]
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x14]
mov esi, dword [ebx + 0x10]
mov eax, dword [ebx + 8]
mov ecx, esi
mov dword [esp + 0x10], eax
xor ecx, eax
mov eax, dword [ebx + 0xc]
and esi, dword [esp + 0x10]
and ecx, dword [esp]
mov dword [esp], eax
mov eax, dword [ebx + 0x14]
xor esi, ecx
mov ebx, eax
and eax, dword [esp]
xor ebx, dword [esp]
and ebx, dword [esp + 0xc]
xor eax, ebx
add esi, dword [esp + 8]
mov ebx, eax
adc ebx, dword [esp + 4]
add dword [esp + 0x14], 0xfffffff8
add dword [esp + 0x18], 8
jne 0x4898b0
mov ecx, dword [esp + 0x14]
dec dword [esp + 0x20]
mov dword [esp + 0xc], ebx
mov dword [esp], esi
mov dword [esp + 0x18], 0xfffffe08
jmp 0x489a47
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp], edx
add dword [esp + 0x18], 8
mov edx, dword [esp + 0x10]
add ecx, 0xfffffff8
movq xmm1, qword [ecx + 0x50]
movq xmm0, qword [ecx + 0xb8]
mov eax, dword [ecx + 0x78]
mov esi, ecx
mov dword [esp + 0x14], ecx
mov ebx, edi
punpcklqdq xmm0, xmm1
add eax, dword [ecx + 0xc0]
mov ecx, dword [ecx + 0x7c]
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 ecx, dword [esi + 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, ecx
movd ecx, xmm1
add ecx, esi
mov esi, edi
mov dword [esp + 4], ecx
movd ecx, xmm0
adc ecx, eax
mov eax, edx
shld ebx, edx, 0x17
shld esi, edx, 0xe
shld eax, edi, 0xe
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x14]
xor ebx, eax
mov eax, edx
shld eax, edi, 0x12
xor ebx, eax
mov eax, edx
shld eax, edi, 0x17
xor eax, esi
mov esi, edi
shld esi, edx, 0x12
xor eax, esi
mov esi, dword [esp]
mov dword [ecx], esi
mov esi, dword [esp + 0xc]
mov dword [ecx + 4], esi
mov esi, dword [esp + 4]
mov dword [ecx + 0x20], edx
mov dword [ecx + 0x24], edi
mov dword [ecx + 0x40], esi
mov esi, dword [esp + 8]
mov dword [ecx + 0x44], esi
mov esi, dword [ecx + 0x28]
and esi, edx
not edx
and edx, dword [ecx + 0x30]
or edx, esi
mov esi, dword [ecx + 0x2c]
and esi, edi
not edi
and edi, dword [ecx + 0x34]
or edi, esi
add eax, dword [esp + 4]
mov esi, ecx
adc ebx, dword [esp + 8]
add eax, dword [ecx + 0x38]
adc ebx, dword [ecx + 0x3c]
mov ecx, dword [esp + 0x18]
add eax, dword [ecx + 0x5261f8]
adc ebx, dword [ecx + 0x5261fc]
mov ecx, dword [esi + 0x18]
add eax, edx
mov edx, dword [esp + 0xc]
adc ebx, edi
mov edi, dword [esi + 0x1c]
mov esi, dword [esp]
add ecx, eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov ecx, edx
adc edi, ebx
shld ecx, esi, 0x1e
mov dword [esp + 4], ecx
mov ecx, edx
shld ecx, esi, 0x19
mov esi, dword [esp]
xor ecx, dword [esp + 4]
shld esi, edx, 4
xor ecx, esi
mov dword [esp + 4], ecx
mov ecx, dword [esp]
mov esi, ecx
shld ecx, edx, 0x19
shld esi, edx, 0x1e
xor ecx, esi
mov esi, edx
mov edx, dword [esp]
shld esi, edx, 4
xor ecx, esi
add ecx, eax
mov eax, dword [esp + 0x14]
adc dword [esp + 4], ebx
mov edx, dword [eax + 8]
mov esi, dword [eax + 0xc]
mov dword [esp + 8], edx
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov ebx, edx
and edx, dword [esp + 8]
xor ebx, dword [esp + 8]
and ebx, dword [esp]
mov dword [esp], esi
mov esi, eax
xor esi, dword [esp]
and eax, dword [esp]
xor edx, ebx
and esi, dword [esp + 0xc]
xor eax, esi
add edx, ecx
mov ecx, eax
adc ecx, dword [esp + 4]
cmp dword [esp + 0x18], 0
jne 0x489a30
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
movd xmm0, dword [esp + 0x10]
movd xmm1, edi
add edx, dword [eax]
punpckldq xmm0, xmm1
adc ecx, dword [eax + 4]
mov dword [eax], edx
mov dword [esp], edx
mov dword [eax + 4], ecx
mov dword [esp + 0xc], ecx
mov ecx, dword [eax + 8]
mov esi, dword [eax + 0xc]
add ecx, dword [ebx]
adc esi, dword [ebx + 4]
mov dword [eax + 8], ecx
mov dword [esp + 4], ecx
mov dword [eax + 0xc], esi
mov dword [esp + 0x18], esi
mov edx, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
movd xmm3, dword [esp + 0x18]
add edx, dword [ebx + 8]
adc ecx, dword [ebx + 0xc]
mov dword [eax + 0x10], edx
mov dword [esp + 0x10], edx
movd xmm4, dword [esp + 0x10]
mov dword [eax + 0x14], ecx
mov dword [esp + 8], ecx
movq xmm1, qword [ebx + 0x10]
movdqu xmm2, xmmword [eax + 0x18]
movd xmm5, dword [esp + 8]
punpcklqdq xmm1, xmm0
movd xmm0, dword [esp + 4]
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 + 0x20]
adc edx, dword [ebx + 0x24]
mov dword [eax + 0x28], ecx
mov dword [esp + 0x28], ecx
movd xmm2, dword [esp + 0x28]
mov dword [eax + 0x2c], edx
mov dword [esp + 0x2c], edx
mov esi, dword [eax + 0x30]
mov edx, dword [eax + 0x34]
movd xmm6, dword [esp + 0x2c]
add esi, dword [ebx + 0x28]
punpckldq xmm2, xmm6
adc edx, dword [ebx + 0x2c]
mov dword [eax + 0x30], esi
movd xmm7, esi
mov esi, dword [esp]
mov dword [eax + 0x34], edx
movd xmm3, edx
mov edx, dword [esp + 0x24]
mov edi, dword [eax + 0x38]
mov ecx, dword [eax + 0x3c]
punpckldq xmm7, xmm3
punpcklqdq xmm2, xmm7
add edi, dword [ebx + 0x30]
adc ecx, dword [ebx + 0x34]
sub edx, 0xffffff80
cmp dword [esp + 0x20], 0
mov dword [eax + 0x38], edi
mov dword [eax + 0x3c], ecx
jne 0x489850
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret