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

Disassembly:
sub esp, 0x8d4
push ebx
push ebp
push esi
mov dword [esp + 0x30], ecx
xor ebx, ebx
push edi
lea ecx, [esp + 0x238]
mov dword [esp + 0x230], 0x648ac8e4
call fcn.6427adb6
lea eax, [esp + 0x1a5]
push eax
call fcn.64278e6b
mov edi, 0x8b
mov ebp, eax
push edi
lea eax, [esp + 0x11e]
mov dword [esp + 0x18], ebp
push ebx
push eax
call fcn.642922b1
mov dword [esp + 0x3c], ebp
lea eax, [esp + 0x126]
add esp, 0xc
mov dword [esp + 0x10], eax
mov edx, 0x6f5828c7
lea esi, [edi - 3]
mov ebp, ebx
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + ebp]
mov eax, dword [esp + 0x10]
xor ecx, edx
mov dword [eax + ebp], ecx
add ebp, 4
imul eax, edx, 0x41c64e6d
mov edx, 0xffffcfc6
sub edx, eax
cmp ebp, esi
jb 0x64278a0b
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x11a]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
mov cl, byte [eax + esi]
mov eax, dword [esp + 0x10]
xor cl, dl
shr edx, 8
mov byte [eax + esi], cl
inc esi
cmp esi, edi
jb 0x64278a42
lea eax, [esp + 0x11a]
push eax
lea ecx, [esp + 0x7c]
call fcn.64273ffe
lea eax, [esp + 0x11a]
mov byte [eax], bl
inc eax
sub edi, 1
jne 0x64278a72
push 2
push 0x648ac8c4
lea ecx, [esp + 0x80]
call fcn.64273923
movaps xmm0, xmmword [0x648aea00]
lea edi, [esp + 0x67]
xor eax, eax
mov byte [esp + 0xa1], 0x15
stosd dword es:[edi], eax
mov edx, 0x81b98f25
movups xmmword [esp + 0x91], xmm0
mov esi, ebx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosb byte es:[edi], al
lea eax, [esp + 0x91]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x67]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + esi]
mov eax, dword [esp + 0x10]
xor ecx, edx
mov dword [eax + esi], ecx
add esi, 4
imul eax, edx, 0x343fd
mov edx, 0xffd9613c
sub edx, eax
cmp esi, 0x10
jb 0x64278ac9
lea eax, [esp + 0x91]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x67]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
mov cl, byte [eax + 0x10]
mov eax, dword [esp + 0x10]
xor cl, dl
mov byte [eax + 0x10], cl
lea eax, [esp + 0x67]
push eax
lea ecx, [esp + 0xd4]
call fcn.64273ffe
mov esi, eax
cmp dword [esi + 0x14], 0x10
jb 0x64278b2c
mov esi, dword [esi]
xor eax, eax
mov dword [esp + 0x23], 0x64d4731f
inc eax
mov dword [esp + 0x27], 0x9bd3c22
mov byte [esp + 0x2e], al
lea edi, [esp + 0x5a]
xor eax, eax
mov word [esp + 0x2b], 0x7c89
stosd dword es:[edi], eax
mov edx, 0x10ba1c5c
mov byte [esp + 0x2d], 0xd0
mov byte [esp + 0x2f], pe_nt_image_headers32
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosb byte es:[edi], al
lea eax, [esp + 0x23]
mov dword [esp + 0x14], eax
mov edi, ebx
lea eax, [esp + 0x5a]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + edi]
mov eax, dword [esp + 0x10]
xor ecx, edx
mov dword [eax + edi], ecx
mov ecx, edx
shr ecx, 7
add edi, 4
xor ecx, edx
mov eax, ecx
shl eax, 9
xor ecx, eax
mov edx, ecx
shr edx, 0xd
xor edx, ecx
ror edx, 3
cmp edi, 0xc
jb 0x64278b75
lea eax, [esp + 0x23]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x5a]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
mov cl, byte [eax + 0xc]
mov eax, dword [esp + 0x10]
xor cl, dl
mov byte [eax + 0xc], cl
lea eax, [esp + 0x5a]
push eax
lea ecx, [esp + 0xbc]
call fcn.64273ffe
cmp dword [eax + 0x14], 0x10
jb 0x64278bde
mov eax, dword [eax]
push esi
push eax
lea ecx, [esp + 0x238]
call fcn.64274602
lea ecx, [esp + 0xb8]
call fcn.64273636
push 0xd
pop ecx
lea eax, [esp + 0x5a]
mov byte [eax], bl
inc eax
sub ecx, 1
jne 0x64278bff
lea ecx, [esp + 0xd0]
call fcn.64273636
push 0x11
pop ecx
lea eax, [esp + 0x67]
mov byte [eax], bl
inc eax
sub ecx, 1
jne 0x64278c1a
xor eax, eax
movaps xmm0, xmmword [0x648aea30]
lea edi, [esp + 0xa2]
mov dword [esp + 0x54], 0x3ce4966
stosd dword es:[edi], eax
mov edx, 0x8203aa63
movups xmmword [esp + 0x44], xmm0
mov word [esp + 0x58], 0xa30f
push 0x14
stosd dword es:[edi], eax
pop esi
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [esp + 0x44]
mov dword [esp + 0x14], eax
mov edi, ebx
lea eax, [esp + 0xa2]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + edi]
mov eax, dword [esp + 0x10]
xor ecx, edx
imul edx, edx, 0x343fd
mov dword [eax + edi], ecx
add edi, 4
add edx, 0x269ec3
bswap edx
cmp edi, esi
jb 0x64278c6a
lea eax, [esp + 0x44]
mov dword [esp + 0x14], eax
lea eax, [esp + 0xa2]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
mov cl, byte [eax + esi]
mov eax, dword [esp + 0x10]
xor cl, dl
shr edx, 8
mov byte [eax + esi], cl
inc esi
cmp esi, 0x16
jb 0x64278ca2
lea eax, [esp + 0xa2]
push eax
lea ecx, [esp + 0x104]
call fcn.64273ffe
mov ebp, eax
cmp dword [ebp + 0x14], 0x10
jb 0x64278cda
mov ebp, dword [ebp]
xor eax, eax
mov dword [esp + 0x18], 0xc26c7c77
lea edi, [esp + 0x39]
mov dword [esp + 0x1c], 0xf9c8c175
stosd dword es:[edi], eax
mov edx, 0xb0090f22
mov word [esp + 0x20], 0x658a
mov byte [esp + 0x22], 0xd2
push 8
stosd dword es:[edi], eax
pop esi
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x18]
mov dword [esp + 0x14], eax
mov edi, ebx
lea eax, [esp + 0x39]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + edi]
mov eax, dword [esp + 0x10]
xor ecx, edx
mov dword [eax + edi], ecx
mov ecx, edx
shr ecx, 7
add edi, 4
xor ecx, edx
mov eax, ecx
shl eax, 9
xor ecx, eax
mov edx, ecx
shr edx, 0xd
xor edx, ecx
not edx
cmp edi, esi
jb 0x64278d1b
lea eax, [esp + 0x18]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x39]
push 0xb
mov dword [esp + 0x14], eax
pop edi
mov eax, dword [esp + 0x14]
mov cl, byte [eax + esi]
mov eax, dword [esp + 0x10]
xor cl, dl
shr edx, 8
mov byte [eax + esi], cl
inc esi
cmp esi, edi
jb 0x64278d5c
lea eax, [esp + 0x39]
push eax
lea ecx, [esp + 0xec]
call fcn.64273ffe
cmp dword [eax + 0x14], 0x10
jb 0x64278d8d
mov eax, dword [eax]
push ebp
push eax
lea ecx, [esp + 0x238]
call fcn.64274602
lea ecx, [esp + 0xe8]
call fcn.64273636
lea eax, [esp + 0x39]
mov byte [eax], bl
inc eax
sub edi, 1
jne 0x64278dab
lea ecx, [esp + 0x100]
call fcn.64273636
push 0x16
lea eax, [esp + 0xa6]
pop ecx
mov byte [eax], bl
inc eax
sub ecx, 1
jne 0x64278dc9
mov edx, dword [esp + 0x34]
mov eax, 0x9c4
push ebx
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x2c8], eax
mov ecx, dword [edx + 4]
sub ecx, dword [edx]
cmp dword [esp + 0x90], 0x10
push ecx
push dword [edx]
mov dword [esp + 0x2d4], eax
lea ecx, [esp + 0x23c]
lea eax, [esp + 0x84]
cmovae eax, dword [esp + 0x84]
push 0x1bb
push eax
call fcn.6427456f
test al, al
je 0x64278e3d
mov eax, dword [esp + 0x2bc]
add eax, 0xffffff38
movzx ebx, bl
cmp eax, 0x63
push 1
pop eax
cmovbe ebx, eax
lea ecx, [esp + 0x238]
call fcn.6427a6e6
lea ecx, [esp + 0x78]
call fcn.64273636
lea ecx, [esp + 0x238]
call fcn.6427ae92
pop edi
pop esi
pop ebp
mov al, bl
pop ebx
add esp, 0x8d4
ret