Function at 0x41d750
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x58
mov eax, dword [esp + 0x70]
mov esi, dword [eax + 4]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
cmp word [esi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x41d770
mov eax, dword [esp + 0x74]
mov edx, dword [eax + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
cmp word [edx + eax + 2], 0
lea eax, [eax + 2]
jne 0x41d790
mov dword [esp + 4], edx
sar ecx, 1
mov dword [esp + 0x50], ecx
sar eax, 1
mov dword [esp + 0x4c], eax
lea edx, [ecx + eax]
add eax, ecx
add eax, 0x1b
test eax, eax
mov dword [esp + 0x54], edx
jns 0x41d7c2
mov eax, 0xffffffff
jmp 0x41d7c9
lea eax, [edx*2 + 0x36]
push eax
call fcn.00408590
add esp, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0xc], 0x59865ba8
mov dword [esp + 0x10], 0x5dbb5fa9
mov dword [esp + 0x14], 0x51ae53bb
mov dword [esp + 0x18], 0x558d5770
mov dword [esp + 0x1c], 0x699e6bdc
mov dword [esp + 0x20], 0x6d9c6f93
mov dword [esp + 0x24], 0x619d6399
mov dword [esp + 0x28], 0x65946791
mov dword [esp + 0x2c], 0x79af7b44
mov dword [esp + 0x30], 0x7d8a7f83
mov dword [esp + 0x34], 0x718d7388
mov dword [esp + 0x38], 0x758f7782
mov dword [esp + 0x3c], 0x9e60b81
mov dword [esp + 0x40], 0xf08
mov byte [esp + 0x44], 0
mov edi, 0x99f48f0f
mov ecx, 0x660b70f0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + edi + 0x660b70fd]
mov eax, edi
and eax, ebp
add eax, eax
mov edx, ebp
sub edx, eax
add edx, edi
mov ebx, eax
sub ebx, ebp
add ebx, ecx
or ebx, 0xb4
or edx, 0xb4
add edx, ebx
add edx, ebp
sub edx, eax
add edx, edi
add dl, 2
mov byte [esp + edi + 0x660b70fd], dl
inc edi
dec ecx
cmp edi, 0x99f48f48
jne 0x41d860
movzx ecx, word [esi]
mov edx, dword [esp + 0x48]
mov eax, edx
test cx, cx
je 0x41d8d1
add esi, 2
mov eax, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x41d8c0
mov word [eax], 0
movzx ecx, word [esp + 0xc]
test cx, cx
je 0x41d901
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 0x41d8f0
mov word [eax], 0
mov edx, dword [esp + 4]
movzx ecx, word [edx]
test cx, cx
je 0x41d931
add edx, 2
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 0x41d920
mov word [eax], 0
mov eax, dword [esp + 0x70]
mov ebx, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x41d950
mov ecx, dword [esp + 0x70]
mov esi, dword [ecx + 8]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x41d970
mov edx, dword [esp + 0x74]
mov ebp, dword [edx]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebp + edx + 2], 0
lea edx, [edx + 2]
jne 0x41d990
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x13
test eax, eax
jns 0x41d9b4
mov eax, 0xffffffff
jmp 0x41d9bd
add ecx, edx
lea eax, [ecx*2 + 0x26]
push eax
call fcn.00408590
add esp, 4
mov edi, eax
movzx eax, word [ebx]
mov dword [esp + 4], edi
test ax, ax
je 0x41d9f1
add ebx, 2
mov edi, dword [esp + 4]
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ebx]
add ebx, 2
test ax, ax
jne 0x41d9e0
mov word [edi], 0x2f
mov dword [esp + 0xc], 0x2367215f
mov dword [esp + 0x10], 0x279225ac
mov dword [esp + 0x14], 0x3b84399d
mov dword [esp + 0x18], 0x3f873d8f
mov dword [esp + 0x1c], 0x338c318f
mov dword [esp + 0x20], 0x37493587
mov word [esp + 0x24], 0x908
mov dword [esp + 0x26], 0
mov word [esp + 0x2a], 0
mov eax, 0x13d7008
mov ebx, dword [esp + 0x48]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x13d6ffc]
xor ecx, eax
mov edx, ecx
and edx, 0x57
xor ecx, 0xd7
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax - 0x13d6ffc], cl
inc eax
cmp eax, 0x13d7028
jne 0x41da50
add edi, 2
movzx eax, word [esi]
test ax, ax
je 0x41daa1
add esi, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [esi]
add esi, 2
test ax, ax
jne 0x41da90
mov word [edi], 0
movzx eax, word [esp + 0xc]
test ax, ax
je 0x41dad1
lea ecx, [esp + 0xe]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41dac0
mov word [edi], 0
movzx eax, word [ebp]
test ax, ax
je 0x41db02
add ebp, 2
nop
nop
nop
nop
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 0x41daf0
mov word [edi], 0
mov dword [esp + 0xc], 0x333231ea
mov word [esp + 0x10], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x4c
xor cl, byte [esp + eax + 0xc]
add cl, 0x84
mov byte [esp + eax + 0xc], cl
inc eax
cmp eax, 6
jne 0x41db20
lea eax, [esp + 0xc]
push 0
push 0
push 0xc00000
push eax
push ebx
push dword [esp + 0x18]
push dword [esp + 0x84]
call fcn.00421fe0
add esp, 0x1c
mov byte [esp + 3], al
jmp dword [0x446c24]