Function at 0x41c0d0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x46f4de
push eax
mov eax, dword [esp + 0x10]
mov dword fs:[0], esp
sub esp, 0x738
test eax, eax
push ebx
push ebp
push esi
push edi
je 0x41c482
mov ecx, dword [esp + 0x75c]
test ecx, ecx
je 0x41c482
push 0x488c50
push eax
call fcn.00452835
mov ebx, eax
add esp, 8
test ebx, ebx
mov dword [esp + 0x14], ebx
je 0x41c482
push 0
push 0xc
push ebx
call fcn.0045274b
push ebx
push 2
lea eax, [esp + 0x2c]
push 4
push eax
call fcn.00452634
push 1
push 1
push ebx
call fcn.0045274b
push ebx
push 0x24
lea ecx, [esp + 0x50]
push 1
push ecx
call fcn.00452634
mov esi, dword [str._AYASEKE]
lea edx, [esp + 0x50]
add esp, 0x38
xor ecx, ecx
sub esi, edx
lea eax, [esp + ecx + 0x18]
mov dl, byte [esi + eax]
xor byte [eax], dl
inc ecx
cmp ecx, 8
jl 0x41c169
xor eax, eax
mov ecx, eax
and ecx, 7
mov dl, byte [esp + ecx + 0x18]
mov cl, byte [esp + eax + 0x20]
xor cl, dl
mov byte [esp + eax + 0x20], cl
inc eax
cmp eax, 0x24
jb 0x41c17a
mov edi, str.ARCHIVE
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x20]
push ecx
push str.ARCHIVE
push eax
call fcn.00452260
add esp, 0xc
test eax, eax
jne 0x41c479
mov ecx, dword [esp + 0x40]
lea eax, [ecx + ecx*2]
shl eax, 3
sub eax, ecx
lea ecx, [eax + eax*2]
shl ecx, 2
push ecx
call fcn.00461d88
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x41c479
mov edx, dword [esp + 0x30]
push 0
add edx, 0x15
push edx
push ebx
call fcn.0045274b
mov eax, dword [esp + 0x4c]
push ebx
push eax
push 0x114
push ebp
call fcn.00452634
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x4c]
add esp, 0x1c
lea eax, [ecx + ecx*2]
shl eax, 3
sub eax, ecx
lea ecx, [eax + eax*2]
xor eax, eax
shl ecx, 2
test ecx, ecx
jle 0x41c239
mov bl, byte [eax + ebp]
mov edx, esi
and edx, 7
mov dl, byte [esp + edx + 0x18]
xor bl, dl
mov byte [eax + ebp], bl
inc eax
inc esi
cmp eax, ecx
jl 0x41c222
mov eax, dword [esp + 0x75c]
push eax
call fcn.00434500
add esp, 4
test eax, eax
mov eax, dword [esp + 0x40]
setne byte [esp + 0x13]
xor ebx, ebx
test eax, eax
jbe 0x41c336
lea esi, [ebp + 1]
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov al, byte [esp + 0x13]
not ecx
dec ecx
test al, al
mov edi, ecx
jne 0x41c282
push esi
call fcn.00434500
add esp, 4
sub edi, eax
mov ecx, dword [esp + 0x75c]
push edi
push ecx
push esi
call fcn.00452260
add esp, 0xc
test eax, eax
jne 0x41c2fd
mov ecx, 0xff
lea edi, [esp + 0x349]
mov byte [esp + 0x348], al
push esi
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea edx, [esp + 0x34c]
push 0x200
push edx
stosb byte es:[edi], al
call fcn.00434560
mov edi, dword [esp + 0x768]
lea eax, [esp + 0x554]
push edi
push 0x200
push eax
call fcn.00434560
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
mov ecx, dword [esp + 0x778]
push ecx
push esi
call fcn.00452260
add esp, 0x24
test eax, eax
je 0x41c312
mov eax, dword [esp + 0x40]
inc ebx
add esi, 0x114
cmp ebx, eax
jb 0x41c261
jmp 0x41c336
lea eax, [ebx + ebx*2]
shl eax, 3
sub eax, ebx
lea edx, [eax + eax*2]
mov esi, dword [ebp + edx*4 + 0x108]
mov edi, dword [ebp + edx*4 + 0x10c]
lea eax, [ebp + edx*4]
add esi, 0x15
test edi, edi
jne 0x41c34e
push ebp
call fcn.00461db1
mov eax, dword [esp + 0x18]
push eax
call fcn.004525b7
add esp, 8
jmp 0x41c482
push ebp
call fcn.00461db1
mov ecx, dword [esp + 0x18]
push ecx
call fcn.004525b7
push 0x48
call fcn.00461d88
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x750], 0
je 0x41c392
mov ebx, dword [esp + 0x758]
push edi
push esi
push 0x40
push ebx
mov ecx, eax
call fcn.0041bc30
mov esi, eax
jmp 0x41c39b
mov ebx, dword [esp + 0x758]
xor esi, esi
test esi, esi
mov dword [esp + 0x750], 0xffffffff
je 0x41c482
lea edx, [esp + 0x18]
push 8
push edx
mov ecx, esi
call fcn.0041c0b0
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x245]
mov byte [esp + 0x244], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x45]
mov byte [esp + 0x44], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x145]
mov byte [esp + 0x144], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push ebx
lea eax, [esp + 0x48]
push 0x100
push eax
call fcn.004342d0
lea ecx, [esp + 0x50]
push 0x100
push ecx
call fcn.00434230
push ebx
lea edx, [esp + 0x15c]
push 0x100
push edx
call fcn.00434560
mov eax, dword [esp + 0x77c]
add esp, 0x20
lea ecx, [esp + 0x144]
lea edx, [esp + 0x44]
push eax
push ecx
push edx
lea eax, [esp + 0x250]
push str._s_s_s
push eax
call fcn.0045170f
mov edx, dword [esi]
add esp, 0x14
lea eax, [esp + 0x244]
mov ecx, esi
push eax
call dword [edx + 0x24]
mov eax, esi
jmp 0x41c484
push ebx
call fcn.004525b7
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x748]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x744
ret