Function at 0x417260
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, 0xa8
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x10], 0xfb44f9aa
mov dword [esp + 0x14], 0xff59fd6b
mov dword [esp + 0x18], 0xf36cf15d
mov dword [esp + 0x1c], 0xf733f512
mov dword [esp + 0x20], 0xeb7ce97e
mov dword [esp + 0x24], 0xef72ed4d
mov dword [esp + 0x28], 0xe37be17b
mov dword [esp + 0x2c], 0xe77ae573
mov dword [esp + 0x30], 0xdb6dd906
mov dword [esp + 0x34], 0xdf48dd7d
mov dword [esp + 0x38], 0xd34bd14a
mov dword [esp + 0x3c], 0xd74dd54c
mov dword [esp + 0x40], 0xcb64c943
lea eax, [esp + 0x44]
mov dword [esp + 0x44], 0xcdca
mov byte [esp + 0x48], 0
mov dword [esp + 0x50], 0
mov ecx, dword [esp + 0x50]
cmp ecx, 0x38
ja 0x41734c
nop
nop
nop
nop
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x50]
movzx edx, byte [esp + edx + 0x10]
lea esi, [ecx + edx]
add esi, 0xc7ef887f
add ecx, 0xc7ef887f
and ecx, edx
add ecx, ecx
mov edx, ecx
xor edx, esi
not ecx
and ecx, esi
add ecx, ecx
sub ecx, edx
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x6c]
add cl, 0x87
mov edx, dword [esp + 0x50]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0x50]
mov ecx, dword [esp + 0x50]
cmp ecx, 0x39
jb 0x417300
lea edi, [esp + 0x6c]
lea edx, [esp + 0x10]
mov ecx, 0xd
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xa0]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov esi, dword [ebx + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x417380
mov ecx, dword [ebp + 0x10]
mov edi, dword [ecx + 4]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x4173a0
sar eax, 1
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x1b
test edx, edx
jns 0x4173c0
mov eax, 0xffffffff
jmp 0x4173c7
add eax, ecx
add eax, eax
add eax, 0x36
push eax
call fcn.00408cd0
add esp, 4
movzx ecx, word [esi]
mov dword [esp + 8], eax
test cx, cx
je 0x417401
add esi, 2
mov eax, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x4173f0
mov word [eax], 0
movzx ecx, word [esp + 0x6c]
test cx, cx
je 0x417431
lea edx, [esp + 0x6e]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x417420
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
je 0x417461
add edi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x417450
mov word [eax], 0
mov dword [esp + 0x10], 0x33f7310f
mov dword [esp + 0x14], 0x37c235bc
mov dword [esp + 0x18], 0xcb34c92d
mov dword [esp + 0x1c], 0xcf37cd3f
mov dword [esp + 0x20], 0xc33cc13f
mov dword [esp + 0x24], 0xc7f9c537
lea eax, [esp + 0x28]
mov word [esp + 0x28], 0xd9d8
mov dword [esp + 0x2a], 0
mov dword [esp + 0x2e], 0
mov dword [esp + 0x32], 0
mov word [esp + 0x36], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x27
ja 0x417517
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x10]
lea esi, [ecx + edx]
add ecx, 0x78
and ecx, edx
add ecx, ecx
sub esi, ecx
add esi, 0x4c0f3578
mov dword [esp + 0x50], esi
mov ecx, dword [esp + 0x50]
mov edx, ecx
xor edx, 0xb7
and ecx, 0x37
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp]
mov byte [esp + edx + 0x10], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x28
jb 0x4174d0
lea edi, [esp + 0x50]
lea edx, [esp + 0x10]
mov ecx, 6
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x68]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [ebx]
mov eax, 0xfffffffe
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x417540
mov esi, dword [ebx + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x417560
mov edx, dword [ebp + 0x10]
mov ebx, dword [edx]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + edx + 2], 0
lea edx, [edx + 2]
jne 0x417580
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xe
test eax, eax
jns 0x4175a4
mov eax, 0xffffffff
jmp 0x4175ac
add ecx, edx
lea eax, [ecx + ecx]
add eax, 0x1c
push eax
call fcn.00408cd0
add esp, 4
movzx ecx, word [edi]
mov dword [esp + 0xc], eax
test cx, cx
je 0x4175e1
add edi, 2
mov eax, dword [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x4175d0
mov word [eax], 0x2f
add eax, 2
movzx ecx, word [esi]
test cx, cx
je 0x417611
add esi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x417600
mov word [eax], 0
movzx ecx, word [esp + 0x50]
test cx, cx
je 0x417643
lea edx, [esp + 0x52]
mov esi, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x417630
jmp 0x417647
mov esi, dword [esp + 8]
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x417671
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x417660
mov word [eax], 0
mov dword [esp + 0x10], 0x23222d12
mov dword [esp + 0x14], 0
mov dword [esp + 0x17], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xa
ja 0x4176d1
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x10]
add eax, 0xa253d8a6
xor eax, ecx
mov dword [esp], eax
mov eax, dword [esp]
add al, 0x76
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xb
jb 0x4176a0
push 0
push 0
push 0xc00000
lea eax, [esp + 0x1c]
push eax
push esi
push dword [esp + 0x20]
push dword [ebp + 8]
call fcn.00419c40
add esp, 0x1c
mov ebx, eax
jmp dword [0x440ba4]