Function at 0x41db30
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x304
mov eax, dword [0x447648]
push ebx
mov dword [esp + 0x304], eax
xor ecx, ecx
mov eax, 1
push esi
jmp 0x41db50
mov edx, eax
and dl, 0x80
mov byte [esp + ecx + 0x108], al
mov byte [esp + ecx + 0x207], al
mov byte [esp + eax + 8], cl
inc ecx
neg dl
lea esi, [eax + eax]
sbb edx, edx
and edx, 0x11b
xor edx, esi
xor eax, edx
cmp eax, 1
jne 0x41db50
xor ecx, ecx
mov edx, eax
and dl, 0x80
neg dl
mov byte [ecx + 0x44e5f0], al
sbb edx, edx
and edx, 0x11b
add eax, eax
xor eax, edx
inc ecx
cmp ecx, 0x1e
jb 0x41db80
xor eax, eax
test al, al
je 0x41dbbb
movzx ecx, al
movzx edx, byte [esp + ecx + 8]
lea ecx, [esp + 0x207]
sub ecx, edx
movzx edx, byte [ecx]
jmp 0x41dbbd
xor edx, edx
lea ecx, [edx + edx]
xor ecx, edx
shl ecx, 1
xor ecx, edx
shl ecx, 1
xor ecx, edx
shl ecx, 1
xor edx, ecx
mov ecx, edx
sar ecx, 8
xor cl, dl
xor cl, 0x63
mov byte [eax + 0x450b10], cl
mov byte [eax*4 + 0x44ff11], cl
mov byte [eax*4 + 0x44ff10], cl
mov byte [eax*4 + 0x450713], cl
mov byte [eax*4 + 0x450710], cl
mov byte [eax*4 + 0x44e613], cl
mov byte [eax*4 + 0x44e612], cl
mov byte [eax*4 + 0x450c12], cl
mov byte [eax*4 + 0x450c11], cl
je 0x41dc2a
movzx edx, cl
movzx edx, byte [esp + edx + 8]
movzx edx, byte [esp + edx + 0x121]
jmp 0x41dc2c
xor edx, edx
test cl, cl
mov byte [eax*4 + 0x44ff13], dl
mov byte [eax*4 + 0x450712], dl
mov byte [eax*4 + 0x44e611], dl
mov byte [eax*4 + 0x450c10], dl
je 0x41dc5e
movzx ecx, cl
movzx edx, byte [esp + ecx + 8]
movzx ecx, byte [esp + edx + 0x109]
jmp 0x41dc60
xor ecx, ecx
movzx esi, al
mov byte [eax*4 + 0x44ff12], cl
mov byte [eax*4 + 0x450711], cl
mov byte [eax*4 + 0x44e610], cl
mov byte [eax*4 + 0x450c13], cl
lea ecx, [esi*8]
xor ecx, esi
shl ecx, 2
xor ecx, esi
shl ecx, 1
mov edx, ecx
sar edx, 8
xor dl, cl
xor dl, 5
je 0x41dccd
lea ecx, [esi*8]
xor ecx, esi
shl ecx, 2
xor ecx, esi
shl ecx, 1
mov edx, ecx
sar edx, 8
movzx edx, dl
movzx ecx, cl
xor edx, ecx
xor edx, 5
movzx edx, byte [esp + edx + 8]
lea ecx, [esp + 0x207]
sub ecx, edx
mov bl, byte [ecx]
jmp 0x41dccf
xor bl, bl
test bl, bl
mov byte [eax + 0x44ee10], bl
je 0x41dceb
movzx edx, bl
movzx ecx, byte [esp + edx + 8]
movzx edx, byte [esp + ecx + 0x170]
jmp 0x41dced
xor edx, edx
test bl, bl
movzx ecx, bl
mov byte [eax*4 + 0x44f712], dl
mov byte [eax*4 + 0x44e1f1], dl
mov byte [eax*4 + 0x44ea10], dl
mov byte [eax*4 + 0x450313], dl
mov byte [ecx*4 + 0x44f312], dl
mov byte [ecx*4 + 0x44ef11], dl
mov byte [ecx*4 + 0x44fb10], dl
mov byte [ecx*4 + 0x451013], dl
je 0x41dd3b
movzx edx, byte [esp + ecx + 8]
movzx edx, byte [esp + edx + 0x1cf]
jmp 0x41dd3d
xor edx, edx
test bl, bl
mov byte [eax*4 + 0x44f710], dl
mov byte [eax*4 + 0x44e1f3], dl
mov byte [eax*4 + 0x44ea12], dl
mov byte [eax*4 + 0x450311], dl
mov byte [ecx*4 + 0x44f310], dl
mov byte [ecx*4 + 0x44ef13], dl
mov byte [ecx*4 + 0x44fb12], dl
mov byte [ecx*4 + 0x451011], dl
je 0x41dd88
movzx edx, byte [esp + ecx + 8]
movzx edx, byte [esp + edx + 0x1f6]
jmp 0x41dd8a
xor edx, edx
test bl, bl
mov byte [eax*4 + 0x44f711], dl
mov byte [eax*4 + 0x44e1f0], dl
mov byte [eax*4 + 0x44ea13], dl
mov byte [eax*4 + 0x450312], dl
mov byte [ecx*4 + 0x44f311], dl
mov byte [ecx*4 + 0x44ef10], dl
mov byte [ecx*4 + 0x44fb13], dl
mov byte [ecx*4 + 0x451012], dl
je 0x41ddd5
movzx edx, byte [esp + ecx + 8]
movzx edx, byte [esp + edx + 0x1e7]
jmp 0x41ddd7
xor edx, edx
mov byte [eax*4 + 0x44f713], dl
mov byte [eax*4 + 0x44e1f2], dl
mov byte [eax*4 + 0x44ea11], dl
mov byte [eax*4 + 0x450310], dl
inc eax
cmp eax, 0x100
mov byte [ecx*4 + 0x44f313], dl
mov byte [ecx*4 + 0x44ef12], dl
mov byte [ecx*4 + 0x44fb11], dl
mov byte [ecx*4 + 0x451010], dl
jl 0x41dba1
mov ecx, dword [esp + 0x308]
pop esi
pop ebx
call fcn.0042b7bd
add esp, 0x304
ret