Function at 0x417d10
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x428
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov esi, 0xfffffffe
nop
nop
nop
nop
nop
nop
cmp word [eax + esi + 2], 0
lea esi, [esi + 2]
jne 0x417d30
sar esi, 1
lea ecx, [esp + 0x74]
push ecx
push 0
push 0
push esi
push eax
push 0
call dword [0x44cf38]
mov dword [esp + 0xf8], 0x91cecf29
mov word [esp + 0xfc], 0
mov byte [esp + 0xfe], 0
xor ecx, ecx
nop
lea edx, [ecx + ecx]
mov edi, edx
and edi, 0xa
mov ebx, ecx
xor ebx, 0x2d
add ebx, edi
xor bl, byte [esp + ecx + 0xf8]
add bl, 0x1f
mov byte [esp + ecx + 0xf8], bl
and edx, 2
mov edi, edx
and edi, ecx
xor edx, ecx
xor edx, 1
lea ecx, [edx + edi*2]
cmp ecx, 7
jb case.default.0x417db2
xor ecx, ecx
cmp eax, dword [esp + 0xf8]
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x446724]
mov ebx, dword [esp + 0x74]
test ebx, ebx
jns 0x417dc8
mov eax, 0xffffffff
jmp 0x417dcb
lea eax, [ebx + ebx]
push eax
call fcn.00408590
add esp, 4
lea ecx, [esp + 0x74]
push ecx
push ebx
mov dword [esp + 0x20], eax
push eax
push esi
mov eax, dword [ebp + 0xc]
push dword [eax + 4]
push 0
call dword [0x44cf38]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44672c]
xor eax, eax
jmp dword [0x446734]
push dword [esp + 0x18]
jmp 0x4184ed
jmp dword [0x446740]
mov eax, dword [esp + 0x74]
mov ecx, eax
add ecx, 0xd
jns 0x417e23
mov eax, 0xffffffff
jmp 0x417e2a
lea eax, [eax*2 + 0x1a]
push eax
call fcn.00408590
add esp, 4
mov esi, eax
mov dword [esp + 0xf8], 0x578249ac
mov dword [esp + 0xfc], 0x53ad55b5
mov dword [esp + 0x100], 0x5f7e51ac
mov dword [esp + 0x104], 0x5bb75d86
mov dword [esp + 0x108], 0x679959a6
mov dword [esp + 0x10c], 0x6391658d
mov dword [esp + 0x110], 0x6f6e6192
xor ebx, ebx
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
and dl, 0xc
mov eax, edx
or al, 2
mov ah, cl
shr ah, 1
and ah, 1
mul ah
mov dh, al
mov ah, cl
not ah
and ah, 2
mov al, dl
mul ah
add dh, dh
mov dl, bl
and dl, 0x1c
sub dh, dl
add dh, 0xc
movzx edx, dh
movzx eax, al
add eax, ecx
add eax, edx
add al, 2
xor al, byte [esp + ecx + 0xf8]
add al, 0xba
mov byte [esp + ecx + 0xf8], al
inc ecx
add ebx, 2
cmp ecx, 0x1c
jne 0x417e90
mov eax, dword [esp + 0x18]
movzx ecx, word [eax]
mov eax, esi
test cx, cx
je 0x417f11
mov eax, dword [esp + 0x18]
lea edx, [eax + 2]
mov eax, esi
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 0x417f00
mov word [eax], 0
movzx ecx, word [esp + 0xf8]
test cx, cx
je 0x417f41
lea edx, [esp + 0xfa]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x417f30
mov word [eax], 0
lea eax, [esp + 0x288]
push 0x60
push 3
push 0x120089
push eax
push esi
call fcn.00440330
add esp, 0x14
jmp case.0x417db2.7
mov word [eax], 0
lea eax, [esp + 0x288]
push 0x60
push 3
push 0x120089
push eax
push ebx
call fcn.00440330
add esp, 0x14
jmp dword [0x446744]
mov eax, dword [esp + 0x74]
mov ecx, eax
add ecx, 0xd
jns 0x417fb0
mov eax, 0xffffffff
jmp 0x417fb7
lea eax, [eax*2 + 0x1a]
mov ecx, dword [esp + 0x18]
lea edi, [ecx + 2]
push eax
call fcn.00408590
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 0xf8], 0x578249ac
mov dword [esp + 0xfc], 0x53ad55b5
mov dword [esp + 0x100], 0x5f7e51ac
mov dword [esp + 0x104], 0x5bb75d86
mov dword [esp + 0x108], 0x679959a6
mov dword [esp + 0x10c], 0x6391658d
mov dword [esp + 0x110], 0x6f6e6192
xor esi, esi
xor ebx, ebx
nop
nop
nop
nop
mov ecx, ebx
and cl, 0xc
mov eax, ecx
or al, 2
mov edx, ebx
shr dl, 1
and dl, 1
mul dl
mov edx, eax
mov ah, bl
not ah
and ah, 2
mov al, cl
mul ah
mov dh, al
add dl, dl
mov eax, esi
mov ecx, eax
and cl, 0x1c
sub dl, cl
add dl, 0xc
movzx ecx, dl
movzx eax, dh
add eax, ebx
add eax, ecx
add al, 2
xor al, byte [esp + ebx + 0xf8]
add al, 0xba
mov byte [esp + ebx + 0xf8], al
inc ebx
add esi, 2
cmp ebx, 0x1c
jne 0x418020
mov eax, dword [esp + 0x18]
movzx ecx, word [eax]
mov ebx, dword [esp + 4]
mov eax, ebx
test cx, cx
je 0x4180a1
mov eax, ebx
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 0x418090
mov word [eax], 0
movzx ecx, word [esp + 0xf8]
test cx, cx
je 0x417f70
lea edx, [esp + 0xfa]
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4180c0
jmp 0x417f70
call fcn.004085a0
add esp, 4
xor eax, eax
jmp case.0x417db2.1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret