Function at 0x416da0
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, 0xfffffff0
sub esp, 0xd0
mov dword [esp + 0x10], 0xebc815ba
mov dword [esp + 0x14], 0xef4de95b
mov dword [esp + 0x18], 0xe350ed49
mov dword [esp + 0x1c], 0xe73be102
mov dword [esp + 0x20], 0xfb50e56e
mov dword [esp + 0x24], 0xff4af941
mov dword [esp + 0x28], 0xf343fd4b
mov dword [esp + 0x2c], 0xf742f143
mov dword [esp + 0x30], 0xcb21f516
mov dword [esp + 0x34], 0xcf7cc971
mov dword [esp + 0x38], 0xc373cd7a
mov dword [esp + 0x3c], 0xc779c170
mov dword [esp + 0x40], 0xdb68c573
mov word [esp + 0x44], 0xd9da
mov dword [esp + 0x46], 0
mov dword [esp + 0x4a], 0
mov dword [esp + 0x4e], 0
mov dword [esp + 0x52], 0
mov dword [esp + 0x55], 0
mov dword [esp + 0x94], 0
mov eax, dword [esp + 0x94]
cmp eax, 0x48
ja 0x416ec3
nop
nop
nop
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x94]
movzx edx, byte [esp + ecx + 0x10]
lea ecx, [eax + edx]
add ecx, 0x627e677d
add eax, 0x627e677d
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
add al, 0x95
mov ecx, dword [esp + 0x94]
mov byte [esp + ecx + 0x10], al
mov eax, dword [esp + 0x94]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x94]
cmp eax, 0x49
jb 0x416e60
mov esi, dword [ebp + 0xc]
movzx ecx, word [esp + 0x10]
lea eax, [esp + 0x94]
test cx, cx
je 0x416ef1
lea edx, [esp + 0x12]
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x416ee0
mov ecx, dword [ebp + 0x10]
mov word [eax], 0
mov esi, dword [esi + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x416f10
sar eax, 1
mov edi, dword [ecx]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x416f30
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x1b
test edx, edx
jns 0x416f4e
mov eax, 0xffffffff
jmp 0x416f55
add eax, ecx
add eax, eax
add eax, 0x36
push eax
call fcn.00408540
add esp, 4
movzx ecx, word [esi]
mov ebx, eax
test cx, cx
je 0x416f81
add esi, 2
mov ebx, eax
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x416f70
mov dword [esp + 0x74], eax
mov word [ebx], 0
movzx ecx, word [esp + 0x94]
test cx, cx
je 0x416fb1
lea edx, [esp + 0x96]
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x416fa0
mov word [ebx], 0
movzx ecx, word [edi]
test cx, cx
je 0x416fe1
add edi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x416fd0
mov word [ebx], 0
mov dword [esp + 0x10], 0x239f21f7
mov dword [esp + 0x14], 0x1f901daa
mov dword [esp + 0x18], 0x1b8e1981
mov dword [esp + 0x1c], 0x178f1597
mov dword [esp + 0x20], 0x13861187
mov dword [esp + 0x24], 0xfdd0d9f
mov word [esp + 0x28], 0x90e
mov dword [esp + 0x2a], 0
mov word [esp + 0x2e], 0
mov dword [esp + 0x78], 0
mov eax, dword [esp + 0x78]
cmp eax, 0x1f
ja 0x417082
nop
nop
nop
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x78]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + ecx]
add edx, 0x2fd316db
add eax, 0x2fd316db
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
add al, 3
mov ecx, dword [esp + 0x78]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0x78]
mov eax, dword [esp + 0x78]
cmp eax, 0x20
jb 0x417040
movzx ecx, word [esp + 0x10]
test cx, cx
mov ebx, dword [ebp + 0xc]
lea eax, [esp + 0x78]
je 0x4170b1
lea edx, [esp + 0x12]
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 0x4170a0
mov word [eax], 0
mov esi, dword [ebx]
mov edi, 0xfffffffe
nop
nop
nop
cmp word [esi + edi + 2], 0
lea edi, [edi + 2]
jne 0x4170c0
mov eax, edi
and eax, 2
mov dword [esp + 0x70], eax
mov ebx, dword [ebx + 8]
mov edx, 0xfffffffe
nop
nop
nop
nop
cmp word [ebx + edx + 2], 0
lea edx, [edx + 2]
jne 0x4170e0
sar edi, 1
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x417100
mov dword [esp + 0x6c], ecx
xor edi, 1
sar edx, 1
sar eax, 1
mov ecx, dword [esp + 0x70]
or ecx, 0xd
add ecx, edi
add ecx, edx
add ecx, eax
jns 0x41712c
mov ecx, 0xffffffff
jmp 0x41712e
add ecx, ecx
push ecx
call fcn.00408540
add esp, 4
movzx edx, word [esi]
mov ecx, eax
test dx, dx
je 0x417161
add esi, 2
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [esi]
add esi, 2
test dx, dx
jne 0x417150
mov word [ecx], 0x2f
add ecx, 2
movzx edx, word [ebx]
test dx, dx
je 0x417191
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [ebx]
add ebx, 2
test dx, dx
jne 0x417180
mov word [ecx], 0
movzx edx, word [esp + 0x78]
test dx, dx
je 0x4171c1
lea esi, [esp + 0x7a]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [esi]
add esi, 2
test dx, dx
jne 0x4171b0
mov word [ecx], 0
mov esi, dword [esp + 0x6c]
movzx edx, word [esi]
test dx, dx
je 0x4171f1
add esi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [esi]
add esi, 2
test dx, dx
jne 0x4171e0
mov word [ecx], 0
mov dword [esp + 0x27], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x1310113c
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0x1a
ja 0x41727f
nop
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xc]
movzx edx, byte [esp + edx + 0x10]
mov esi, ecx
and esi, 0xf3e1a753
xor ecx, 0xf3e1a753
lea esi, [ecx + esi*2]
lea ecx, [esi + edx]
and esi, edx
add esi, esi
sub ecx, esi
add cl, 0xbb
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0x1b
jb 0x417240
lea ecx, [esp + 0x10]
push 0
push 0xc00000
push ecx
push dword [esp + 0x80]
push eax
push dword [ebp + 8]
call fcn.00417e90
add esp, 0x18
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret