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

Disassembly:
sub esp, 0x2dc
push ebx
push ebp
push esi
xor eax, eax
mov dword [esp + 0xc], 0x9aa19a89
push edi
mov dword [esp + 0x14], 0xa296a79c
xorps xmm0, xmm0
movq xmm1, qword [esp + 0x10]
mov esi, ecx
punpcklbw xmm1, xmm0
mov edx, 0xff
psubw xmm1, xmmword [0x428f80]
pand xmm1, xmmword [0x428fb0]
mov word [esp + 0x78], ax
push 0x2a
pop eax
mov word [esp + 0x34], ax
xor eax, eax
mov dword [esp + 0x24], esi
xor ecx, ecx
movups xmmword [esp + 0x68], xmm1
mov word [esp + 0x36], ax
mov dword [esp + 0x18], 0xef06ffb8
mov byte [esp + 0x1c], 0xbd
movzx eax, byte [esp + ecx + 0x18]
add ax, 0x6d
and ax, dx
mov word [esp + ecx*2 + 0x4c], ax
inc ecx
cmp ecx, 5
jl 0x417896
xor eax, eax
lea edx, [esp + 0x68]
mov word [esp + 0x56], ax
mov ecx, esi
mov al, byte [0x42b9c0]
add al, 0x4e
mov byte [0x42b9dc], al
mov eax, dword [0x42b9e8]
xor eax, 0xa461
mov word [0x42b9c4], ax
lea eax, [esp + 0x34]
push 1
push eax
call fcn.0041db09
mov al, byte [0x42b9c4]
sub al, 0x74
mov byte [0x42b9b0], al
lea eax, [esp + 0x54]
push esi
push eax
call fcn.0042318b
movzx edx, word [0x42b9c4]
mov ebp, eax
mov eax, 0x522
mov dword [esp + 0x28], ebp
add dx, ax
add esp, 0x10
mov word [0x42b9c0], dx
test ebp, ebp
je 0x417d3b
mov cl, byte [0x42b9e8]
imul eax, edx, 0xbcfc
sub cl, 0x5b
mov byte [0x42b9b0], cl
mov edx, 0x54e1cc7b
xor ecx, ecx
inc ecx
mov word [0x42b9c0], ax
add eax, 0x51f8
mov word [0x42b9c4], ax
lea eax, [esp + 0x98]
push eax
push ebp
call fcn.0041568d
call eax
mov cl, byte [0x42b9c0]
mov esi, eax
add cl, 0x47
mov dword [esp + 0x3c], esi
mov byte [0x42b9dc], cl
mov edx, 0x17299c7b
xor ecx, ecx
inc ecx
call fcn.0041568d
mov bl, byte [0x42b9c0]
mov cl, bl
mov dword [esp + 0x40], eax
and cl, 0xa3
mov byte [0x42b9dc], cl
cmp esi, 0xffffffff
je 0x417d24
mov ebp, dword [esp + 0x24]
movzx ecx, cl
imul edx, ecx, 0xbb
sub bl, 0xe
mov word [esp + 0x20], 0x505
push 0x2e
pop eax
mov word [esp + 0x38], ax
xor eax, eax
mov word [esp + 0x3a], ax
xor ecx, ecx
mov al, byte [esp + ecx + 0x20]
xor al, 0x2b
movzx eax, al
mov word [esp + ecx*2 + 0x44], ax
inc ecx
cmp ecx, 2
jl 0x4179c6
xor eax, eax
movzx ecx, bl
mov word [esp + 0x48], ax
or dl, 0x9a
mov eax, 0xfe35
mov byte [0x42b9dc], dl
imul ecx, eax
mov eax, 0x2cb6
mov word [0x42b9c4], cx
movzx ecx, dl
or dl, 0xab
imul ecx, eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0xc8]
mov byte [0x42b9b0], dl
push eax
mov word [0x42b9c0], cx
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x417cc0
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0xc8]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x417cc0
movzx eax, byte [0x42b9dc]
mov ecx, 0x4028
sub ax, cx
mov cl, byte [0x42b9e8]
mov word [0x42b9c4], ax
movzx eax, cl
imul eax, eax, 0x8d
test byte [esp + 0x98], 0x10
mov byte [0x42b9b0], al
je 0x417ccc
lea eax, [ecx - 0x4a]
or cl, 0x7c
mov byte [0x42b9dc], al
lea eax, [esp + 0xc4]
push eax
mov byte [0x42b9b0], cl
call fcn.0040581e
pop ecx
cmp eax, 0x10
jne 0x417ccc
mov dword [esp + 0x10], 0xa68996df
xor ecx, ecx
mov word [esp + 0x14], 0x96df
mov byte [esp + 0x16], 0x89
mov al, byte [esp + ecx + 0x10]
xor al, 0xfa
movzx eax, al
mov word [esp + ecx*2 + 0x58], ax
inc ecx
cmp ecx, 7
jl 0x417ac4
xor eax, eax
mov word [esp + 0x66], ax
mov eax, dword [0x42b9e8]
add eax, 0xffffcdf6
movzx ecx, ax
mov word [0x42b9c4], ax
movzx eax, word [0x42b9c0]
and eax, 0x2f1d412a
mov dword [0x42b9e8], eax
lea eax, [ecx - 0x24a3]
movzx eax, ax
mov word [0x42b9c0], ax
movzx eax, al
imul eax, eax, 0x91
mov byte [0x42b9dc], al
movzx eax, cl
imul eax, eax, 0xc1
mov byte [0x42b9b0], al
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0x5c]
push ebp
push eax
call fcn.0042318b
movzx edx, byte [0x42b9b0]
mov edi, eax
xor edx, 0xd8788bc6
add esp, 0xc
mov dword [0x42b9e8], edx
xor edx, 0x389e
mov word [0x42b9c0], dx
test edi, edi
je 0x417ccc
mov dword [esp + 0x28], 0x49504938
xor ecx, ecx
mov dword [esp + 0x2c], 0x5145564b
mov ebx, 0xff
mov dword [esp + 0x30], 0x57500913
movzx eax, byte [esp + ecx + 0x28]
add ax, 0x1c
and ax, bx
mov word [esp + ecx*2 + 0x7c], ax
inc ecx
cmp ecx, 0xc
jl 0x417b8d
xor eax, eax
mov word [esp + 0x94], ax
movzx eax, word [0x42b9c4]
add eax, 0xd0ac8ce
and eax, 0x734be04c
mov dword [0x42b9e8], eax
mov eax, 0x6f4b
sub dx, ax
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0x80]
mov word [0x42b9c4], dx
push eax
call fcn.0042318b
mov dl, byte [0x42b9dc]
mov esi, eax
pop ecx
pop ecx
movzx ecx, word [0x42b9c4]
mov eax, 0x30e4
sub ecx, 0x2641bb21
xor dl, 0xb7
mov dword [0x42b9e8], ecx
movzx ecx, byte [0x42b9b0]
add cx, ax
mov byte [0x42b9dc], dl
mov word [0x42b9c4], cx
test esi, esi
je 0x417ca1
movzx ecx, word [0x42b9c0]
xor dl, 0xb1
push 0x2a
pop eax
and ecx, 0xb381b0c0
mov word [esp + 0x24], ax
xor eax, eax
mov byte [0x42b9dc], dl
mov word [esp + 0x26], ax
mov edx, esi
push 1
lea eax, [ecx - 0x5f]
or ecx, 0x2b7732e0
mov byte [0x42b9b0], al
lea eax, [esp + 0x28]
mov dword [0x42b9e8], ecx
mov ecx, edi
push eax
call fcn.0041db09
movzx eax, byte [0x42b9b0]
mov ecx, 0x34a3
add ax, cx
mov word [0x42b9c0], ax
mov al, byte [0x42b9c4]
or al, 0x26
push esi
mov byte [0x42b9b0], al
call fcn.004056f0
mov dl, byte [0x42b9dc]
add esp, 0xc
movzx ecx, dl
mov eax, 0x831a
imul ecx, eax
push edi
mov word [0x42b9c4], cx
call fcn.004056f0
mov esi, dword [esp + 0x40]
pop ecx
jmp 0x417ccc
mov al, byte [0x42b9b0]
or al, 0xeb
mov byte [0x42b9dc], al
lea eax, [esp + 0x98]
push eax
push esi
call dword [esp + 0x48]
test eax, eax
je 0x417cee
mov bl, byte [0x42b9dc]
mov dl, byte [0x42b9b0]
jmp 0x4179b5
movzx edx, byte [0x42b9b0]
mov eax, 0xeb29
imul edx, eax
xor ecx, ecx
mov al, byte [0x42b9e8]
inc ecx
add al, 0x76
push esi
mov byte [0x42b9b0], al
mov word [0x42b9c4], dx
mov edx, 0x83fbc401
call fcn.0041568d
call eax
mov ebp, dword [esp + 0x18]
mov eax, dword [0x42b9e8]
add eax, 0xffffb45c
push ebp
mov word [0x42b9c4], ax
call fcn.004056f0
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2dc
ret