Function at 0x100d2000
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
cmp byte [0x11cd5942], 0
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], 0
jne 0x100d204d
xor edx, edx
mov cl, dl
mov al, 0xa7
shl cl, 6
sub cl, dl
sub al, cl
xor al, byte [edx + 0x11cd5920]
mov byte [edx + 0x11cd5931], al
inc edx
cmp edx, 0x10
jl 0x100d2021
mov byte [0x11cd5941], 0
nop
mov byte [0x11cd5942], 1
push 0x11cd5931
call fcn.1043b647
add esp, 4
mov dword [ebp - 0x28], eax
or ebx, 0xffffffff
test eax, eax
je 0x100d20b8
cmp byte [eax], 0
je 0x100d20b8
mov esi, eax
lea ecx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x100d2070
sub esi, ecx
lea ebx, [esi + 1]
lea eax, [ebx + 0x10]
push eax
call fcn.10450898
mov edi, eax
add esp, 4
mov dword [ebp - 0x10], edi
test edi, edi
je 0x100d211e
push esi
push dword [ebp - 0x28]
lea ecx, [edi + 0xc]
mov dword [edi + 4], esi
push ecx
mov dword [edi + 8], ebx
call fcn.10425d60
mov byte [edi + esi + 0xc], 0
add esp, 0xc
mov dword [edi], 1
jmp 0x100d211e
mov esi, dword [0x11d21c00]
mov dword [ebp - 0x20], esi
test esi, esi
je 0x100d20c8
lock inc dword [esi]
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x1c]
call fcn.100d1e60
mov ecx, dword [eax]
test ecx, ecx
je 0x100d20e3
mov dword [ebp - 0x10], ecx
mov dword [eax], 0
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x100d2102
mov eax, ebx
lock xadd dword [ecx], eax
jne 0x100d20fb
push ecx
call fcn.10450877
add esp, 4
mov dword [ebp - 0x1c], 0
test esi, esi
je 0x100d211e
mov eax, ebx
lock xadd dword [esi], eax
jne 0x100d2117
push esi
call fcn.10450877
add esp, 4
mov dword [ebp - 0x20], 0
test byte [0x11cd362c], 1
jne 0x100d212e
mov ebx, 0x112275c4
jmp 0x100d213c
mov ebx, dword [0x11cd3a30]
test ebx, ebx
je 0x100d224e
cmp byte [ebx], 0
je 0x100d224e
mov edi, ebx
lea ecx, [edi + 1]
nop word [eax + eax]
mov al, byte [edi]
inc edi
test al, al
jne 0x100d2150
sub edi, ecx
lea eax, [edi + 0x11]
push eax
call fcn.10450898
mov esi, eax
add esp, 4
test esi, esi
je 0x100d218d
lea eax, [edi + 1]
mov dword [esi + 4], edi
push edi
mov dword [esi + 8], eax
lea eax, [esi + 0xc]
push ebx
push eax
call fcn.10425d60
mov byte [esi + edi + 0xc], 0
add esp, 0xc
mov dword [esi], 1
mov edi, esi
test esi, esi
je 0x100d2250
mov eax, dword [esi + 4]
test eax, eax
je 0x100d2250
cmp byte [eax + edi + 0xb], 0x2e
lea ebx, [eax - 1]
je 0x100d21b7
mov eax, ebx
test eax, eax
jne 0x100d21a2
jmp 0x100d2250
test ebx, ebx
js 0x100d2250
mov eax, dword [esi + 4]
mov dword [ebp - 0x18], eax
inc eax
mov dword [ebp - 0x28], eax
add eax, 0x10
push eax
call fcn.10450898
mov esi, eax
add esp, 4
lea ecx, [esi + 0xc]
test esi, esi
je 0x100d221c
mov eax, dword [ebp - 0x28]
push dword [ebp - 0x18]
mov dword [esi + 8], eax
lea eax, [edi + 0xc]
mov dword [esi + 4], 0
push eax
mov byte [ecx], 0
push ecx
mov dword [esi], 1
call fcn.10425d60
mov eax, dword [ebp - 0x18]
add esp, 0xc
mov dword [esi + 4], eax
mov byte [esi + eax + 0xc], 0
cmp ebx, dword [esi + 4]
ja 0x100d221c
mov byte [ebx + esi + 0xc], 0
mov dword [esi + 4], ebx
cmp esi, edi
je 0x100d2236
or eax, 0xffffffff
lock xadd dword [edi], eax
jne 0x100d2232
push edi
call fcn.10450877
add esp, 4
mov edi, esi
jmp 0x100d2250
test esi, esi
je 0x100d2250
or eax, 0xffffffff
lock xadd dword [esi], eax
jne 0x100d2250
push esi
call fcn.10450877
add esp, 4
jmp 0x100d2250
xor edi, edi
cmp byte [ebp + 0xc], 0
mov eax, dword [ebp - 0x10]
mov dword [ebp - 4], 0
je 0x100d25e3
test eax, eax
jne 0x100d22b9
mov esi, 0x10468d10
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x100d2270
sub esi, ecx
lea ebx, [esi + 1]
lea eax, [ebx + 0x10]
push eax
call fcn.10450898
mov ecx, eax
add esp, 4
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x100d22ce
push esi
mov dword [ecx + 4], esi
mov dword [ecx + 8], ebx
add ecx, 0xc
push 0x10468d10
push ecx
call fcn.10425d60
mov ecx, dword [ebp - 0x18]
add esp, 0xc
mov byte [ecx + esi + 0xc], 0
mov dword [ecx], 1
jmp 0x100d22ca
push 0x10468d10
mov ecx, eax
call fcn.100cb2b0
mov ecx, eax
mov dword [ebp - 0x18], eax
test ecx, ecx
jne 0x100d2331
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x100d232a
cmp byte [ebx], 0
je 0x100d232a
mov esi, ebx
lea ecx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x100d22e0
sub esi, ecx
lea eax, [esi + 0x11]
push eax
call fcn.10450898
add esp, 4
mov dword [ebp + 0xc], eax
test eax, eax
je 0x100d23e5
lea ecx, [esi + 1]
mov dword [eax + 4], esi
push esi
mov dword [eax + 8], ecx
add eax, 0xc
push ebx
push eax
call fcn.10425d60
mov eax, dword [ebp + 0xc]
add esp, 0xc
mov byte [eax + esi + 0xc], 0
mov dword [eax], 1
jmp 0x100d23e5
xor eax, eax
jmp 0x100d23e2
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x100d23dc
mov eax, ecx
mov dword [ebp + 0xc], eax
lock inc dword [ecx]
mov esi, eax
mov dword [ebp - 0x28], esi
test edi, edi
jne 0x100d23ff
mov ecx, esi
lock inc dword [esi]
push 0x1046b590
call fcn.100cb2b0
mov dword [ebp - 0x14], eax
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], esi
test eax, eax
jne 0x100d24d6
mov eax, dword [ebp - 8]
test eax, eax
je 0x100d24d2
cmp byte [eax], 0
je 0x100d24d2
mov ebx, eax
lea ecx, [ebx + 1]
nop dword [eax]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x100d2390
sub ebx, ecx
lea eax, [ebx + 0x11]
push eax
call fcn.10450898
add esp, 4
mov dword [ebp - 0xc], eax
test eax, eax
je 0x100d23d4
lea ecx, [ebx + 1]
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
add eax, 0xc
mov ecx, dword [ebp - 8]
push ebx
push ecx
push eax
call fcn.10425d60
mov eax, dword [ebp - 0xc]
add esp, 0xc
mov byte [eax + ebx + 0xc], 0
mov dword [eax], 1
mov ebx, dword [ebp - 0x28]
jmp 0x100d24f0
push eax
call fcn.100cb2b0
mov dword [ebp + 0xc], eax
mov esi, eax
test esi, esi
jne 0x100d2346
mov esi, edi
test edi, edi
je 0x100d2472
lock inc dword [edi]
mov ecx, esi
jmp 0x100d2356
mov ebx, dword [edi + 4]
lea eax, [esi + 4]
add ebx, dword [eax]
mov dword [ebp - 0x14], eax
lea eax, [ebx + 0x11]
push eax
call fcn.10450898
mov esi, eax
add esp, 4
lea ecx, [esi + 0xc]
test esi, esi
je 0x100d2472
lea eax, [ebx + 1]
mov dword [esi + 4], 0
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x14]
mov byte [ecx], 0
mov dword [esi], 1
push dword [eax]
mov eax, dword [ebp - 0x28]
add eax, 0xc
push eax
push ecx
call fcn.10425d60
add esp, 0xc
lea eax, [edi + 0xc]
push dword [edi + 4]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
add eax, 0xc
add eax, esi
push eax
call fcn.10425d60
mov eax, dword [ebp + 0xc]
add esp, 0xc
mov dword [esi + 4], ebx
mov byte [esi + ebx + 0xc], 0
mov dword [ebp + 0xc], eax
mov ecx, esi
test ecx, ecx
jne 0x100d2356
mov ebx, 0x1046b590
lea ecx, [ebx + 1]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x100d2484
sub ebx, ecx
lea eax, [ebx + 0x11]
push eax
call fcn.10450898
add esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
je 0x100d2363
lea ecx, [ebx + 1]
mov dword [eax + 4], ebx
push ebx
mov dword [eax + 8], ecx
add eax, 0xc
push 0x1046b590
push eax
call fcn.10425d60
mov eax, dword [ebp - 0x14]
add esp, 0xc
mov byte [eax + ebx + 0xc], 0
mov dword [eax], 1
jmp 0x100d2363
xor eax, eax
jmp 0x100d24ed
mov ecx, dword [ebp - 8]
test ecx, ecx
jne 0x100d24e5
lock inc dword [eax]
mov dword [ebp - 0xc], eax
jmp 0x100d24f4
push ecx
mov ecx, eax
call fcn.100cb2b0
mov dword [ebp - 0xc], eax
test eax, eax
je 0x100d252d
lea ecx, [eax + 0xc]
mov eax, dword [ebp + 8]
push eax
push ecx
lea eax, [ebp - 4]
push eax
call fcn.100cb130
mov esi, dword [ebp - 0x24]
add esp, 0xc
mov ecx, dword [ebp - 0xc]
mov dword [ebp + 0xc], ebx
or ebx, 0xffffffff
mov eax, ebx
lock xadd dword [ecx], eax
jne 0x100d2545
push ecx
call fcn.10450877
mov eax, dword [ebp - 0x28]
add esp, 4
mov dword [ebp + 0xc], eax
jmp 0x100d2545
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 4]
push 0x10469160
push eax
call fcn.100cb130
add esp, 0xc
or ebx, 0xffffffff
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x100d255d
mov eax, ebx
lock xadd dword [ecx], eax
jne 0x100d255d
push ecx
call fcn.10450877
add esp, 4
test esi, esi
je 0x100d2572
mov eax, ebx
lock xadd dword [esi], eax
jne 0x100d2572
push esi
call fcn.10450877
add esp, 4
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x100d258a
mov ecx, ebx
lock xadd dword [eax], ecx
jne 0x100d258a
push eax
call fcn.10450877
add esp, 4
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x100d25a2
mov ecx, ebx
lock xadd dword [eax], ecx
jne 0x100d25a2
push eax
call fcn.10450877
add esp, 4
mov eax, dword [ebp - 4]
test eax, eax
je 0x100d25ae
add eax, 0xc
jmp 0x100d25b3
mov eax, 0x10469160
push 0x1046af20
push eax
call fcn.10434f0b
mov ecx, dword [ebp + 0x10]
add esp, 8
test eax, eax
setne dl
mov byte [ecx], dl
test eax, eax
je 0x100d28f6
push eax
call fcn.10434d63
add esp, 4
xor esi, esi
jmp 0x100d293d
test eax, eax
jne 0x100d2639
mov esi, 0x10468d10
lea ecx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x100d25f0
sub esi, ecx
lea ebx, [esi + 1]
lea eax, [ebx + 0x10]
push eax
call fcn.10450898
mov ecx, eax
add esp, 4
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x100d264e
push esi
mov dword [ecx + 4], esi
mov dword [ecx + 8], ebx
add ecx, 0xc
push 0x10468d10
push ecx
call fcn.10425d60
mov ecx, dword [ebp - 0x18]
add esp, 0xc
mov byte [ecx + esi + 0xc], 0
mov dword [ecx], 1
jmp 0x100d264a
push 0x10468d10
mov ecx, eax
call fcn.100cb2b0
mov ecx, eax
mov dword [ebp - 0x18], eax
test ecx, ecx
jne 0x100d26b1
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x100d26aa
cmp byte [ebx], 0
je 0x100d26aa
mov esi, ebx
lea ecx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x100d2660
sub esi, ecx
lea eax, [esi + 0x11]
push eax
call fcn.10450898
add esp, 4
mov dword [ebp + 0xc], eax
test eax, eax
je 0x100d2759
lea ecx, [esi + 1]
mov dword [eax + 4], esi
push esi
mov dword [eax + 8], ecx
add eax, 0xc
push ebx
push eax
call fcn.10425d60
mov eax, dword [ebp + 0xc]
add esp, 0xc
mov byte [eax + esi + 0xc], 0
mov dword [eax], 1
jmp 0x100d2759
xor eax, eax
jmp 0x100d2756
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x100d2750
mov eax, ecx
mov dword [ebp + 0xc], eax
lock inc dword [ecx]
mov esi, eax
mov dword [ebp + 8], esi
mov dword [ebp - 0x28], esi
test edi, edi
jne 0x100d277d
mov ecx, esi
lock inc dword [esi]
push 0x1046af00
call fcn.100cb2b0
mov dword [ebp + 0x10], eax
test eax, eax
jne 0x100d2857
mov eax, dword [ebp - 8]
test eax, eax
je 0x100d2853
cmp byte [eax], 0
je 0x100d2853
mov ebx, eax
lea ecx, [ebx + 1]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x100d2707
sub ebx, ecx
lea eax, [ebx + 0x11]
push eax
call fcn.10450898
mov esi, eax
add esp, 4
test esi, esi
je 0x100d286f
mov ecx, dword [ebp - 8]
lea eax, [ebx + 1]
push ebx
mov dword [esi + 8], eax
lea eax, [esi + 0xc]
push ecx
push eax
mov dword [esi + 4], ebx
call fcn.10425d60
mov byte [esi + ebx + 0xc], 0
add esp, 0xc
mov dword [esi], 1
jmp 0x100d286f
push eax
call fcn.100cb2b0
mov dword [ebp + 0xc], eax
mov esi, eax
mov dword [ebp + 8], esi
test esi, esi
jne 0x100d26c9
mov esi, edi
mov dword [ebp + 8], esi
test edi, edi
je 0x100d27f3
lock inc dword [edi]
mov ecx, esi
jmp 0x100d26d9
mov ebx, dword [edi + 4]
lea eax, [esi + 4]
add ebx, dword [eax]
mov dword [ebp + 0x10], eax
lea eax, [ebx + 0x11]
push eax
call fcn.10450898
mov esi, eax
add esp, 4
mov dword [ebp + 8], esi
lea ecx, [esi + 0xc]
test esi, esi
je 0x100d27f3
lea eax, [ebx + 1]
mov dword [esi + 4], 0
mov dword [esi + 8], eax
mov eax, dword [ebp + 0x10]
mov byte [ecx], 0
mov dword [esi], 1
push dword [eax]
mov eax, dword [ebp - 0x28]
add eax, 0xc
push eax
push ecx
call fcn.10425d60
add esp, 0xc
lea eax, [edi + 0xc]
push dword [edi + 4]
push eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
add eax, 0xc
add eax, esi
push eax
call fcn.10425d60
mov eax, dword [ebp + 0xc]
add esp, 0xc
mov dword [esi + 4], ebx
mov byte [esi + ebx + 0xc], 0
mov dword [ebp + 0xc], eax
mov ecx, esi
test ecx, ecx
jne 0x100d26d9
mov esi, 0x1046af00
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x100d2805
sub esi, ecx
lea ebx, [esi + 1]
lea eax, [ebx + 0x10]
push eax
call fcn.10450898
add esp, 4
mov dword [ebp + 0x10], eax
test eax, eax
je 0x100d26ee
push esi
mov dword [eax + 4], esi
mov dword [eax + 8], ebx
add eax, 0xc
push 0x1046af00
push eax
call fcn.10425d60
mov eax, dword [ebp + 0x10]
add esp, 0xc
mov byte [eax + esi + 0xc], 0
mov dword [eax], 1
jmp 0x100d26e6
xor esi, esi
jmp 0x100d286f
mov ecx, dword [ebp - 8]
test ecx, ecx
jne 0x100d2865
mov esi, eax
lock inc dword [eax]
jmp 0x100d286f
push ecx
mov ecx, eax
call fcn.100cb2b0
mov esi, eax
mov ecx, dword [ebp - 4]
cmp esi, ecx
je 0x100d2902
test ecx, ecx
je 0x100d2890
or eax, 0xffffffff
lock xadd dword [ecx], eax
jne 0x100d2890
push ecx
call fcn.10450877
add esp, 4
mov dword [ebp - 4], esi
or ebx, 0xffffffff
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x100d28ae
mov ecx, ebx
lock xadd dword [eax], ecx
jne 0x100d28ae
push eax
call fcn.10450877
add esp, 4
mov eax, dword [ebp + 8]
test eax, eax
je 0x100d28c6
mov ecx, ebx
lock xadd dword [eax], ecx
jne 0x100d28c6
push eax
call fcn.10450877
add esp, 4
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x100d28de
mov ecx, ebx
lock xadd dword [eax], ecx
jne 0x100d28de
push eax
call fcn.10450877
add esp, 4
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x100d28f6
mov ecx, ebx
lock xadd dword [eax], ecx
jne 0x100d28f6
push eax
call fcn.10450877
add esp, 4
mov ecx, dword [ebp - 4]
test ecx, ecx
je 0x100d291f
add ecx, 0xc
jmp 0x100d2924
test esi, esi
je 0x100d2893
or ebx, 0xffffffff
mov eax, ebx
lock xadd dword [esi], eax
jne 0x100d2896
push esi
call fcn.10450877
add esp, 4
jmp 0x100d2896
mov ecx, 0x10469160
push 0x10469300
push ecx
call fcn.10434f0b
mov esi, eax
add esp, 8
test esi, esi
jne 0x100d293d
call fcn.1043a2d6
mov ecx, dword [ebp - 4]
or ebx, 0xffffffff
test ecx, ecx
je 0x100d295f
mov eax, ebx
lock xadd dword [ecx], eax
jne 0x100d2958
push ecx
call fcn.10450877
add esp, 4
mov dword [ebp - 4], 0
test edi, edi
je 0x100d2974
mov eax, ebx
lock xadd dword [edi], eax
jne 0x100d2974
push edi
call fcn.10450877
add esp, 4
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x100d298b
lock xadd dword [eax], ebx
dec ebx
jne 0x100d298b
push eax
call fcn.10450877
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc