Function at 0x41d1f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x50
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x68]
mov ebp, dword [eax]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebp + eax], 0
lea eax, [eax + 2]
jne 0x41d210
add eax, ebp
add eax, 0xfffffffe
mov ecx, ebp
not ecx
and ecx, eax
xor eax, ebp
add ecx, ecx
sub ecx, eax
mov eax, dword [esp + 0x70]
mov ebx, dword [eax + 4]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax], 0
lea eax, [eax + 2]
jne 0x41d240
sar ecx, 1
add eax, ebx
add eax, 0xfffffffe
mov edx, ebx
not edx
and edx, eax
xor eax, ebx
add edx, edx
sub edx, eax
sar edx, 1
lea edi, [ecx + edx]
mov dword [esp + 0x48], edx
lea eax, [ecx + edx]
add eax, 0x1b
test eax, eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x44], edi
jns 0x41d27f
mov eax, 0xffffffff
jmp 0x41d286
lea eax, [edi*2 + 0x36]
push eax
call fcn.00409550
add esp, 4
mov dword [esp], eax
mov dword [esp + 8], 0xe9a6eb58
mov dword [esp + 0xc], 0xed4bef79
mov dword [esp + 0x10], 0xd17ed34b
mov dword [esp + 0x14], 0xd59dd7b0
mov dword [esp + 0x18], 0xd94edb4c
mov dword [esp + 0x1c], 0xdd4cdf73
mov dword [esp + 0x20], 0xc16dc349
mov dword [esp + 0x24], 0xc554c751
mov dword [esp + 0x28], 0xc97fcba4
mov dword [esp + 0x2c], 0xcd5acf63
mov dword [esp + 0x30], 0x319d3358
mov dword [esp + 0x34], 0x359f37a2
mov dword [esp + 0x38], 0x39863ba1
mov dword [esp + 0x3c], 0x3f38
mov eax, 0xbcd5e657
mov ecx, 0xa8
nop
nop
nop
nop
movzx edi, byte [esp + eax + 0x432a19b1]
mov edx, ecx
xor edx, eax
and edx, edi
xor edx, eax
add edx, 0xecb11e02
mov edi, edx
xor edi, 0xb5
and edx, 0x4a
add edx, edx
sub edx, edi
mov byte [esp + eax + 0x432a19b1], dl
inc eax
dec ecx
cmp eax, 0xbcd5e68f
jne 0x41d310
movzx ecx, word [ebp]
mov eax, dword [esp]
test cx, cx
je 0x41d372
add ebp, 2
mov eax, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [ebp]
add ebp, 2
test cx, cx
jne 0x41d360
mov word [eax], 0
movzx ecx, word [esp + 8]
test cx, cx
je 0x41d3a1
lea edx, [esp + 0xa]
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 0x41d390
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x41d3d1
add ebx, 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 [ebx]
add ebx, 2
test cx, cx
jne 0x41d3c0
mov word [eax], 0
mov edi, dword [esi]
xor eax, eax
nop
nop
nop
nop
nop
nop
cmp word [edi + eax], 0
lea eax, [eax + 2]
jne 0x41d3e0
lea ecx, [edi + eax]
add ecx, 0xfffffffe
mov eax, edi
not eax
and eax, ecx
xor ecx, edi
add eax, eax
sub eax, ecx
mov ecx, dword [esp + 0x6c]
mov ebp, dword [ecx + 4]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebp + ecx], 0
lea ecx, [ecx + 2]
jne 0x41d410
lea edx, [ecx + ebp]
add edx, 0xfffffffe
mov ecx, ebp
not ecx
and ecx, edx
xor edx, ebp
add ecx, ecx
sub ecx, edx
mov edx, dword [esp + 0x70]
mov ebx, dword [edx]
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + edx], 0
lea edx, [edx + 2]
jne 0x41d440
sar eax, 1
sar ecx, 1
lea esi, [ebx + edx]
add esi, 0xfffffffe
mov edx, ebx
not edx
and edx, esi
xor esi, ebx
add edx, edx
sub edx, esi
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x13
test eax, eax
jns 0x41d475
mov eax, 0xffffffff
jmp 0x41d47e
add ecx, edx
lea eax, [ecx*2 + 0x26]
mov dword [esp + 0x40], ebx
push eax
call fcn.00409550
add esp, 4
mov esi, eax
movzx eax, word [edi]
mov dword [esp + 4], esi
test ax, ax
je 0x41d4b1
add edi, 2
mov esi, dword [esp + 4]
mov word [esi], ax
add esi, 2
movzx eax, word [edi]
add edi, 2
test ax, ax
jne 0x41d4a0
mov word [esi], 0x2f
mov dword [esp + 8], 0x934f91a7
mov dword [esp + 0xc], 0xaf22ad24
mov dword [esp + 0x10], 0xab5ca955
mov dword [esp + 0x14], 0xa75fa557
mov dword [esp + 0x18], 0xa354a157
mov dword [esp + 0x1c], 0xbf89bd4f
mov dword [esp + 0x20], 0xb9b8
mov byte [esp + 0x24], 0
mov eax, 0xdc
mov ecx, 0x32f82823
nop
nop
nop
movzx edi, byte [esp + eax - 0xd4]
mov edx, ecx
or edx, edi
not edi
or edi, eax
and edi, edx
mov ebx, edi
not ebx
and ebx, 0x33
mov edx, edi
xor edx, 0x4c
lea edx, [edx + ebx*2]
and edi, 1
and edx, 0xfe
or edx, edi
xor edx, 1
lea edx, [edx + edi*2]
mov byte [esp + eax - 0xd4], dl
inc eax
dec ecx
cmp eax, 0xf9
jne 0x41d500
add esi, 2
movzx eax, word [ebp]
test ax, ax
je 0x41d574
add ebp, 2
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ebp]
add ebp, 2
test ax, ax
jne 0x41d560
jmp 0x41d57c
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov word [esi], 0
movzx eax, word [esp + 8]
test ax, ax
je 0x41d5b3
lea ecx, [esp + 0xa]
mov ebp, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41d5a0
jmp 0x41d5b6
mov ebp, dword [esp]
mov word [esi], 0
movzx eax, word [edx]
test ax, ax
je 0x41d5e1
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [edx]
add edx, 2
test ax, ax
jne 0x41d5d0
mov word [esi], 0
mov dword [esp + 8], 0x302012a
mov dword [esp + 0xc], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
xor byte [esp + eax + 8], al
inc eax
cmp eax, 8
jne 0x41d600
lea eax, [esp + 8]
push 0
push 0
push 0xc00000
push eax
push ebp
push dword [esp + 0x18]
push dword [esp + 0x7c]
call fcn.00421470
add esp, 0x1c
mov ebx, eax
jmp dword [0x445fa0]