Function at 0x401cb0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
mov edi, ecx
mov ecx, dword [edi - 0x49c]
mov edx, dword [ecx + 4]
lea eax, [edi - 0x49c]
mov dword [edx + edi - 0x49c], 0x48aafc
mov dword [ebp - 8], eax
mov eax, dword [eax]
mov eax, dword [eax + 4]
lea ecx, [eax - 0x49c]
mov dword [eax + edi - 0x4a0], ecx
mov eax, dword [edi - 0x3b4]
mov dword [ebp - 4], edi
test eax, eax
jne 0x426f4f
push 0
push 0
push 0
push 0x48816c
call dword [0x48278c]
cmp dword [edi - 0x2ec], 0
ja 0x426f5b
cmp dword [edi - 0x31c], 0
ja 0x426fa0
cmp dword [edi - 0x30c], 0
ja 0x42700c
cmp dword [edi - 0x2fc], 0
ja 0x427033
lea esi, [edi - 0x2e4]
mov dword [ebp - 0xc], esi
call fcn.00408f40
mov dword [esi + 8], 1
mov dword [esi], 0
lea ebx, [edi - 0x14]
mov esi, ebx
call fcn.00408f40
mov esi, dword [ebp - 8]
mov dword [ebx + 8], 1
mov dword [ebx], 0
mov eax, dword [esi]
mov eax, dword [eax + 4]
add eax, edi
cmp dword [eax - 0x498], 0
je 0x401dbf
mov dword [ebp - 8], 0
lea ecx, [eax - 0x49c]
lea eax, [ebp - 8]
call fcn.0040d410
mov edx, dword [esi]
mov eax, dword [edx + 4]
lea edi, [eax + edi - 0x498]
call fcn.0040da90
mov ecx, dword [esi]
mov eax, dword [ebp - 4]
add eax, dword [ecx + 4]
mov edi, dword [ebp - 4]
cmp dword [eax - 0x498], 0
jne 0x401d8c
call fcn.0040e750
mov eax, dword [edi - 0x28]
test eax, eax
jne 0x427079
mov esi, ebx
call fcn.00408f40
lea esi, [edi - 0x34]
call fcn.004109a0
lea esi, [edi - 0x44]
call fcn.004109c0
lea ecx, [edi - 0x64]
call fcn.00402250
lea esi, [edi - 0x1a0]
call fcn.00401400
lea esi, [edi - 0x1bc]
mov dword [esi], 0x48ab10
call fcn.004109e0
mov ecx, dword [esi + 4]
push ecx
call fcn.004111dc
add esp, 4
lea ebx, [edi - 0x2c4]
call fcn.004012f0
lea ecx, [edi - 0x2d4]
call fcn.00402250
mov esi, dword [ebp - 0xc]
call fcn.00408f40
lea esi, [edi - 0x2f4]
mov dword [esi], 0x48ab10
call fcn.004109e0
mov edx, dword [esi + 4]
push edx
call fcn.004111dc
lea esi, [edi - 0x304]
add esp, 4
mov dword [esi], 0x48ab10
call fcn.004109e0
mov eax, dword [esi + 4]
push eax
call fcn.004111dc
lea esi, [edi - 0x314]
add esp, 4
mov dword [esi], 0x48ab10
call fcn.004109e0
mov ecx, dword [esi + 4]
push ecx
call fcn.004111dc
lea esi, [edi - 0x324]
add esp, 4
mov dword [esi], 0x48ab10
call fcn.004109e0
mov edx, dword [esi + 4]
push edx
call fcn.004111dc
add esp, 4
lea eax, [edi - 0x330]
call fcn.00410aa0
lea eax, [edi - 0x340]
call fcn.00410a70
lea ecx, [edi - 0x350]
call fcn.00402250
lea eax, [edi - 0x368]
call fcn.00410a40
lea esi, [edi - 0x374]
call fcn.004109c0
lea esi, [edi - 0x380]
call fcn.004109c0
lea ecx, [edi - 0x3c4]
call fcn.00402250
lea ecx, [edi - 0x3d4]
call fcn.00402250
lea ecx, [edi - 0x3e4]
call fcn.00402250
lea eax, [edi - 0x414]
call fcn.0040ddd0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mul ch
add byte [ecx + 0x358b0048], ch
mov eax, 0x10f7e926
not dword [eax]
ror dword [ecx], cl
call 0x10d9fb30
dec ebp
cld
pop edi
pop esi
add al, 0xb2
pop es
add eax, 2
daa
or byte [eax + 0x51], dl
or byte [ecx], cl
mov esi, dword [0x248026e4]
dec eax
add byte [esp + ebx*2], cl
jg 0x426fcb
mov eax, dword [edi + 0x5ffc4d10]
pop esi
or al, 0xb0
mov eax, dword [ecx]
push eax
call fcn.0040b400
xchg ebx, eax
pop ds
call 0xb77db645
cmp eax, 6
ja 0x427010
ret 0x15e9
adc eax, 0x33516611
fisttp dword [edx - 0x69]
xor ebx, ebx
dec edx
xchg edi, eax
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x7cf865fc], ecx
rol byte [edx], 0x4e
or byte [eax + 7], dl
add eax, 0x75
adc ch, al
fadd dword [0x89c03300]
inc esi
sub al, 0x89
inc esi
xor byte [ecx - 0x1409d7a2], cl
and dword [ebp + 0x40], eax
cmp byte [ecx], ah
dec eax
add ah, bl
push es
cmp dword [esi], 0xffffff8b
invalid
jmp 0x426fee
push esp
xchg edi, eax
mov ecx, dword [ebp + 0x10]
mov dword [ebp + 0x5d89a04], ecx
add dword [eax], eax
add esp, 4
inc ebx
cmp ebx, dword [esp + 0x38]
jb 0x426fa4
in al, 0x4d
adc byte [ecx + 0x22e99b72], cl
adc ebx, edx
or eax, ebp
int3
and dl, byte [ecx]
ror dword [ecx], cl
call 0xf0d9fbe1
cld
cld
pop edi
mov edx, dword [edi + 0x5ffcfcf0]
pop esi
add al, 0xb2
pop es
add eax, 2
or dword [0x4821ac], edx
lea esi, [esp + 0x28]
inc esi
cmp esi, dword [edi - 0x76efb20c]
jb 0x427012
jmp 0xa158166
das
adc ebx, edx
or eax, ebp
xchg esp, eax
daa
lea eax, [eax]
dec ebp
cld
pop edi
pop esi
add al, 0xb1
pop es
add eax, 2
sub byte [ebx + 0x10428b10], cl
sub byte [eax - 0x80], 8
call 0x489270bf
add byte [eax + 0x22], cl
cmp dword [esi], 0xffffff8b
pop dword [eax]
dec ebp
cld
pop edi
pop esi
adc al, 0xb1
mov eax, dword [edx]
push eax
call fcn.0040b400
int 0xa3
call 0xb77db71e
add al, 0xf8
push es
ja 0x4270e9
shr ecx, 0x3c
adc dword [esi + 0x51], esp
cmp al, 0x11
push cx
add dword [eax], eax
add byte [edx], bl
add ecx, dword [ebp + 0x6611cbe9]
push ecx
aam 9
ja 0x427074
jecxz 0x427095
ja 0x4270fd
xchg esi, eax
inc eax
add byte [edi + 0x71], dl
inc edx
mov ecx, eax
invalid
lodsb al, byte [esi]
inc ebp
or al, bh
add byte [eax + 0x3bace8a7], ch
clc
pop ecx
dec eax
pop ebp
ret
xor al, al
jmp 0x40472ba9