Function at 0x41f310
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x50
mov ecx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x68]
mov ebx, dword [ebp + 4]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
cmp word [ebx + edx + 2], 0
lea edx, [edx + 2]
jne 0x41f330
mov edi, dword [ecx + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41f350
sar edx, 1
sar eax, 1
lea ecx, [edx + eax]
mov dword [esp + 0x48], eax
add eax, edx
add eax, 0x1b
test eax, eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x44], ecx
jns 0x41f37e
mov eax, 0xffffffff
jmp 0x41f385
lea eax, [ecx*2 + 0x36]
push eax
call fcn.004083f0
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 0xc], 0x9722993c
mov dword [esp + 0x10], 0x930d9507
mov dword [esp + 0x14], 0x8f1a9131
mov dword [esp + 0x18], 0x8b378d6c
mov dword [esp + 0x1c], 0x870a8900
mov dword [esp + 0x20], 0x83108519
mov dword [esp + 0x24], 0x7fe7810f
mov dword [esp + 0x28], 0x7be87def
mov dword [esp + 0x2c], 0x77d97998
mov dword [esp + 0x30], 0x73fe75e9
mov dword [esp + 0x34], 0x6ff771fc
mov dword [esp + 0x38], 0x6bf16dfe
mov dword [esp + 0x3c], 0x67c269e7
mov dword [esp + 0x40], 0x6564
mov eax, 0x18901be6
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x18901bda]
lea ecx, [eax - 0x18901b00]
and ecx, edx
add ecx, ecx
add edx, eax
mov esi, ecx
xor esi, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, esi
add cl, 0x82
mov byte [esp + eax - 0x18901bda], cl
inc eax
cmp eax, 0x18901c1e
jne 0x41f410
movzx ecx, word [ebx]
mov eax, dword [esp + 4]
test cx, cx
je 0x41f471
add ebx, 2
mov eax, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x41f460
mov word [eax], 0
movzx ecx, word [esp + 0xc]
test cx, cx
je 0x41f4a1
lea edx, [esp + 0xe]
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 0x41f490
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
je 0x41f4d1
add edi, 2
nop
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 0x41f4c0
mov word [eax], 0
mov esi, dword [ebp]
mov eax, 0xfffffffe
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41f4e0
mov ebp, dword [ebp + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebp + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x41f500
sar eax, 1
add eax, 0xd
mov edx, dword [esp + 0x6c]
mov ebx, dword [edx]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
cmp word [ebx + edx + 2], 0
lea edx, [edx + 2]
jne 0x41f520
sar ecx, 1
add eax, ecx
sar edx, 1
mov ecx, edx
and ecx, eax
xor edx, eax
lea eax, [edx + ecx*2]
add eax, 6
test eax, eax
jns 0x41f548
mov eax, 0xffffffff
jmp 0x41f552
lea eax, [edx + ecx*2]
lea eax, [eax*2 + 0xc]
push eax
call fcn.004083f0
add esp, 4
mov edi, eax
movzx eax, word [esi]
mov dword [esp + 8], edi
test ax, ax
je 0x41f581
add esi, 2
mov edi, dword [esp + 8]
mov word [edi], ax
add edi, 2
movzx eax, word [esi]
add esi, 2
test ax, ax
jne 0x41f570
mov word [edi], 0x2f
mov dword [esp + 0xc], 0x69a16bb5
mov dword [esp + 0x10], 0x6dfa6ff0
mov dword [esp + 0x14], 0x51c053c7
mov dword [esp + 0x18], 0x55f957c5
mov dword [esp + 0x1c], 0x59c85bc5
mov dword [esp + 0x20], 0x5d8f5fcd
mov word [esp + 0x24], 0x435c
mov dword [esp + 0x26], 0
mov byte [esp + 0x2a], 0
xor eax, eax
xor ecx, ecx
nop
nop
mov esi, eax
and esi, 0x2e
mov edx, ecx
xor edx, 0x97
add edx, esi
xor dl, byte [esp + ecx + 0xc]
add dl, 0xd
mov byte [esp + ecx + 0xc], dl
inc ecx
add eax, 2
cmp ecx, 0x1f
jne 0x41f5d0
add edi, 2
movzx eax, word [ebp]
test ax, ax
je 0x41f624
add ebp, 2
mov esi, dword [esp + 0x6c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ebp]
add ebp, 2
test ax, ax
jne 0x41f610
jmp 0x41f628
mov esi, dword [esp + 0x6c]
mov word [edi], 0
movzx eax, word [esp + 0xc]
test ax, ax
je 0x41f651
lea ecx, [esp + 0xe]
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41f640
mov word [edi], 0
movzx eax, word [ebx]
test ax, ax
je 0x41f681
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ebx]
add ebx, 2
test ax, ax
jne 0x41f670
mov word [edi], 0
mov dword [esp + 0xc], 0x111e1fc6
mov dword [esp + 0x10], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
and ecx, 5
mov edx, eax
xor edx, 0xc5
lea ecx, [edx + ecx*2]
xor cl, byte [esp + eax + 0xc]
add cl, 0x27
mov byte [esp + eax + 0xc], cl
add eax, 0x16a3ca77
mov ecx, eax
and ecx, 0xa
xor eax, 0xe95c358a
lea eax, [eax + ecx*2]
cmp eax, 8
jb 0x41f6a0
lea eax, [esp + 0xc]
push 0
push 0
push 0xc00000
push eax
mov ebx, dword [esp + 0x14]
push ebx
push dword [esp + 0x1c]
push dword [esp + 0x7c]
call fcn.00423590
add esp, 0x1c
mov byte [esp + 3], al
jmp dword [0x447dc4]