Function at 0x41c3b0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
sub esp, 0x18
push ebx
mov ebx, ecx
test ebx, ebx
push edi
mov edi, eax
je 0x41c3c4
mov eax, dword [ebx + 0x38]
test eax, eax
jne 0x41c3cf
pop edi
mov eax, 0xffffff9a
pop ebx
add esp, 0x18
ret
mov eax, dword [ebx + 0x9c]
test eax, eax
je 0x41c3de
call fcn.0041c910
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0xc]
push ecx
lea edx, [esp + 0x18]
push edx
mov eax, ebx
call fcn.0041c1b0
add esp, 0xc
test eax, eax
je 0x41c406
pop edi
mov eax, 0xffffff99
pop ebx
add esp, 0x18
ret
push ebp
push esi
mov esi, dword [sym.imp.NSCRT.dll_malloc]
push 0x90
call esi
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x41c456
push 0x4000
call esi
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [ebp + 0x44], ecx
xor ecx, ecx
mov dword [ebp + 0x48], edx
mov edx, dword [esp + 0x34]
add esp, 4
cmp eax, ecx
mov dword [ebp], eax
mov dword [ebp + 0x4c], ecx
mov dword [ebp + 0x8c], edx
jne 0x41c463
push ebp
call dword [sym.imp.NSCRT.dll_free]
add esp, 4
pop esi
pop ebp
pop edi
mov eax, 0xffffff98
pop ebx
add esp, 0x18
ret
mov eax, dword [esp + 0x2c]
cmp eax, ecx
mov dword [ebp + 0x40], ecx
je 0x41c473
mov esi, dword [ebx + 0x54]
mov dword [eax], esi
cmp edi, ecx
je 0x41c4a8
mov dword [edi], 6
mov eax, dword [ebx + 0x50]
and eax, 6
sub eax, 2
je 0x41c4a2
sub eax, 2
je 0x41c49a
sub eax, 2
jne 0x41c4a8
mov dword [edi], 1
jmp 0x41c4a8
mov dword [edi], 2
jmp 0x41c4a8
mov dword [edi], 9
mov eax, dword [ebx + 0x5c]
mov dword [ebp + 0x50], ecx
mov dword [ebp + 0x54], eax
mov ecx, dword [ebx + 0x54]
mov dword [ebp + 0x84], ecx
mov eax, dword [ebx + 0x20]
mov dword [ebp + 0x80], eax
lea edi, [ebp + 0x60]
mov ecx, 8
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0x2c]
mov dword [ebp + 0x88], ecx
xor ecx, ecx
mov dword [ebp + 0x18], ecx
cmp dword [ebx + 0x54], 8
jne 0x41c51f
cmp edx, ecx
jne 0x41c51f
lea esi, [ebp + 4]
mov dword [ebp + 0x24], ecx
mov dword [ebp + 0x28], ecx
mov dword [ebp + 0x2c], ecx
mov dword [esi], ecx
mov dword [ebp + 8], ecx
push 0x38
mov eax, str.1.2.3
mov ecx, 0xfffffff1
call fcn.004181c0
mov esi, eax
add esp, 4
test esi, esi
jne 0x41c615
mov dword [ebp + 0x40], 1
xor ecx, ecx
mov edx, dword [ebx + 0x60]
mov dword [ebp + 0x58], edx
mov eax, dword [ebx + 0x64]
mov dword [ebp + 0x5c], eax
mov edx, dword [ebx + 0x98]
mov eax, dword [esp + 0x18]
lea edx, [edx + eax + 0x1e]
mov eax, dword [esp + 0x34]
cmp eax, ecx
mov dword [ebp + 0x3c], edx
mov dword [ebp + 8], ecx
mov dword [ebx + 0x9c], ebp
je 0x41c60b
mov edi, 0x463968
lea esi, [ebx + 0xa4]
mov edx, esi
mov dword [ebx + 0xb0], edi
call fcn.0041b7a0
mov eax, dword [ebx + 0x9c]
mov edx, dword [eax + 0x3c]
mov ecx, dword [eax + 0x88]
mov eax, dword [ebx + 0x1c]
push 0
add ecx, edx
mov edx, dword [ebx + 0x20]
push ecx
push edx
push eax
call dword [ebx + 0x10]
add esp, 0x10
test eax, eax
jne 0x41c456
mov edx, dword [ebx + 0x20]
mov eax, dword [ebx + 0x1c]
push 0xc
lea ecx, [esp + 0x20]
push ecx
push edx
push eax
call dword [ebx + 4]
add esp, 0x10
cmp eax, 0xc
jb 0x41c456
xor ebp, ebp
jmp 0x41c5c0
mov eax, dword [ebx + 0xac]
mov dl, byte [esp + ebp + 0x1c]
mov edi, dword [ebx + 0xb0]
and eax, 0xfffd
or eax, 2
mov ecx, eax
xor ecx, 1
imul ecx, eax
shr ecx, 8
xor dl, cl
movsx eax, dl
mov byte [esp + ebp + 0x1c], dl
call fcn.0041b750
inc ebp
cmp ebp, 0xc
jl 0x41c5c0
mov eax, dword [ebx + 0x9c]
add dword [eax + 0x3c], 0xc
mov dword [ebx + 0xa0], 1
pop esi
pop ebp
pop edi
xor eax, eax
pop ebx
add esp, 0x18
ret
push ebp
call dword [sym.imp.NSCRT.dll_free]
add esp, 4
mov eax, esi
pop esi
pop ebp
pop edi
pop ebx
add esp, 0x18
ret