Function at 0x100a0270
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x74
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x28], eax
lea eax, [ebp + 0x14]
mov dword [ebp - 0x24], eax
lea eax, [ebp + 0xc]
mov dword [ebp - 0x20], eax
mov eax, esp
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x100b0770
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov esi, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x28]
mov eax, dword [0x102889f8]
mov ecx, dword [0x102889fc]
imul eax, ecx
mov ecx, 0xbda3e6e3
mul ecx
mov eax, edx
shr eax, 0x1f
add eax, 0xa0cde3c3
mov dword [ebp - 0x44], eax
push eax
mov eax, esp
push eax
mov ecx, esp
mov dword [ebp - 0x54], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x50], ecx
push eax
mov edi, esp
mov dword [ebp - 0x48], edi
push eax
mov edx, esp
sub esp, 0x20
mov ecx, esp
mov dword [ebp - 0x70], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x6c], ecx
sub esp, 8
mov ecx, esp
mov dword [ebp - 0x4c], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x68], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x64], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x60], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x5c], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp - 0x38]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x54]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x50]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov dword [edi], ebx
mov dword [edx], esi
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.100a1b70
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x48]
add esp, 8
mov ecx, dword [ecx]
sub esp, 4
mov dword [esp], eax
call fcn.1003e3f0
mov eax, dword [ebp - 0x48]
mov ecx, dword [eax]
call fcn.1004a3a0
mov ecx, eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x40], ecx
cmp eax, 0x18ebdd89
jbe 0x100a0a95
mov ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
mov edi, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x10], 0
sub esp, 0x14
mov eax, esp
mov dword [eax + 0x10], ebx
mov dword [eax + 0xc], edi
mov dword [eax + 8], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
call fcn.100a1cc0
add esp, 0x14
mov word [ebp - 0x72], ax
jmp 0x100a03d8
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x4c]
mov dx, word [ebp - 0x72]
mov word [eax], dx
call fcn.10027aa0
mov eax, dword [ebp - 0x6c]
movsx eax, byte [eax]
cmp eax, 0
jge 0x100a04a2
mov ecx, dword [0x10288a00]
mov edx, dword [0x10288a04]
mov esi, ecx
xor esi, 0xffffffff
mov eax, edx
and eax, esi
xor edx, 0xffffffff
and ecx, edx
or eax, ecx
or eax, 0x1e62a4b2
and eax, 0xd62d8735
mov edx, eax
xor edx, 0xffffffff
and edx, 0x594a901d
mov ecx, eax
and ecx, 0xa6b56fe2
imul ecx, edx
mov edx, eax
and edx, 0x594a901d
or eax, 0x594a901d
imul eax, edx
add eax, ecx
cmp eax, 0x604ce09d
jbe 0x100a0b05
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
mov eax, dword [0x10288a08]
mov ebx, dword [0x10288a0c]
mov edi, ebx
xor edi, 0xffffffff
mov esi, eax
and esi, edi
mov edi, eax
xor edi, ebx
add eax, edi
sub eax, esi
xor eax, 0x95253fbd
add eax, 0xd94652d1
sub eax, 0xa0860960
mov edx, dword [edx]
mov dword [edx], 2
mov ecx, dword [ecx]
mov word [ecx], 0
cmp eax, 0x7c450965
je 0x100a0b05
jmp 0x100a0948
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x64]
mov esi, dword [ebp - 0x70]
mov eax, dword [0x10288a18]
mov ebx, dword [0x10288a1c]
mov edi, ebx
and edi, eax
xor edi, 0xffffffff
add eax, ebx
add eax, 1
add eax, edi
imul eax, eax, 0xb98206d2
xor eax, 0x18b90d71
imul eax, eax, 0x2d6877db
movsx edi, byte [esi]
cmp edi, 0x2d
sete bl
and bl, 1
mov byte [ecx], bl
mov dword [edx], esi
mov cl, byte [ecx]
mov byte [ebp - 0x73], cl
cmp eax, 0xb554fec0
jae 0x100a0b1f
mov al, byte [ebp - 0x73]
test al, 1
jne 0x100a0505
jmp 0x100a050f
mov eax, dword [ebp - 0x64]
mov ecx, dword [eax]
add ecx, 1
mov dword [eax], ecx
mov edi, dword [ebp - 0x64]
mov edx, dword [ebp - 0x60]
mov esi, dword [ebp - 0x58]
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x6c]
movsx ecx, byte [ecx]
mov edi, dword [edi]
sub esp, 0x10
mov dword [esp], edi
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call fcn.100b7698
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x64]
add esp, 0x10
mov edi, eax
mov eax, dword [ebp - 0x60]
mov dword [esi], edi
mov esi, dword [esi]
mov edx, dword [edx]
mov word [edx], si
mov eax, dword [eax]
cmp eax, dword [ecx]
je 0x100a06bc
mov ecx, dword [0x10288a30]
xor ecx, dword [0x10288a34]
add ecx, 0x95d04eb2
mov eax, ecx
and eax, 0xd8e53a6d
or ecx, 0xd8e53a6d
xor ecx, 0xffffffff
or eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
or eax, 0xe06cd403
and ecx, 0x1f932bfc
xor eax, 0xffffffff
or eax, ecx
cmp eax, 0x680f4c8c
jae 0x100a0b3d
mov ecx, dword [ebp - 0x5c]
mov edx, dword [0x10288a38]
mov esi, dword [0x10288a3c]
mov eax, edx
xor eax, 0xffffffff
mov edi, esi
xor edi, 0xffffffff
or eax, edi
and edx, esi
xor eax, 0xffffffff
or eax, edx
add eax, 0x6eb0288f
mov esi, eax
and esi, 0x1dc5dc07
mov edx, eax
or edx, 0x1dc5dc07
xor edx, 0xffffffff
imul edx, esi
mov esi, eax
and esi, 0xe23a23f8
or eax, 0xe23a23f8
imul eax, esi
add eax, edx
and eax, 0xdc60ae7b
cmp dword [ecx], 0
setne cl
mov byte [ebp - 0x74], cl
cmp eax, 0xccca6f8
jb 0x100a0b3d
mov al, byte [ebp - 0x74]
test al, 1
jne 0x100a06bc
jmp 0x100a0617
mov eax, dword [0x10288a40]
sub eax, dword [0x10288a44]
add eax, 0x455d9425
mov ecx, eax
xor ecx, 0x6ce3a7c4
xor ecx, 0xffffffff
or eax, 0x6ce3a7c4
and eax, ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0x2eda292f
mov ecx, eax
and ecx, 0xd125d6d0
imul ecx, edx
mov edx, eax
and edx, 0x2eda292f
or eax, 0x2eda292f
imul eax, edx
add eax, ecx
cmp eax, 0xdb5db722
jae 0x100a0b42
mov ecx, dword [ebp - 0x58]
mov eax, dword [0x10288a48]
mov edx, dword [0x10288a4c]
sub eax, 0x3e578d22
sub eax, edx
add eax, 0x3e578d22
xor eax, 0x26ff4512
sub eax, 0xd5b46d9f
xor eax, 0x9bc118b6
cmp dword [ecx], 0xffff
seta cl
mov byte [ebp - 0x75], cl
cmp eax, 0xb5ffff26
jae 0x100a066c
mov al, byte [ebp - 0x75]
test al, 1
jne 0x100a06bc
jmp 0x100a0759
mov ecx, dword [0x10288a50]
mov esi, dword [0x10288a54]
mov edi, esi
xor edi, 0xffffffff
mov edx, ecx
and edx, edi
mov eax, ecx
or eax, edi
xor eax, 0xffffffff
imul eax, edx
mov edx, ecx
and edx, esi
or ecx, esi
imul ecx, edx
add ecx, eax
mov eax, ecx
and eax, 0xa256a7d6
or ecx, 0xa256a7d6
add eax, ecx
mov ecx, 0x4c1628b8
xor edx, edx
div ecx
and eax, 0x629f921b
cmp eax, 0x10017b53
jae 0x100a0b47
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
mov eax, dword [0x10288a58]
imul eax, dword [0x10288a5c]
sub eax, 0xa017e231
imul eax, eax, 0xc1ff23f2
add eax, 0x33fdad71
add eax, 0x26c15195
sub eax, 0x33fdad71
mov edx, dword [edx]
mov dword [edx], 2
mov ecx, dword [ecx]
mov word [ecx], 0xffff
cmp eax, 0x70a55117
je 0x100a0b47
jmp 0x100a0809
mov eax, dword [0x10288a60]
add eax, dword [0x10288a64]
mov edx, eax
and edx, 0xffe1c817
mov ecx, eax
or ecx, 0xffe1c817
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x1e37e8
or eax, 0x1e37e8
imul eax, edx
add eax, ecx
and eax, 0x339877ec
add eax, 0x1c64bd12
cmp eax, 0x823a66b7
ja 0x100a0b61
mov eax, dword [ebp - 0x68]
test byte [eax], 1
je 0x100a0804
mov ecx, dword [ebp - 0x54]
mov edx, dword [str.FDkR]
sub edx, dword [0x10288a7c]
mov eax, edx
and eax, 0x75f85b30
shl eax, 1
xor edx, 0x75f85b30
add edx, eax
mov eax, edx
add eax, 1
xor edx, 0xffffffff
or edx, 0x3cbf56b1
add edx, eax
mov eax, edx
xor eax, 0x35178e18
and eax, edx
mov edx, dword [ecx]
movzx esi, word [edx]
xor edx, edx
sub edx, esi
mov ecx, dword [ecx]
mov word [ecx], dx
cmp eax, 0x76b8554f
je 0x100a07ad
jmp 0x100a0804
jmp 0x100a0809
mov eax, dword [ebp - 0x6c]
test byte [eax + 1], 1
je 0x100a0892
mov eax, dword [0x10288a80]
or eax, dword [0x10288a84]
mov ecx, eax
xor ecx, 0xa16671a1
xor ecx, 0xffffffff
or eax, 0xa16671a1
and eax, ecx
xor ecx, ecx
sub ecx, eax
add ecx, 0x2fd03bb7
xor eax, eax
sub eax, ecx
sub eax, 0xd65e4714
sub eax, 0xbcb50ebd
add eax, 0xd65e4714
cmp eax, 0x5d55221c
jb 0x100a0b66
mov ecx, dword [ebp - 0x50]
mov eax, dword [0x10288a88]
xor edx, edx
div dword [0x10288a8c]
or eax, 0x72a1f97d
add eax, 0x935f4bdf
sub eax, 0x782291b5
mov ecx, dword [ecx]
mov dword [ecx], 2
cmp eax, 0x2a352f37
jb 0x100a085b
jmp 0x100a0892
mov eax, dword [0x10288a90]
mov ecx, dword [0x10288a94]
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
add eax, 0x9b748e1d
mov edx, eax
xor edx, 0xffffffff
and edx, 0x5a3ea201
mov ecx, eax
and ecx, 0xa5c15dfe
imul ecx, edx
mov edx, eax
and edx, 0x5a3ea201
or eax, 0x5a3ea201
imul eax, edx
add eax, ecx
imul eax, eax, 0x74d6cdce
cmp eax, 0x685edc05
jbe 0x100a0b76
mov ecx, dword [0x10288a98]
mov eax, dword [0x10288a9c]
sub ecx, 0xb1f5b7c9
sub ecx, eax
add ecx, 0xb1f5b7c9
add ecx, 0x699c469b
add ecx, 0x64a0e2ed
sub ecx, 0x699c469b
mov eax, ecx
and eax, 0x2d7f28db
xor ecx, 0xffffffff
and ecx, 0xd280d724
or eax, ecx
xor eax, 0xffffffff
mov ecx, eax
xor ecx, 0xa37ab130
xor ecx, 0xffffffff
or eax, 0xa37ab130
and eax, ecx
cmp eax, 0x9b9d2cd5
je 0x100a0b76
jmp 0x100a0948
mov ecx, dword [str.c_b__b]
sub ecx, dword [0x10288aa4]
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xb131d11a
and ecx, 0x4ece2ee5
or eax, ecx
xor eax, 0xb146dd19
imul eax, eax, 0xcaf2ea82
and eax, 0x98fbac7a
mov dword [ebp - 0x10], 0xffffffff
cmp eax, 0x3c369439
jb 0x100a0b7b
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.100a5710
add esp, 8
test al, 1
jne 0x100a09ad
jmp 0x100a0a70
mov ecx, dword [0x10288ab0]
mov esi, dword [0x10288ab4]
mov eax, ecx
xor eax, 0xffffffff
mov edx, esi
and edx, eax
mov edi, esi
xor edi, 0xffffffff
mov eax, ecx
and eax, edi
imul eax, edx
mov edx, ecx
and edx, esi
or ecx, esi
imul ecx, edx
add ecx, eax
and ecx, 0xe20b7a04
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x7f5ec796
and ecx, 0x80a13869
or eax, ecx
xor eax, 0xdb371261
mov ecx, eax
xor ecx, 0xbabf7c3b
and eax, 0x454083c4
shl eax, 1
sub eax, ecx
cmp eax, 0xeef249e8
jae 0x100a0b98
mov ecx, dword [ebp - 0x50]
mov eax, dword [0x10288ab8]
xor edx, edx
div dword [0x10288abc]
mov edx, eax
mov eax, edx
xor eax, 0xffffffff
and eax, 0xcb9158af
and edx, 0x346ea750
or eax, edx
imul eax, eax, 0x16eeb74
mov edx, eax
xor edx, 0xede9c8ce
xor edx, 0xffffffff
and edx, 0xede9c8ce
shl edx, 1
sub edx, 0xede9c8ce
sub eax, edx
mov ecx, dword [ecx]
mov edx, dword [ecx]
or edx, 1
mov dword [ecx], edx
cmp eax, 0x4929da19
jbe 0x100a0a12
jmp 0x100a0a70
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x20]
movsd xmm0, qword [edx]
movsd qword [ecx], xmm0
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x20
mov ebx, dword [ebp - 0x28]
push eax
mov esi, esp
push eax
mov ecx, esp
push eax
mov eax, esp
push eax
mov edx, esp
mov dword [ebp - 0x7c], edx
push eax
mov edx, esp
sub esp, 8
mov edi, esp
mov dword [ebp - 0x80], edi
mov edi, dword [ebp - 0x38]
mov dword [esi], edi
mov edi, dword [ebp - 0x7c]
mov esi, dword [ebp - 0x30]
mov dword [ecx], esi
mov esi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x2c]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
mov dword [edi], ebx
mov dword [edx], esi
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.100a1b70
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x7c]
add esp, 8
mov ecx, dword [ecx]
sub esp, 4
mov dword [esp], eax
call fcn.1003e3f0
mov eax, dword [ebp - 0x7c]
mov ecx, dword [eax]
call fcn.1004a3a0
jmp 0x100a02c9
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
mov ecx, dword [ecx]
mov dword [ecx], 2
mov eax, dword [eax]
mov word [eax], 0
jmp 0x100a0452
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x68]
movsx esi, byte [ecx]
cmp esi, 0x2d
sete bl
and bl, 1
mov byte [edx], bl
mov dword [eax], ecx
jmp 0x100a04a2
jmp 0x100a059f
jmp 0x100a066c
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
mov ecx, dword [ecx]
mov dword [ecx], 2
mov eax, dword [eax]
mov word [eax], 0xffff
jmp 0x100a070e
jmp 0x100a07a1
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov dword [eax], 2
jmp 0x100a085b
jmp 0x100a08e6
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.100a5710
add esp, 8
jmp 0x100a0988
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov ecx, dword [eax]
mov edx, ecx
and edx, 0xfffffffe
mov esi, ecx
xor esi, 1
add ecx, esi
sub ecx, edx
mov dword [eax], ecx
jmp 0x100a0a12