Function at 0x417b90
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x98
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x20], 0xa32da102
mov dword [esp + 0x24], 0x9f0d9d2e
mov dword [esp + 0x28], 0x9b3b990c
mov dword [esp + 0x2c], 0x970b9503
mov dword [esp + 0x30], 0x930c9132
mov dword [esp + 0x34], 0x8f128d0d
mov dword [esp + 0x38], 0x8b07892d
mov dword [esp + 0x3c], 0x8708851e
lea eax, [esp + 0x40]
mov word [esp + 0x40], 0x8186
mov dword [esp + 0x42], 0
mov dword [esp + 0x46], 0
mov dword [esp + 0x4a], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x2d
ja 0x417c60
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x20]
mov esi, 0xe4
sub esi, ecx
add ecx, 0xa3966d1b
xor esi, ecx
and esi, edx
xor esi, ecx
mov dword [esp + 0x70], esi
mov ecx, dword [esp + 0x70]
add cl, 0x43
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x2e
jb 0x417c20
lea edi, [esp + 0x70]
lea edx, [esp + 0x20]
mov ecx, 8
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x90]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [ebx + 4]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax], 0
lea eax, [eax + 2]
jne 0x417c90
lea ecx, [edi + eax]
add ecx, 0xfffffffe
add eax, edi
mov edx, 1
sub edx, eax
and edx, edi
mov eax, edi
not eax
and eax, ecx
sub eax, edx
cmp eax, 0xffffffdd
jge 0x417cbf
mov eax, 0xffffffff
jmp 0x417cc2
add eax, 0x22
push eax
call fcn.00409030
add esp, 4
mov esi, eax
movzx ecx, word [edi]
test cx, cx
je 0x417cf1
add edi, 2
mov eax, esi
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x417ce0
mov word [eax], 0
movzx ecx, word [esp + 0x70]
test cx, cx
je 0x417d21
lea edx, [esp + 0x72]
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 0x417d10
mov word [eax], 0
mov eax, dword [ebp + 8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], esi
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebx
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], 0x6bf96df9
mov dword [esp + 0x24], 0x673369ee
mov dword [esp + 0x28], 0x63ea65f9
mov dword [esp + 0x2c], 0x9f0361ec
mov dword [esp + 0x30], 0x9b159d0e
mov dword [esp + 0x34], 0x97059901
mov dword [esp + 0x38], 0x93c59506
mov dword [esp + 0x3c], 0x8fd991c7
mov dword [esp + 0x40], 0x8be88dda
mov dword [esp + 0x44], 0x87098905
mov dword [esp + 0x48], 0x830c8519
mov dword [esp + 0x4c], 0xbf2d81ff
mov dword [esp + 0x50], 0xbb36bd2e
mov dword [esp + 0x54], 0xb73eb925
mov dword [esp + 0x58], 0xb3cbb538
mov dword [esp + 0x5c], 0xafebb12c
mov dword [esp + 0x60], 0xabaaadfa
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x4f
ja 0x417e3e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x20]
mov edx, 0x8d
sub edx, eax
add eax, 0x7d1ee272
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x1c]
add al, 0xe2
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x50
jb 0x417e00
lea eax, [esp + 8]
push eax
push 0x418170
lea eax, [esp + 0x28]
push eax
push esi
call fcn.004187f0
add esp, 0x10
jmp dword [0x43ced4]