Function at 0x1003f540
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10315551
mov eax, dword fs:[0]
push eax
sub esp, 0x20
mov eax, dword [0x1043900c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword fs:[0x2c]
mov ecx, dword [0x104c14e0]
mov edi, dword [eax + ecx*4]
mov eax, dword [0x1061169c]
cmp eax, dword [edi + 4]
jg 0x1003f631
mov ecx, dword [0x106114c8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
cmp eax, 1
jl 0x1003f5ac
mov ecx, dword [0x106114c8]
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
mov eax, dword [0x106114a4]
cmp eax, dword [edi + 4]
jg 0x1003f715
mov ecx, dword [0x10611470]
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
cmp eax, 1
jl 0x1003f5de
mov ecx, dword [0x10611470]
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
mov eax, dword [0x106114b4]
cmp eax, dword [edi + 4]
jg 0x1003f7ff
mov ecx, dword [0x10611430]
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
cmp eax, 1
jl 0x1003f610
mov ecx, dword [0x10611430]
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
call fcn.10017d40
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.102bb91c
mov esp, ebp
pop ebp
ret
push 0x1061169c
call fcn.102bba07
add esp, 4
cmp dword [0x1061169c], 0xffffffff
jne 0x1003f58b
mov dword [ebp - 4], 0
cmp byte [0x1049b220], 0
jne 0x1003f6bf
mov byte [0x1049b220], 1
xor esi, esi
jmp 0x1003f666
xor edx, edx
mov ebx, esi
xor edx, dword [0x1049b244]
xor ebx, dword [0x1049b240]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
xor edx, ecx
shl eax, 0xd
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
shr ecx, 7
xor ebx, eax
xor edx, ecx
mov ecx, ebx
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, byte [esi + 0x1049b221]
xor cl, bl
mov byte [esi + 0x1049b221], cl
inc esi
cmp esi, 0x18
jb 0x1003f666
jmp 0x1003f6bf
push ecx
push 0x1049b238
push 0x1049b221
lea ecx, [ebp - 0x28]
call fcn.1001a620
mov byte [ebp - 4], 1
lea edx, [ebp - 0x28]
mov ecx, dword [0x1060b27c]
cmp dword [ebp - 0x14], 0x10
cmovae edx, dword [ebp - 0x28]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x40]
call eax
lea ecx, [ebp - 0x28]
mov dword [0x106114c8], eax
call fcn.10019dd0
push 0x1061169c
mov dword [ebp - 4], 0xffffffff
call fcn.102bb9b6
add esp, 4
jmp 0x1003f58b
push 0x106114a4
call fcn.102bba07
add esp, 4
cmp dword [0x106114a4], 0xffffffff
jne 0x1003f5bd
mov dword [ebp - 4], 2
cmp byte [0x1049b1a0], 0
jne 0x1003f7a9
mov byte [0x1049b1a0], 1
xor esi, esi
jmp 0x1003f750
xor edx, edx
mov ebx, esi
xor edx, dword [0x1049b1b4]
xor ebx, dword [0x1049b1b0]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
xor edx, ecx
shl eax, 0xd
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
shr ecx, 7
xor ebx, eax
xor edx, ecx
mov ecx, ebx
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, bl
xor cl, byte [esi + 0x1049b1a1]
mov byte [esi + 0x1049b1a1], cl
inc esi
cmp esi, 0xf
jb 0x1003f750
jmp 0x1003f7a9
push ecx
push 0x1049b1af
push 0x1049b1a1
lea ecx, [ebp - 0x28]
call fcn.1001a620
mov byte [ebp - 4], 3
lea edx, [ebp - 0x28]
mov ecx, dword [0x1060b27c]
cmp dword [ebp - 0x14], 0x10
cmovae edx, dword [ebp - 0x28]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x40]
call eax
lea ecx, [ebp - 0x28]
mov dword [0x10611470], eax
call fcn.10019dd0
push 0x106114a4
mov dword [ebp - 4], 0xffffffff
call fcn.102bb9b6
add esp, 4
jmp 0x1003f5bd
push 0x106114b4
call fcn.102bba07
add esp, 4
cmp dword [0x106114b4], 0xffffffff
jne 0x1003f5ef
mov dword [ebp - 4], 4
cmp byte [0x104933b0], 0
jne 0x1003f88d
mov byte [0x104933b0], 1
xor esi, esi
jmp 0x1003f834
xor edx, edx
mov ebx, esi
xor edx, dword [0x104933c4]
xor ebx, dword [0x104933c0]
xor edx, 0xd28f2c5
xor ebx, 0x1de26cd5
mov ecx, edx
mov eax, ebx
shld ecx, eax, 0xd
xor edx, ecx
shl eax, 0xd
xor ebx, eax
mov ecx, edx
mov eax, ebx
shrd eax, ecx, 7
shr ecx, 7
xor ebx, eax
xor edx, ecx
mov ecx, ebx
shld edx, ecx, 0x11
shl ecx, 0x11
xor cl, bl
xor cl, byte [esi + 0x104933b1]
mov byte [esi + 0x104933b1], cl
inc esi
cmp esi, 0xf
jb 0x1003f834
jmp 0x1003f88d
push ecx
push 0x104933bf
push 0x104933b1
lea ecx, [ebp - 0x28]
call fcn.1001a620
mov byte [ebp - 4], 5
lea edx, [ebp - 0x28]
mov ecx, dword [0x1060b27c]
cmp dword [ebp - 0x14], 0x10
cmovae edx, dword [ebp - 0x28]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x40]
call eax
lea ecx, [ebp - 0x28]
mov dword [0x10611430], eax
call fcn.10019dd0
push 0x106114b4
mov dword [ebp - 4], 0xffffffff
call fcn.102bb9b6
add esp, 4
jmp 0x1003f5ef