Function at 0x419150
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x68
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
mov edi, dword [eax + 4]
mov edx, 0xfffffffe
nop
nop
nop
mov eax, edx
cmp word [edi + edx + 2], 0
lea edx, [edx + 2]
jne 0x419170
mov esi, dword [ecx + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x419190
sar edx, 1
sar eax, 1
lea ecx, [edx + eax]
mov dword [esp + 0x54], eax
add eax, edx
add eax, 0x1b
test eax, eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x50], ecx
mov dword [esp], esi
jns 0x4191c1
mov eax, 0xffffffff
jmp 0x4191c8
lea eax, [ecx*2 + 0x36]
push eax
call fcn.004081b0
add esp, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0xc], 0x633e610c
mov dword [esp + 0x10], 0x6705651b
mov dword [esp + 0x14], 0x7b067919
mov dword [esp + 0x18], 0x7f3b7d5c
mov dword [esp + 0x1c], 0x730671f8
mov dword [esp + 0x20], 0x77087511
mov dword [esp + 0x24], 0x8bf389fb
mov dword [esp + 0x28], 0x8ff08df3
mov dword [esp + 0x2c], 0x83d181a0
mov dword [esp + 0x30], 0x87f285e1
mov dword [esp + 0x34], 0x9be399ec
mov dword [esp + 0x38], 0x9ff99de2
mov dword [esp + 0x3c], 0x93fe91e3
mov dword [esp + 0x40], 0x9594
mov ebp, 0xcbb99d68
mov esi, 0x34466297
nop
movzx ebx, byte [esp + ebp + 0x344662a4]
mov edx, ebp
and edx, ebx
add edx, edx
sub edx, ebx
add edx, esi
and edx, ebp
mov eax, edx
or al, 0xfd
inc al
mov ecx, edx
and cl, 0xfd
mul cl
mov ecx, eax
add cl, bl
mov eax, edx
shr al, 1
and al, 1
or dl, 2
mul dl
add al, al
sub cl, al
movzx eax, cl
add eax, ebp
add al, 0xf8
mov byte [esp + ebp + 0x344662a4], al
inc ebp
dec esi
cmp ebp, 0xcbb99da0
jne 0x419250
movzx ecx, word [edi]
mov edx, dword [esp + 0x48]
mov eax, edx
test cx, cx
mov esi, dword [esp]
je 0x4192d1
add edi, 2
mov eax, edx
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 0x4192c0
mov word [eax], 0
movzx ecx, word [esp + 0xc]
test cx, cx
je 0x419303
lea edx, [esp + 0xe]
mov edi, dword [esp + 0x84]
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x4192f0
jmp 0x41930a
mov edi, dword [esp + 0x84]
mov word [eax], 0
movzx ecx, word [esi]
test cx, cx
je 0x419331
add esi, 2
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x419320
mov word [eax], 0
mov eax, dword [esp + 0x80]
mov esi, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x419350
mov ecx, dword [esp + 0x80]
mov ebx, dword [ecx + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
cmp word [ebx + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x419370
mov edi, dword [edi]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + edx + 2], 0
lea edx, [edx + 2]
jne 0x419390
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x13
test eax, eax
mov dword [esp + 8], ebx
jns 0x4193b8
mov eax, 0xffffffff
jmp 0x4193c1
add ecx, edx
lea eax, [ecx*2 + 0x26]
mov dword [esp], edi
push eax
call fcn.004081b0
add esp, 4
movzx ecx, word [esi]
mov edx, eax
test cx, cx
je 0x4193f1
add esi, 2
mov edx, eax
nop
nop
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x4193e0
mov dword [esp + 0x44], eax
mov dword [esp + 4], edx
mov word [edx], 0x2f
mov dword [esp + 0xc], 0xf73b09db
mov dword [esp + 0x10], 0xf36ef56c
mov dword [esp + 0x14], 0xff6cf15d
mov dword [esp + 0x18], 0xfb53fd63
mov dword [esp + 0x1c], 0xe774f96b
mov dword [esp + 0x20], 0xe331e57b
mov word [esp + 0x24], 0xe1e0
mov dword [esp + 0x26], 0
mov word [esp + 0x2a], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + eax + 0xc]
lea edx, [eax + 0x395513fe]
mov ecx, ebp
not ecx
and ecx, edx
mov esi, 1
sub esi, eax
mov ebx, ebp
and ebx, esi
mov edi, 0x46aaec01
sub edi, eax
or edi, ebx
or edi, ecx
not edi
add edi, edi
xor edx, edi
and edi, esi
add edi, edi
sub edx, edi
mov ecx, ebp
add dl, cl
add dl, 0xa
mov byte [esp + eax + 0xc], dl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x20
jb 0x419450
mov edx, dword [esp + 4]
add edx, 2
mov ecx, dword [esp + 8]
movzx eax, word [ecx]
test ax, ax
je 0x4194d3
add ecx, 2
mov esi, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4194c0
jmp 0x4194d6
mov esi, dword [esp]
mov word [edx], 0
movzx eax, word [esp + 0xc]
test ax, ax
je 0x419501
lea ecx, [esp + 0xe]
nop
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4194f0
mov word [edx], 0
movzx eax, word [esi]
test ax, ax
je 0x419531
add esi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], ax
add edx, 2
movzx eax, word [esi]
add esi, 2
test ax, ax
jne 0x419520
mov dword [esp + 4], edx
mov word [edx], 0
mov dword [esp + 0xc], 0x90a0b3a
mov word [esp + 0x10], 0
mov edx, 0x11b819c3
mov ecx, 0xcad7b2e7
mov dword [esp + 8], 0xb91f98f3
mov dword [esp + 0x4c], 0xee47e70c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp], edx
mov dword [esp + 0x64], ecx
movzx eax, byte [esp + edx - 0x11b819b7]
mov esi, dword [esp]
and esi, eax
mov edi, eax
mov ebx, esi
and ebx, 2
mov eax, esi
or eax, 0xfffffffd
inc eax
mov edx, esi
and edx, 0xffffffcd
mov ecx, esi
or ecx, 2
mov dword [esp + 0x60], ecx
imul ebx, ecx
imul edx, eax
lea ecx, [edx + edi]
mov dword [esp + 0x5c], edi
mov eax, ecx
sub eax, ebx
mov ebp, dword [esp]
add eax, ebp
add eax, 0xa7677f30
mov ebp, dword [esp + 8]
add ecx, ebp
sub ecx, ebx
sub ebx, edx
sub ebx, edi
mov edi, dword [esp + 0x4c]
add ebx, edi
or ebx, 1
xor eax, 1
add eax, ebx
lea eax, [eax + edx*2]
mov edx, dword [esp + 0x5c]
lea eax, [eax + edx*2]
shr esi, 1
and esi, 1
imul esi, dword [esp + 0x60]
shl esi, 2
sub eax, esi
mov edx, dword [esp]
and ecx, 0xfe
sub eax, ecx
mov ecx, dword [esp + 0x64]
add eax, ecx
mov byte [esp + edx - 0x11b819b7], al
inc edx
add ecx, 2
inc ebp
mov dword [esp + 8], ebp
dec edi
mov dword [esp + 0x4c], edi
cmp edx, 0x11b819c9
jne 0x419570
lea eax, [esp + 0xc]
push 0
push 0
push 0xc00000
push eax
mov esi, dword [esp + 0x58]
push esi
mov edi, dword [esp + 0x58]
push edi
push dword [esp + 0x94]
call fcn.0041d440
add esp, 0x1c
mov byte [esp], al
jmp dword [0x442ed0]