Function at 0x100a0d40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x38
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 8]
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], 0x100b4c90
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov eax, dword [0x1028d7c0]
mov edx, dword [0x1028d7c4]
mov ecx, eax
and ecx, edx
shl ecx, 1
add eax, edx
sub eax, ecx
xor eax, 0xffffffff
and eax, 0xf305afde
xor eax, 0xffffffff
mov ecx, 0x350e319a
xor edx, edx
div ecx
or eax, 0x43c93045
cmp eax, 0x9ec7ba26
ja 0x100a102e
mov edi, dword [ebp - 0x24]
mov eax, dword [0x1028d7c8]
mov ecx, dword [0x1028d7cc]
xor edx, edx
div ecx
mov edx, dword [ebp - 0x20]
mov esi, eax
not esi
and esi, 0x4c29808b
mov ecx, eax
and ecx, 0xb3d67f74
imul ecx, esi
mov esi, eax
and esi, 0x4c29808b
or eax, 0x4c29808b
imul eax, esi
add eax, ecx
imul eax, eax, 0xee016243
xor eax, 0xd74396ca
push eax
mov esi, esp
mov dword [ebp - 0x38], esi
push eax
mov ecx, esp
mov dword [ebp - 0x34], ecx
sub esp, 0x34
mov ebx, esp
mov dword [ebp - 0x30], ebx
push eax
mov ebx, esp
mov dword [ebp - 0x2c], ebx
mov dword [esi], edi
mov dword [ecx], edx
cmp dword [ecx], 0
setne cl
mov byte [ebp - 0x25], cl
cmp eax, 0x606fec4a
jbe 0x100a0db4
mov al, byte [ebp - 0x25]
test al, 1
jne 0x100a0e3d
jmp 0x100a0fde
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
cmp dword [eax], 0
jne 0x100a0fde
mov dword [ebp - 0x10], 0xffffffff
sub esp, 4
mov eax, esp
mov dword [eax], 8
call fcn.100b5a0e
mov ecx, dword [ebp - 0x2c]
add esp, 4
mov edx, eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x3c], edx
mov byte [ecx], 1
mov ecx, dword [eax]
call fcn.100404f0
mov ecx, dword [ebp - 0x30]
mov edx, eax
mov dword [ebp - 0x10], 0
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.10040940
jmp 0x100a0e97
mov eax, dword [0x1028d7e0]
imul eax, dword [0x1028d7e4]
imul eax, eax, 0x482191a5
mov ecx, 0x5092e7c8
xor edx, edx
div ecx
imul eax, eax, 0x62aae201
cmp eax, 0x1c738669
ja 0x100a1043
mov eax, dword [0x1028d7e8]
mov ecx, dword [0x1028d7ec]
sub eax, 0xcda12139
add eax, ecx
add eax, 0xcda12139
add eax, 0x9be7bf1b
mov ecx, 0xcaf44474
xor edx, edx
div ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0x6db2aeb5
mov ecx, eax
and ecx, 0x924d514a
imul ecx, edx
mov edx, eax
and edx, 0x6db2aeb5
or eax, 0x6db2aeb5
imul eax, edx
add eax, ecx
cmp eax, 0xd882876
je 0x100a1043
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x10], 1
sub esp, 8
mov eax, esp
mov dword [eax], edx
mov dword [eax + 4], 0
call fcn.100a11c0
jmp 0x100a0f40
mov eax, dword [0x1028d7f0]
xor edx, edx
div dword [0x1028d7f4]
imul eax, eax, 0xa9aa1aa0
sub eax, 0xeabeaeeb
xor eax, 0x4648d7ec
cmp eax, 0x5fe05899
je 0x100a1048
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x2c]
mov eax, dword [0x1028d7f8]
mov ebx, dword [0x1028d7fc]
mov edi, ebx
and edi, eax
xor edi, 0xffffffff
add eax, ebx
add eax, 1
add eax, edi
sub eax, 0xcd6ab19e
add eax, 0xe6e0bd41
mov ebx, eax
xor ebx, 0xffffffff
mov edi, ebx
and edi, 0x4ce0c9cf
and eax, 0xb31f3630
or edi, eax
mov eax, dword [ebp - 0x34]
xor edi, 0xbaa66b7e
or ebx, 0x9b95d4e
xor ebx, 0xffffffff
or edi, ebx
mov dword [ebp - 0x40], edi
mov byte [esi], 0
mov eax, dword [eax]
mov dword [eax], edx
call fcn.10040e10
mov eax, dword [ebp - 0x40]
cmp eax, 0x2844e499
jbe 0x100a1048
jmp 0x100a0fde
jmp 0x100a0fe3
mov eax, dword [0x1028d828]
mov edx, dword [0x1028d82c]
mov ecx, eax
and ecx, edx
shl ecx, 1
xor eax, edx
add eax, ecx
imul eax, eax, 0xea8a61dd
mov ecx, 0x699998cb
xor edx, edx
div ecx
imul eax, eax, 0x31b1b4a9
cmp eax, 0x410523dc
je 0x100a1065
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, 4
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
push eax
mov edx, esp
push eax
mov eax, esp
mov dword [edx], esi
mov dword [eax], ecx
jmp 0x100a0db4
jmp 0x100a0ec3
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x34]
mov esi, dword [ebp - 0x2c]
mov byte [esi], 0
mov eax, dword [eax]
mov dword [eax], edx
call fcn.10040e10
jmp 0x100a0f68
jmp 0x100a0fe3