Function at 0x101803d0
Capabilities:
Encode data using xor
Encrypt data using twofish
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x101aac08
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
mov eax, dword [0x1026d48c]
xor eax, esp
mov dword [esp + 0x58], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1026d48c]
xor eax, esp
push eax
lea eax, [esp + 0x70]
mov dword fs:[0], eax
mov eax, dword [esp + 0x88]
mov ebx, dword [esp + 0x8c]
mov edi, dword [esp + 0x84]
push str.initCrypt_twofish
mov dword [esp + 0x20], ecx
push ebx
lea ecx, [esp + 0x38]
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], eax
call fcn.10061630
mov eax, dword [edi + 0x10]
cdq
and edx, 7
add eax, edx
mov esi, eax
add edi, 0x14
mov ecx, edi
mov dword [esp + 0x78], 0
sar esi, 3
call fcn.1008bea0
mov ecx, edi
mov ebp, eax
call fcn.100f6330
cmp eax, esi
jae 0x10180485
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
push str.Not_enough_key_material_for_twofish.
mov ecx, ebx
call eax
lea ecx, [esp + 0x30]
mov dword [esp + 0x78], 0xffffffff
call fcn.100616a0
xor al, al
jmp 0x101809b7
mov eax, esi
cdq
and edx, 7
add eax, edx
mov edi, eax
sar edi, 3
test esi, esi
mov dword [esp + 0x20], edi
jle 0x101804a9
push esi
lea ecx, [esp + 0x50]
push ebp
push ecx
call sub.MSVCR80.dll_memcpy
add esp, 0xc
test edi, edi
jle 0x1018053d
lea esi, [esp + 0x3e]
lea ecx, [esp + 0x52]
mov ebp, edi
jmp 0x101804c0
movzx edx, byte [ecx + 1]
mov eax, dword [edx*4 + 0x102387b8]
movzx ebx, byte [ecx - 1]
xor eax, dword [ebx*4 + 0x10237fb8]
movzx edx, byte [ecx - 2]
xor eax, dword [edx*4 + 0x10237bb8]
movzx edx, byte [ecx - 3]
xor eax, dword [edx*4 + 0x102377b8]
movzx edx, byte [ecx - 4]
xor eax, dword [edx*4 + 0x102373b8]
movzx edx, byte [ecx - 5]
xor eax, dword [edx*4 + 0x10236fb8]
movzx edx, byte [ecx - 6]
xor eax, dword [edx*4 + 0x10236bb8]
movzx edx, byte [ecx]
xor eax, dword [edx*4 + 0x102383b8]
add esi, 4
mov edx, eax
shr edx, 0x18
mov byte [esi - 3], dl
mov edx, eax
shr edx, 0x10
mov byte [esi - 4], dl
mov edx, eax
shr edx, 8
mov byte [esi - 5], dl
mov byte [esi - 6], al
add ecx, 8
sub ebp, 1
jne 0x101804c0
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x24], 0
add ebp, 0x108c
jmp 0x10180555
mov edi, dword [esp + 0x20]
mov bl, byte [esp + 0x24]
add bl, bl
push edi
xor eax, eax
lea ecx, [esp + 0x50]
lea esi, [esp + 0x1c]
lea edx, [esp + 0x18]
mov byte [esp + 0x18], bl
mov byte [esp + 0x19], bl
mov byte [esp + 0x1a], bl
mov byte [esp + 0x1b], bl
call fcn.10180210
movzx edi, byte [esp + 0x1f]
movzx eax, byte [esp + 0x1e]
shl edi, 8
or edi, eax
mov eax, dword [esp + 0x1c]
movzx ecx, ah
shl edi, 8
movzx edx, al
mov eax, dword [esp + 0x24]
or edi, ecx
add bl, 1
shl edi, 8
or edi, edx
push eax
mov eax, 1
lea ecx, [esp + 0x54]
lea edx, [esp + 0x1c]
mov byte [esp + 0x1c], bl
mov byte [esp + 0x1d], bl
mov byte [esp + 0x1e], bl
mov byte [esp + 0x1f], bl
call fcn.10180210
movzx eax, byte [esp + 0x23]
movzx ecx, byte [esp + 0x22]
shl eax, 8
or eax, ecx
mov ecx, dword [esp + 0x20]
shl eax, 8
movzx edx, ch
or eax, edx
shl eax, 8
movzx ecx, cl
or eax, ecx
add esp, 8
rol eax, 8
lea edx, [eax + edi]
lea eax, [edi + eax*2]
rol eax, 9
mov dword [ebp], eax
mov eax, dword [esp + 0x24]
add eax, 1
mov dword [ebp - 4], edx
add ebp, 8
cmp eax, 0x14
mov dword [esp + 0x24], eax
jl 0x10180551
mov eax, dword [esp + 0x20]
movzx edi, byte [esp + 0x3c]
xor esi, esi
cmp eax, 2
jne 0x10180710
mov eax, dword [esp + 0x1c]
add eax, 0x488
jmp 0x10180640
mov ecx, esi
and ecx, 0xff
mov dl, byte [ecx + 0x102359b8]
mov cl, byte [ecx + 0x10235ab8]
movzx edx, dl
mov ebx, edx
xor ebx, edi
movzx ebp, byte [ebx + 0x102359b8]
movzx ebx, byte [esp + 0x40]
xor ebp, ebx
movzx ebx, byte [ebp + 0x10235ab8]
mov ebx, dword [ebx*4 + 0x10235bb8]
mov dword [eax - 0x400], ebx
movzx ebx, byte [esp + 0x3d]
movzx ecx, cl
mov ebp, ecx
xor ebp, ebx
movzx ebp, byte [ebp + 0x102359b8]
movzx ebx, byte [esp + 0x41]
xor ebp, ebx
movzx ebx, byte [ebp + 0x102359b8]
mov ebx, dword [ebx*4 + 0x10235fb8]
mov dword [eax], ebx
movzx ebx, byte [esp + 0x3e]
xor ebx, edx
movzx ebx, byte [ebx + 0x10235ab8]
movzx edx, byte [esp + 0x42]
xor ebx, edx
movzx edx, byte [ebx + 0x10235ab8]
mov edx, dword [edx*4 + 0x102363b8]
mov dword [eax + 0x400], edx
movzx edx, byte [esp + 0x3f]
xor edx, ecx
movzx edx, byte [edx + 0x10235ab8]
movzx ecx, byte [esp + 0x43]
xor edx, ecx
movzx ecx, byte [edx + 0x102359b8]
mov edx, dword [ecx*4 + 0x102367b8]
mov dword [eax + 0x800], edx
add esi, 1
add eax, 4
cmp esi, 0x100
jl 0x10180640
jmp 0x10180962
cmp eax, 3
mov eax, dword [esp + 0x1c]
jne 0x10180826
add eax, 0x488
mov ecx, esi
and ecx, 0xff
mov dl, byte [ecx + 0x102359b8]
movzx ecx, byte [ecx + 0x10235ab8]
mov ebx, ecx
xor ebx, edi
movzx ebp, byte [ebx + 0x102359b8]
movzx ebx, byte [esp + 0x40]
xor ebp, ebx
movzx ebp, byte [ebp + 0x102359b8]
movzx ebx, byte [esp + 0x44]
xor ebp, ebx
movzx ebx, byte [ebp + 0x10235ab8]
mov ebx, dword [ebx*4 + 0x10235bb8]
mov dword [eax - 0x400], ebx
movzx ebx, byte [esp + 0x3d]
xor ecx, ebx
movzx ebx, byte [ecx + 0x10235ab8]
movzx ecx, byte [esp + 0x41]
xor ebx, ecx
movzx ebx, byte [ebx + 0x102359b8]
movzx ecx, byte [esp + 0x45]
xor ebx, ecx
movzx ecx, byte [ebx + 0x102359b8]
mov ecx, dword [ecx*4 + 0x10235fb8]
mov dword [eax], ecx
movzx ecx, dl
movzx edx, byte [esp + 0x3e]
xor edx, ecx
movzx ebx, byte [edx + 0x102359b8]
movzx edx, byte [esp + 0x42]
xor ebx, edx
movzx ebx, byte [ebx + 0x10235ab8]
movzx edx, byte [esp + 0x46]
xor ebx, edx
movzx edx, byte [ebx + 0x10235ab8]
mov edx, dword [edx*4 + 0x102363b8]
mov dword [eax + 0x400], edx
movzx edx, byte [esp + 0x3f]
xor edx, ecx
movzx edx, byte [edx + 0x10235ab8]
movzx ecx, byte [esp + 0x43]
xor edx, ecx
movzx edx, byte [edx + 0x10235ab8]
movzx ecx, byte [esp + 0x47]
xor edx, ecx
movzx ecx, byte [edx + 0x102359b8]
mov edx, dword [ecx*4 + 0x102367b8]
mov dword [eax + 0x800], edx
add esi, 1
add eax, 4
cmp esi, 0x100
jl 0x10180722
jmp 0x10180962
add eax, 0x488
mov ecx, esi
and ecx, 0xff
mov dl, byte [ecx + 0x102359b8]
movzx ecx, byte [ecx + 0x10235ab8]
mov ebx, ecx
xor ebx, edi
movzx ebp, byte [ebx + 0x10235ab8]
movzx ebx, byte [esp + 0x40]
xor ebp, ebx
movzx ebp, byte [ebp + 0x102359b8]
movzx ebx, byte [esp + 0x44]
xor ebp, ebx
movzx ebp, byte [ebp + 0x102359b8]
movzx ebx, byte [esp + 0x48]
xor ebp, ebx
movzx ebx, byte [ebp + 0x10235ab8]
mov ebx, dword [ebx*4 + 0x10235bb8]
mov dword [eax - 0x400], ebx
movzx ebx, byte [esp + 0x3d]
movzx edx, dl
xor ebx, edx
movzx ebp, byte [ebx + 0x10235ab8]
movzx ebx, byte [esp + 0x41]
xor ebp, ebx
movzx ebp, byte [ebp + 0x10235ab8]
movzx ebx, byte [esp + 0x45]
xor ebp, ebx
movzx ebp, byte [ebp + 0x102359b8]
movzx ebx, byte [esp + 0x49]
xor ebp, ebx
movzx ebx, byte [ebp + 0x102359b8]
mov ebx, dword [ebx*4 + 0x10235fb8]
mov dword [eax], ebx
movzx ebx, byte [esp + 0x3e]
xor ebx, edx
movzx ebx, byte [ebx + 0x102359b8]
movzx edx, byte [esp + 0x42]
xor ebx, edx
movzx ebx, byte [ebx + 0x102359b8]
movzx edx, byte [esp + 0x46]
xor ebx, edx
movzx ebx, byte [ebx + 0x10235ab8]
movzx edx, byte [esp + 0x4a]
xor ebx, edx
movzx edx, byte [ebx + 0x10235ab8]
mov edx, dword [edx*4 + 0x102363b8]
mov dword [eax + 0x400], edx
movzx edx, byte [esp + 0x3f]
xor edx, ecx
movzx edx, byte [edx + 0x102359b8]
movzx ecx, byte [esp + 0x43]
xor edx, ecx
movzx edx, byte [edx + 0x10235ab8]
movzx ecx, byte [esp + 0x47]
xor edx, ecx
movzx edx, byte [edx + 0x10235ab8]
movzx ecx, byte [esp + 0x4b]
xor edx, ecx
movzx ecx, byte [edx + 0x102359b8]
mov edx, dword [ecx*4 + 0x102367b8]
mov dword [eax + 0x800], edx
add esi, 1
add eax, 4
cmp esi, 0x100
jl 0x1018082b
mov edi, dword [esp + 0x2c]
test edi, edi
je 0x101809a4
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 8]
cmp eax, 3
je 0x1018097b
cmp eax, 4
jne 0x101809a4
mov eax, dword [esp + 0x1c]
lea esi, [ecx + 0x34]
mov ecx, dword [eax + 0x80]
push ecx
mov ecx, esi
call fcn.100f6330
push eax
mov ecx, esi
call fcn.1008bea0
push eax
lea ecx, [edi + 0x484]
call fcn.10174770
lea ecx, [esp + 0x30]
mov dword [esp + 0x78], 0xffffffff
call fcn.100616a0
mov al, 1
mov ecx, dword [esp + 0x70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.1018f87e
add esp, 0x68
ret 0x10