Function at 0x436e30
Capabilities:
Encode data using xor
Encrypt data using blowfish
Hash data using sha256

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1b0
mov ebx, dword [ebp + 0x10]
mov eax, dword [0x4c1074]
xor eax, ebp
mov dword [esp + 0x1a8], eax
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [esp + 0x10], eax
mov esi, dword [ebp + 0x18]
xor eax, eax
movsd xmm0, qword [edx + eax*8]
movsd qword [esp + eax*8 + 0xa0], xmm0
inc eax
cmp eax, 0x10
jne 0x436e5f
movups xmm0, xmmword [ecx + 0x20]
movaps xmmword [esp + 0x140], xmm0
movups xmm0, xmmword [ecx]
movups xmm1, xmmword [ecx + 0x10]
movaps xmmword [esp + 0x120], xmm0
mov dword [esp + 0x94], ecx
movupd xmm0, xmmword [ecx + 0x30]
movapd xmmword [esp + 0x150], xmm0
xor ebx, 0xade682d1
mov dword [esp + 0x2c], ebx
mov ebx, dword [ebp + 0x14]
xor ebx, 0x510e527f
xor dword [esp + 0x10], 0x2b3e6c1f
xor edi, 0x9b05688c
mov dword [esp + 0x20], edi
xor eax, eax
neg esi
sbb eax, eax
movaps xmmword [esp + 0x130], xmm1
xor eax, 0x1f83d9ab
mov dword [esp + 0x14], eax
xor esi, 0xfb41bd6b
mov dword [esp + 0x3c], esi
movdqa xmm2, xmmword [esp + 0x140]
movdqa xmm1, xmmword [esp + 0x120]
mov esi, dword [esp + 0x150]
mov edi, dword [esp + 0x154]
mov eax, dword [esp + 0x130]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x134]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x38], 0xa54ff53a
mov dword [esp + 0x80], 0x5f1d36f1
mov dword [esp + 0x44], 0x5be0cd19
mov dword [esp + 0x58], 0x137e2179
mov dword [esp + 0x50], 0x3c6ef372
mov dword [esp + 0x4c], 0xfe94f82b
mov dword [esp + 0x40], 0xbb67ae85
mov dword [esp + 0x70], 0x84caa73b
mov dword [esp + 0x1c], 0x6a09e667
mov dword [esp + 0x18], 0xf3bcc908
mov ecx, 0xffffff40
mov eax, dword [esp + 0x13c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x138]
mov dword [esp + 8], eax
mov dword [esp + 0x60], edi
mov dword [esp + 0x24], esi
mov dword [esp + 0xc], ecx
movzx eax, byte [ecx + 0x49b992]
movq xmm0, qword [esp + eax*8 + 0xa0]
movzx eax, byte [ecx + 0x49b990]
movq xmm3, qword [esp + eax*8 + 0xa0]
paddq xmm1, xmm2
punpcklqdq xmm3, xmm0
paddq xmm3, xmm1
pshufd xmm0, xmm3, 0x55
movd ecx, xmm0
xor ecx, ebx
mov dword [esp + 0x54], ecx
movd edx, xmm3
xor edx, dword [esp + 0x2c]
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x18]
add eax, ecx
mov ebx, eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
adc eax, edx
mov edi, eax
mov dword [esp + 0x1c], eax
pshufd xmm0, xmm3, 0xff
movd eax, xmm0
xor eax, dword [esp + 0x20]
mov dword [esp + 0x20], eax
pshufd xmm0, xmm3, 0xee
movd esi, xmm0
xor esi, dword [esp + 0x10]
mov dword [esp + 0x10], esi
pshufd xmm0, xmm2, 0x55
movd edx, xmm0
xor edx, edi
movd ecx, xmm2
xor ecx, ebx
mov edi, dword [esp + 0x70]
add edi, eax
mov dword [esp + 0x70], edi
mov eax, dword [esp + 0x40]
adc eax, esi
mov dword [esp + 0x40], eax
pshufd xmm0, xmm2, 0xff
movd ebx, xmm0
xor ebx, eax
movd xmm0, ebx
pshufd xmm1, xmm2, 0xee
movd ebx, xmm1
xor ebx, edi
movd xmm4, ebx
movd xmm5, edx
movd xmm2, ecx
mov esi, dword [esp + 0xc]
movzx eax, byte [esi + 0x49b993]
movq xmm6, qword [esp + eax*8 + 0xa0]
movzx eax, byte [esi + 0x49b991]
mov ebx, esi
movq xmm1, qword [esp + eax*8 + 0xa0]
punpckldq xmm4, xmm0
punpckldq xmm2, xmm5
punpcklqdq xmm2, xmm4
movdqa xmm4, xmm2
psllq xmm4, 0x28
psrlq xmm2, 0x18
movdqa xmm0, xmm2
movsd xmm0, xmm2
orpd xmm0, xmm4
punpcklqdq xmm1, xmm6
paddq xmm1, xmm3
paddq xmm1, xmm0
movd eax, xmm1
xor eax, dword [esp + 0x54]
pshufd xmm3, xmm1, 0x55
movd edx, xmm3
xor edx, dword [esp + 0x2c]
mov esi, eax
shld esi, edx, 0x10
mov dword [esp + 0x98], esi
shld edx, eax, 0x10
mov dword [esp + 0x9c], edx
mov edi, dword [esp + 0x18]
add edi, edx
mov dword [esp + 0x18], edi
mov ecx, dword [esp + 0x1c]
adc ecx, esi
mov dword [esp + 0x1c], ecx
pshufd xmm3, xmm0, 0x55
movd eax, xmm3
xor eax, ecx
movd ecx, xmm2
xor ecx, edi
mov edx, eax
shld edx, ecx, 1
mov dword [esp + 0x54], edx
shld ecx, eax, 1
mov dword [esp + 0x2c], ecx
pshufd xmm2, xmm1, 0xee
movd eax, xmm2
xor eax, dword [esp + 0x20]
pshufd xmm2, xmm1, 0xff
movd ecx, xmm2
xor ecx, dword [esp + 0x10]
mov edx, ecx
shld edx, eax, 0x10
mov dword [esp + 0x20], edx
shrd ecx, eax, 0x10
mov dword [esp + 0x10], ecx
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x24]
add edi, edx
mov ecx, dword [esp + 0x48]
adc ecx, dword [esp + 0x60]
movzx eax, byte [ebx + 0x49b994]
add edi, dword [esp + eax*8 + 0xa0]
adc ecx, dword [esp + eax*8 + 0xa4]
mov eax, dword [esp + 0x14]
xor eax, ecx
mov dword [esp + 0x14], eax
mov ebx, ecx
mov ecx, dword [esp + 0x3c]
xor ecx, edi
add dword [esp + 0x4c], eax
mov esi, dword [esp + 0x50]
adc esi, ecx
mov dword [esp + 0x50], esi
xor edx, dword [esp + 0x4c]
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x60]
xor eax, esi
mov esi, edx
shld esi, eax, 8
mov dword [esp + 0x3c], esi
mov edx, dword [esp + 0x24]
shld eax, edx, 8
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 0x49b995]
add edi, dword [esp + eax*8 + 0xa0]
adc ebx, dword [esp + eax*8 + 0xa4]
add edi, dword [esp + 0x60]
mov dword [esp + 0x34], edi
adc ebx, esi
mov dword [esp + 0x48], ebx
xor ecx, ebx
mov edx, dword [esp + 0x14]
xor edx, edi
mov eax, ecx
shld eax, edx, 0x10
mov dword [esp + 0x24], eax
shld edx, ecx, 0x10
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x5c]
add dword [esp + 8], ecx
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
adc edx, edi
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 0x49b996]
mov ebx, dword [esp + 8]
add ebx, dword [esp + eax*8 + 0xa0]
mov dword [esp + 8], ebx
movd xmm3, dword [esp + 0x4c]
adc edx, dword [esp + eax*8 + 0xa4]
movd xmm5, dword [esp + 0x50]
movd xmm6, dword [esp + 0x40]
movd xmm2, dword [esp + 0x10]
movd xmm4, dword [esp + 0x20]
punpckldq xmm4, xmm2
movd xmm2, dword [esp + 0x14]
movd xmm7, dword [esp + 0x24]
punpckldq xmm7, xmm2
movd xmm2, dword [esp + 0x70]
mov ebx, dword [esp + 0x44]
xor ebx, edx
mov esi, dword [esp + 0x58]
xor esi, dword [esp + 8]
mov eax, dword [esp + 0x80]
add eax, ebx
mov dword [esp + 0x80], eax
adc dword [esp + 0x38], esi
xor ecx, eax
xor edi, dword [esp + 0x38]
mov eax, ecx
shld eax, edi, 8
shld edi, ecx, 8
mov dword [esp + 0x28], edi
punpcklqdq xmm4, xmm7
mov ecx, dword [esp + 0xc]
movzx edi, byte [ecx + 0x49b997]
mov ecx, dword [esp + 8]
add ecx, dword [esp + edi*8 + 0xa0]
mov dword [esp + 8], ecx
movss xmm7, dword [esp + 0x60]
adc edx, dword [esp + edi*8 + 0xa4]
punpckldq xmm3, xmm5
mov ecx, dword [esp + 0x28]
add dword [esp + 8], ecx
adc edx, eax
mov dword [esp + 0x30], edx
xor esi, edx
xor ebx, dword [esp + 8]
mov edi, ebx
shld edi, esi, 0x10
mov dword [esp + 0x60], edi
movss xmm5, dword [esp + 0x3c]
shrd ebx, esi, 0x10
mov dword [esp + 0x44], ebx
mov edx, dword [esp + 0x80]
add edx, ebx
mov dword [esp + 0x80], edx
mov ecx, dword [esp + 0x38]
adc ecx, edi
mov dword [esp + 0x38], ecx
xor eax, ecx
mov ecx, dword [esp + 0x28]
xor ecx, edx
mov ebx, eax
shld ebx, ecx, 1
shld ecx, eax, 1
mov edx, ecx
mov dword [esp + 0x28], ecx
punpckldq xmm2, xmm6
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 0x49b99a]
movq xmm6, qword [esp + eax*8 + 0xa0]
punpcklqdq xmm2, xmm3
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 0x49b998]
movq xmm3, qword [esp + eax*8 + 0xa0]
paddq xmm2, xmm4
movss xmm4, dword [esp + 0x98]
movaps xmmword [esp + 0x70], xmm4
movlhps xmm5, xmm7
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 0x49b99c]
mov esi, dword [esp + 0x34]
add esi, dword [esp + eax*8 + 0xa0]
movd xmm7, dword [esp + 0x9c]
mov ecx, dword [esp + 0x48]
adc ecx, dword [esp + eax*8 + 0xa4]
add esi, edx
mov dword [esp + 0x34], esi
adc ecx, ebx
mov eax, dword [esp + 0x10]
xor eax, ecx
mov dword [esp + 0x10], eax
mov edx, ecx
mov edi, dword [esp + 0x20]
xor edi, esi
mov esi, dword [esp + 0x18]
add esi, eax
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x1c]
adc eax, edi
mov dword [esp + 0x1c], eax
xor ebx, eax
mov ecx, dword [esp + 0x28]
xor ecx, esi
mov eax, ecx
shld eax, ebx, 8
shrd ecx, ebx, 0x18
mov esi, ecx
shufps xmm0, xmm5, 0x2e
xorps xmm0, xmm2
movaps xmm4, xmm0
psrlq xmm4, 0x3f
movsd xmm4, xmm4
psllq xmm0, 1
movsd xmm0, xmm0
orpd xmm0, xmm4
mov ecx, dword [esp + 0xc]
movzx ebx, byte [ecx + 0x49b99d]
mov ecx, dword [esp + 0x34]
add ecx, dword [esp + ebx*8 + 0xa0]
movss xmm4, dword [esp + 0x60]
movaps xmmword [esp + 0x60], xmm4
adc edx, dword [esp + ebx*8 + 0xa4]
punpcklqdq xmm3, xmm6
add ecx, esi
adc edx, eax
mov dword [esp + 0x48], edx
xor edi, edx
mov dword [esp + 0x34], ecx
mov ebx, ecx
mov ecx, dword [esp + 0x10]
xor ecx, ebx
mov edx, ecx
shld edx, edi, 0x10
movd xmm5, dword [esp + 0x44]
shrd ecx, edi, 0x10
mov dword [esp + 0x10], ecx
mov edi, dword [esp + 0x18]
add edi, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], edx
adc ecx, edx
mov dword [esp + 0x1c], ecx
xor eax, ecx
mov ecx, esi
mov edx, dword [esp + 0x54]
mov dword [esp + 0x18], edi
xor ecx, edi
mov esi, eax
shld esi, ecx, 1
mov dword [esp + 0x28], esi
shld ecx, eax, 1
mov dword [esp + 0x5c], ecx
paddq xmm3, xmm1
mov ebx, dword [esp + 0x2c]
add dword [esp + 8], ebx
mov esi, dword [esp + 0x30]
adc esi, edx
movss xmm6, dword [esp + 0x38]
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 0x49b99e]
mov ecx, dword [esp + 8]
add ecx, dword [esp + eax*8 + 0xa0]
mov dword [esp + 8], ecx
adc esi, dword [esp + eax*8 + 0xa4]
mov dword [esp + 0x30], esi
punpckldq xmm7, xmmword [esp + 0x70]
mov eax, dword [esp + 0x14]
xor eax, esi
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x24]
xor esi, dword [esp + 8]
pshufd xmm1, xmm2, 0x55
movd ecx, xmm2
add ecx, eax
mov dword [esp + 0x70], ecx
movd edi, xmm1
adc edi, esi
mov eax, ebx
xor eax, ecx
xor edx, edi
mov ebx, eax
shld ebx, edx, 8
movss xmm4, dword [esp + 0x80]
shld edx, eax, 8
punpckldq xmm5, xmmword [esp + 0x60]
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 0x49b99f]
mov ecx, dword [esp + 8]
add ecx, dword [esp + eax*8 + 0xa0]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0xc]
movzx ecx, byte [ecx + 0x49b99b]
movsd xmm1, qword [esp + ecx*8 + 0xa0]
movaps xmmword [esp + 0x80], xmm1
mov ecx, dword [esp + 0x30]
adc ecx, dword [esp + eax*8 + 0xa4]
paddq xmm3, xmm0
punpcklqdq xmm5, xmm7
pxor xmm5, xmm3
movdqa xmm1, xmm5
psrlq xmm1, 0x20
movsd xmm1, xmm1
psllq xmm5, 0x20
movsd xmm5, xmm5
orpd xmm5, xmm1
add dword [esp + 8], edx
adc ecx, ebx
mov dword [esp + 0x30], ecx
mov eax, esi
xor eax, ecx
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x14]
xor ecx, dword [esp + 8]
mov esi, ecx
shld esi, eax, 0x10
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 0x49b999]
movq xmm1, qword [esp + eax*8 + 0xa0]
mov eax, dword [esp + 0x24]
shrd ecx, eax, 0x10
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x70]
add eax, ecx
mov dword [esp + 0x14], esi
adc edi, esi
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x40], edi
xor ebx, edi
mov dword [esp + 0x70], eax
xor edx, eax
mov eax, edx
shld eax, ebx, 1
shrd edx, ebx, 0x1f
movlhps xmm6, xmm4
movaps xmm4, xmm2
shufps xmm4, xmm6, 0x2e
paddq xmm4, xmm5
pxor xmm0, xmm4
movdqa xmm2, xmm0
psrlq xmm2, 0x18
movsd xmm2, xmm2
psllq xmm0, 0x28
movsd xmm0, xmm0
orpd xmm0, xmm2
punpcklqdq xmm1, xmmword [esp + 0x80]
paddq xmm1, xmm3
paddq xmm1, xmm0
pxor xmm5, xmm1
movdqa xmm2, xmm5
psrlq xmm2, 0x10
movsd xmm2, xmm2
psllq xmm5, 0x30
movsd xmm5, xmm5
orpd xmm5, xmm2
paddq xmm4, xmm5
pxor xmm0, xmm4
movdqa xmm2, xmm0
psrlq xmm2, 0x3f
movsd xmm2, xmm2
psllq xmm0, 1
movsd xmm0, xmm0
orpd xmm0, xmm2
pshufd xmm3, xmm0, 0xff
pshufd xmm6, xmm0, 0xee
movd xmm7, edx
movd xmm2, eax
punpckldq xmm2, xmm7
pshufd xmm7, xmm4, 0x55
movd edi, xmm3
pshufd xmm3, xmm4, 0xff
movd esi, xmm6
pshufd xmm6, xmm4, 0xee
movd dword [esp + 0x50], xmm7
pshufd xmm7, xmm5, 0x55
movd dword [esp + 0x38], xmm3
pshufd xmm3, xmm5, 0xff
movd dword [esp + 0x80], xmm6
pshufd xmm6, xmm5, 0xee
punpcklqdq xmm2, xmm0
movd dword [esp + 0x58], xmm5
movd dword [esp + 0x4c], xmm4
movd dword [esp + 0x44], xmm7
movd ebx, xmm3
movd dword [esp + 0x2c], xmm6
add ecx, 0x10
jne 0x436fa3
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], edx
movdqa xmmword [esp + 0x120], xmm1
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], ebx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x160], edx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x164], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x188], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x18c], ecx
mov edi, dword [esp + 0x70]
mov dword [esp + 0x168], edi
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x16c], ebx
movupd xmmword [esp + 0x148], xmm0
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x130], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x134], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x190], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x194], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x158], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x15c], ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x138], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x13c], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x198], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x19c], ecx
movd xmm0, edi
movd xmm2, ebx
movd xmm3, edx
movdqa xmmword [esp + 0x170], xmm4
punpckldq xmm0, xmm2
movd xmm2, eax
punpckldq xmm3, xmm2
punpcklqdq xmm3, xmm0
pxor xmm3, xmm1
mov ecx, dword [esp + 0x94]
movdqu xmm0, xmmword [ecx]
pxor xmm0, xmm3
movdqu xmmword [ecx], xmm0
xor eax, eax
movdqu xmm0, xmmword [esp + eax*8 + 0x130]
movdqu xmm1, xmmword [esp + eax*8 + 0x170]
pxor xmm1, xmm0
movdqu xmm0, xmmword [ecx + eax*8 + 0x10]
pxor xmm0, xmm1
movdqu xmmword [ecx + eax*8 + 0x10], xmm0
add eax, 2
cmp eax, 6
jne 0x437805
mov esi, 0x80
lea eax, [esp + 0x120]
push esi
push eax
call fcn.0046d418
add esp, 8
lea eax, [esp + 0xa0]
push esi
push eax
call fcn.0046d418
add esp, 8
mov ecx, dword [esp + 0x1a8]
xor ecx, ebp
call fcn.00475893
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret