Function at 0x4173d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xc0
mov dword [esp + 0x10], 0xb5e0da8
mov dword [esp + 0x14], 0x17b909bb
mov dword [esp + 0x18], 0x13a615b5
mov dword [esp + 0x1c], 0x1f531170
mov dword [esp + 0x20], 0x1ba61da4
mov dword [esp + 0x24], 0x67d419b5
mov dword [esp + 0x28], 0x63cb65db
mov dword [esp + 0x2c], 0x6fdc61d3
mov dword [esp + 0x30], 0x6b356d0c
mov dword [esp + 0x34], 0x77ca69c5
mov dword [esp + 0x38], 0x73db75c8
mov dword [esp + 0x3c], 0x7fd571c2
mov dword [esp + 0x40], 0x7bde7dc3
mov word [esp + 0x44], 0x7978
mov dword [esp + 0x46], 0
mov dword [esp + 0x4a], 0
mov dword [esp + 0x4d], 0
mov dword [esp + 0x84], 0
mov eax, dword [esp + 0x84]
cmp eax, 0x40
ja 0x4174d1
nop
nop
nop
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x84]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + ecx]
add edx, 0xd4a85faa
add eax, 0xd4a85faa
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, 0x5a
mov ecx, dword [esp + 0x84]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0x84]
mov eax, dword [esp + 0x84]
cmp eax, 0x41
jb 0x417480
mov esi, dword [ebp + 0xc]
movzx ecx, word [esp + 0x10]
lea eax, [esp + 0x84]
test cx, cx
je 0x417501
lea edx, [esp + 0x12]
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 0x4174f0
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 0x417520
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 0x417540
sar ecx, 1
lea edx, [eax + ecx]
add edx, 0x1b
test edx, edx
jns 0x41755e
mov eax, 0xffffffff
jmp 0x417565
add eax, ecx
add eax, eax
add eax, 0x36
push eax
call fcn.004088d0
add esp, 4
movzx ecx, word [esi]
mov ebx, eax
test cx, cx
je 0x417591
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 0x417580
mov dword [esp + 0x64], eax
mov word [ebx], 0
movzx ecx, word [esp + 0x84]
test cx, cx
je 0x4175c1
lea edx, [esp + 0x86]
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4175b0
mov word [ebx], 0
movzx ecx, word [edi]
test cx, cx
je 0x4175f1
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 0x4175e0
mov word [ebx], 0
mov dword [esp + 0x10], 0xdb67d98f
mov dword [esp + 0x14], 0xd75ad55c
mov dword [esp + 0x18], 0xd344d14d
mov dword [esp + 0x1c], 0xcf57cd5f
mov dword [esp + 0x20], 0xcb5cc95f
mov dword [esp + 0x24], 0xc791c557
mov word [esp + 0x28], 0xc1c0
mov dword [esp + 0x2a], 0
mov word [esp + 0x2e], 0
mov dword [esp + 0x68], 0
mov eax, dword [esp + 0x68]
cmp eax, 0x1f
ja 0x417675
nop
nop
nop
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x68]
add al, 0x64
xor al, byte [esp + ecx + 0x10]
add al, 0x44
mov ecx, dword [esp + 0x68]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0x68]
mov eax, dword [esp + 0x68]
cmp eax, 0x20
jb 0x417650
movzx ecx, word [esp + 0x10]
test cx, cx
mov edi, dword [ebp + 0xc]
lea eax, [esp + 0x68]
je 0x4176a1
lea edx, [esp + 0x12]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x417690
mov word [eax], 0
mov esi, dword [edi]
mov eax, 0xfffffffe
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x4176b0
mov ebx, dword [edi + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x4176d0
mov edx, dword [ebp + 0x10]
mov edi, dword [edx + 4]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + edx + 2], 0
lea edx, [edx + 2]
jne 0x4176f0
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0xe
test eax, eax
jns 0x417714
mov eax, 0xffffffff
jmp 0x41771c
add ecx, edx
lea eax, [ecx + ecx]
add eax, 0x1c
push eax
call fcn.004088d0
add esp, 4
movzx edx, word [esi]
mov ecx, eax
test dx, dx
je 0x417751
add esi, 2
mov ecx, eax
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 0x417740
mov word [ecx], 0x2f
add ecx, 2
movzx edx, word [ebx]
test dx, dx
je 0x417781
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 0x417770
mov word [ecx], 0
movzx edx, word [esp + 0x68]
test dx, dx
je 0x4177b1
lea esi, [esp + 0x6a]
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 0x4177a0
mov word [ecx], 0
movzx edx, word [edi]
test dx, dx
je 0x4177e1
add edi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x4177d0
mov word [ecx], 0
mov dword [esp + 0x1f], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x4340417c
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
cmp ecx, 0x12
ja 0x417854
nop
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx esi, byte [esp + ecx + 0x10]
lea ecx, [edx + esi]
add ecx, 0x4b
add edx, 0x4b
and edx, esi
add edx, edx
sub ecx, edx
add cl, 0xf3
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
cmp ecx, 0x13
jb 0x417820
lea ecx, [esp + 0x10]
push 0
push 0xc00000
push ecx
push dword [esp + 0x70]
push eax
push dword [ebp + 8]
call fcn.00418440
add esp, 0x18
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret