Function at 0x491750
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, 0xc8
mov edi, ecx
lea ecx, [esp + 0x40]
lea eax, [esp + 0x84]
push 0x8ac350
push eax
push dword [ebp + 8]
call fcn.0049d8a0
add esp, 0xc
movzx ecx, byte [esp + 0x48]
cmp cl, 3
jne 0x491792
mov dword [edi], 2
jmp 0x491d1b
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 0x28]
test eax, eax
mov dword [esp + 0x24], eax
je 0x491857
mov dword [esp + 8], ecx
mov ecx, dword [esi]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x14], edi
xor ecx, 2
mov dword [esp + 0xc], eax
mov dword [esp + 4], edx
or ecx, dword [esi + 4]
jne 0x49185e
movdqu xmm0, xmmword [esi + 8]
mov ebx, dword [esp + 8]
xor eax, eax
lea ecx, [esp + 0x40]
lea edx, [esp + 0x1c]
pshufd xmm1, xmm0, 0x44
pshufd xmm2, xmm0, 0xee
cmp bl, 2
pxor xmm1, xmmword [str.uespemosarenegylmodnarodsetybdet]
pxor xmm2, xmmword [0x7d4a40]
setne al
mov dword [esp + 0x1c], eax
movdqu xmmword [esp + 0x40], xmm1
movdqu xmmword [esp + 0x50], xmm2
movdqu xmmword [esp + 0x60], xmm0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
push 4
call fcn.00481c80
add esp, 4
cmp bl, 2
jne 0x49189c
movzx eax, byte [esp + 0xc]
lea ecx, [esp + 0x40]
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], eax
push 4
jmp 0x4918b0
xor eax, eax
jmp 0x491d13
mov ebx, dword [esp + 8]
xor ecx, ecx
mov edx, 0x5635bc91
cmp bl, 2
setne cl
xor ecx, 0x84222325
mov eax, ecx
mul edx
cmp bl, 2
jne 0x491d23
mov edx, eax
movzx eax, byte [esp + 0xc]
xor edx, eax
mov al, 2
imul edx, edx, 0xffffbc91
mov dword [esp + 8], eax
jmp 0x491b76
test bl, bl
je 0x491d86
mov edx, dword [esp + 0xc]
lea ecx, [esp + 0x40]
push dword [esp + 4]
call fcn.00481c80
add esp, 4
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
movdqu xmm0, xmmword [esp + 0x48]
movdqu xmm3, xmmword [esp + 0x40]
shl eax, 0x18
xor edx, ecx
movdqa xmm5, xmm0
or eax, dword [esp + 0x74]
movd xmm4, edx
movd xmm2, edx
psrlq xmm5, 0x33
xor esi, eax
movd xmm1, esi
punpckldq xmm2, xmm1
punpcklqdq xmm1, xmm4
punpcklqdq xmm2, xmm3
shufps xmm1, xmm0, 0xe2
movaps xmm4, xmm1
paddq xmm2, xmm0
psllq xmm1, 0x10
psllq xmm0, 0xd
pshufd xmm3, xmm2, 0xff
psrlq xmm4, 0x30
movsd xmm0, xmm1
movdqa xmm1, xmm2
movd edx, xmm3
movsd xmm5, xmm4
orpd xmm0, xmm5
movd xmm3, edx
shufps xmm1, xmm3, 0x4e
xorpd xmm0, xmm2
shufps xmm1, xmm2, 0x42
movapd xmm2, xmm0
movapd xmm3, xmm0
psrlq xmm2, 0x2b
psrlq xmm3, 0x2f
paddq xmm1, xmm0
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0x11
movd esi, xmm1
psllq xmm2, 0x15
xor esi, ecx
movsd xmm0, xmm2
pshufd xmm2, xmm1, 0xff
movd edx, xmm2
pshufd xmm2, xmm1, 0x55
orpd xmm0, xmm3
movd xmm3, esi
movd edi, xmm2
xor edx, 0xff
xorpd xmm0, xmm1
xor edi, eax
movd xmm2, edx
movd xmm4, edi
shufpd xmm1, xmm2, 1
punpcklqdq xmm4, xmm3
movapd xmm3, xmm0
shufps xmm1, xmm0, 0xe2
shufps xmm3, xmm4, 0x24
movaps xmm4, xmm0
paddq xmm1, xmm3
psrlq xmm4, 0x33
pshufd xmm2, xmm1, 0xff
movd eax, xmm2
movaps xmm2, xmm0
psrlq xmm2, 0x30
movd xmm3, eax
movsd xmm4, xmm2
movaps xmm2, xmm0
psllq xmm0, 0xd
psllq xmm2, 0x10
movsd xmm0, xmm2
movdqa xmm2, xmm1
orpd xmm0, xmm4
shufps xmm2, xmm3, 0x4e
xorpd xmm0, xmm1
shufps xmm2, xmm1, 0x42
movapd xmm1, xmm0
movapd xmm3, xmm0
paddq xmm2, xmm0
psrlq xmm1, 0x2b
psrlq xmm3, 0x2f
movsd xmm3, xmm1
movdqa xmm1, xmm0
psllq xmm0, 0x11
psllq xmm1, 0x15
movsd xmm0, xmm1
pshufd xmm1, xmm2, 0xff
movd eax, xmm1
orpd xmm0, xmm3
movdqa xmm3, xmm2
movd xmm1, eax
xorpd xmm0, xmm2
shufps xmm3, xmm1, 0x4e
movapd xmm4, xmm0
shufps xmm3, xmm2, 0x42
psrlq xmm4, 0x33
paddq xmm3, xmm0
pshufd xmm1, xmm3, 0xff
movd eax, xmm1
movdqa xmm1, xmm0
psrlq xmm1, 0x30
movd xmm2, eax
movsd xmm4, xmm1
movdqa xmm1, xmm0
psllq xmm0, 0xd
psllq xmm1, 0x10
movsd xmm0, xmm1
movdqa xmm1, xmm3
orpd xmm0, xmm4
shufps xmm1, xmm2, 0x4e
xorpd xmm0, xmm3
shufps xmm1, xmm3, 0x42
movapd xmm2, xmm0
movapd xmm3, xmm0
paddq xmm1, xmm0
psrlq xmm2, 0x2b
psrlq xmm3, 0x2f
movsd xmm3, xmm2
movdqa xmm2, xmm0
psllq xmm0, 0x11
psllq xmm2, 0x15
movsd xmm0, xmm2
pshufd xmm2, xmm1, 0xff
orpd xmm0, xmm3
movd eax, xmm2
xorpd xmm0, xmm1
movd xmm3, eax
pshufd xmm2, xmm0, 0xff
movd eax, xmm2
pshufd xmm2, xmm0, 0xee
movd edx, xmm2
movapd xmm2, xmm1
shufpd xmm2, xmm3, 1
mov ecx, edx
shufps xmm2, xmm1, 0x42
shld ecx, eax, 0xd
shld eax, edx, 0xd
movd edx, xmm0
paddq xmm2, xmm0
pshufd xmm0, xmm0, 0x55
movd xmm1, ecx
movd esi, xmm0
movd xmm0, eax
shld esi, edx, 0x10
shl edx, 0x10
punpckldq xmm1, xmm0
movd xmm3, esi
movd xmm0, edx
punpckldq xmm0, xmm3
punpcklqdq xmm0, xmm1
pxor xmm0, xmm2
pshufd xmm1, xmm0, 0xee
paddq xmm1, xmm2
movdqa xmm2, xmm0
psrlq xmm0, 0x2f
psrlq xmm2, 0x2b
pshufd xmm0, xmm0, 0xee
movd eax, xmm1
pshufd xmm1, xmm1, 0x55
pxor xmm0, xmm2
movd ecx, xmm1
movd edx, xmm0
xor edx, ecx
xor edx, eax
mov esi, dword [ebp + 0xc]
movzx eax, word [esi + 0x38]
and edx, 0x7fff
mov ecx, dword [esi + 0x18]
mov edi, dword [esi + 0x1c]
mov dword [esp + 0x28], 0
mov ebx, edx
mov dword [esp + 0x18], edx
movzx eax, ax
mov dword [esp + 0x3c], ecx
and ebx, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x24]
mov esi, dword [esp + 4]
neg esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], esi
jmp 0x491bc9
inc dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
inc ebx
mov eax, ebx
nop dword [eax + eax]
mov ebx, eax
xor eax, eax
cmp ebx, edi
jae 0x491bd0
movzx eax, word [ecx + ebx*4]
cmp eax, 0xffff
je 0x491d0d
movzx ecx, word [ecx + ebx*4 + 2]
mov esi, ebx
mov edx, ecx
and edx, dword [esp + 0x2c]
sub esi, edx
and esi, dword [esp + 0x2c]
cmp dword [esp + 0x28], esi
ja 0x491d0d
mov edx, dword [esp + 0x18]
cmp cx, dx
jne 0x491bc0
cmp dword [esp + 0x24], eax
jbe 0x491e39
mov edx, dword [esp + 0x38]
imul ecx, eax, 0x34
mov dword [esp + 0x20], eax
cmp dword [edx + ecx + 0x20], 0
lea esi, [edx + ecx + 0x20]
mov dword [esp + 0x10], esi
je 0x491c74
cmp byte [esp + 8], 2
je 0x491bc0
cmp byte [esp + 8], 0
je 0x491c99
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x10]
cmp dword [eax + 8], ecx
jne 0x491bc0
push dword [esp + 4]
push dword [esp + 0x10]
mov eax, dword [esp + 0x18]
push dword [eax + 4]
call fcn.007be090
add esp, 0xc
test eax, eax
jne 0x491bc0
jmp 0x491cfe
cmp byte [esp + 8], 2
mov esi, dword [esp + 0x20]
jne 0x491bc0
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
cmp byte [eax + 4], cl
jne 0x491bc0
jmp 0x491e29
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0x10]
cmp dword [eax + 8], ecx
jne 0x491bc0
mov eax, dword [esp + 0x10]
mov edx, 0xffffffff
mov eax, dword [eax + 4]
mov dword [esp + 0x30], eax
nop word [eax + eax]
mov eax, dword [esp + 0x34]
lea ecx, [eax + edx]
cmp ecx, 0xffffffff
je 0x491cfe
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x30]
movzx ecx, byte [ecx + edx + 1]
movzx ecx, byte [ecx + 0x8ac350]
mov byte [esp + 0x10], cl
lea ecx, [edx + 1]
movzx eax, byte [esp + 0x10]
cmp al, byte [esi + edx + 1]
mov edx, ecx
je 0x491cc0
cmp ecx, dword [esp + 4]
jb 0x491bc0
mov edi, dword [esp + 0x14]
mov eax, 1
mov ecx, dword [esp + 0x20]
jmp 0x491d13
mov edi, dword [esp + 0x14]
xor eax, eax
mov dword [edi], eax
mov dword [edi + 4], ebx
mov dword [edi + 8], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x18], eax
imul eax, ecx, 0x9ffaac08
cmp byte [esp + 8], 0
lea esi, [edx + eax - 0x3d29b2dc]
je 0x491dc7
mov ebx, dword [esp + 4]
mov al, 1
mov dword [esp + 8], eax
test ebx, ebx
je 0x491e1d
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x18]
nop dword [eax]
movzx ecx, byte [edi]
imul esi, esi, 0x1b3
inc edi
xor ecx, edx
mov edx, 0x1b3
mov eax, ecx
shl ecx, 8
mul edx
add ecx, edx
mov edx, eax
add esi, ecx
dec ebx
jne 0x491d60
jmp 0x491b73
cmp dword [esp + 4], 0
je 0x4918b8
mov edi, dword [esp + 4]
mov esi, dword [esp + 0xc]
lea ebx, [esp + 0x1c]
nop dword [eax]
movzx eax, byte [esi]
inc esi
lea ecx, [esp + 0x40]
mov edx, ebx
movzx eax, byte [eax + 0x8ac350]
mov byte [esp + 0x1c], al
push 1
call fcn.00481c80
add esp, 4
dec edi
jne 0x491da0
jmp 0x4918b8
mov ebx, dword [esp + 4]
test ebx, ebx
je 0x491e15
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x18]
nop word [eax + eax]
movzx eax, byte [edi]
imul esi, esi, 0x1b3
inc edi
movzx ecx, byte [eax + 0x8ac350]
xor ecx, edx
mov edx, 0x1b3
mov eax, ecx
shl ecx, 8
mul edx
add ecx, edx
mov edx, eax
add esi, ecx
dec ebx
jne 0x491de0
mov dword [esp + 8], 0
jmp 0x491b73
mov dword [esp + 8], 0
mov esi, dword [ebp + 0xc]
mov edx, dword [esp + 0x18]
jmp 0x491b76
mov edi, dword [esp + 0x14]
mov eax, 1
mov ecx, esi
jmp 0x491d13
mov edx, dword [esp + 0x24]
mov ecx, eax
push 0x8ac1d0
call fcn.007c1be0
int3