Function at 0x100093bd
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
mov ecx, dword [esp + 0x1c]
mov eax, ecx
mov edx, dword [esp + 0x24]
xor eax, 0x7a
add dword [esp + 0x14], 0xfffffe04
push ebx
push ebp
push esi
lea ebx, [ecx - 0x136]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x20]
mov esi, edx
push edi
lea edi, [edx - 0x3e4f]
mov dword [esp + 0x2c], ebx
mov ebp, edi
mov dword [esp + 0x14], edi
xor esi, 0x76
mov dword [esp + 0x10], ebp
add edx, 0xaf
mov dword [esp + 0x1c], esi
lea eax, [ecx + 0x182]
mov dword [esp + 0x34], edx
cmp ebp, eax
mov ebp, dword [esp + 0x30]
jg 0x100095ca
mov eax, dword [esp + 0x18]
sub eax, 0xffffff80
cmp edx, eax
jl 0x100094f0
lea eax, [edx - 0xfa]
cmp esi, eax
jl 0x10009452
mov eax, dword [0x10074ad0]
add ebx, 0x250
mov dword [esp + 0x2c], ebx
mov dword [0x10074acc], eax
jmp 0x100094f0
lea eax, [ebx + 0x332]
and eax, 0x3fbe
cmp dword [ebp + 0x34], eax
jae 0x100094f0
mov eax, dword [0x10074a94]
sub eax, ecx
or eax, 0x3e7e
cmp esi, eax
je 0x100094f0
mov ebx, dword [0x10055f54]
or esi, 0x3e04
mov edx, dword [ebp + 0xf0]
mov ecx, dword [ebp + 0xcc]
sub edx, 0x3c77
mov edi, dword [ebp + 0x94]
and edx, ecx
mov eax, dword [ebx + 0x48]
add edi, 0x3f1e
add eax, dword [ebp + 0xbc]
add edi, ecx
add esi, dword [ebp + 0xb0]
push eax
mov eax, dword [esp + 0x30]
imul eax, dword [esp + 0x38]
imul eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x1c]
push edx
and eax, 0x288
push esi
or eax, 0x3c76
push eax
push edi
push ebx
call fcn.10009a8b
mov ebx, dword [esp + 0x48]
add esp, 0x1c
mov edi, dword [esp + 0x14]
mov esi, eax
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
mov eax, ebx
xor eax, 0x7f3f
cmp ecx, eax
jg 0x1000955d
mov eax, dword [esp + 0x10]
add edi, 0x3e18
add eax, 0x4008
mov ecx, edi
push eax
push ebp
lea eax, [edx + 0x10a]
xor ecx, 0x20b
push eax
xor edx, 0x1e0
push edx
push ecx
push ecx
call fcn.10009cf3
mov dword [esp + 0x4c], eax
lea ecx, [esi + 0x1e8]
mov eax, ebx
xor eax, 0x3d0
push eax
mov eax, dword [esp + 0x34]
push ecx
add eax, 0x1a3
push eax
push ecx
push dword [0x10055f54]
call fcn.1000d23f
add esp, 0x2c
lea ecx, [eax + 0x18d]
jmp 0x100095ca
mov eax, dword [ebp + 0xe8]
mov edx, dword [ebp + 0xa4]
imul eax, ebx
mov dword [esp + 0x18], edx
imul eax, esi
cmp edx, eax
jbe 0x100095ca
mov eax, dword [ebp + 0xa4]
mov ecx, dword [ebp + 0x6c]
or eax, edi
or eax, 0x3efe
cmp ecx, eax
jbe 0x100095af
mov ebx, ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov eax, dword [ebp + 0xa4]
add ebx, 3
or eax, edi
or eax, 0x3efe
cmp ebx, eax
ja 0x1000958d
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
mov eax, dword [ebp + 0xe8]
add edx, 3
imul eax, ebx
mov dword [esp + 0x18], edx
imul eax, esi
cmp edx, eax
ja 0x10009577
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
mov eax, edi
xor eax, 0x7e10
cmp edx, eax
jne 0x10009607
lea eax, [ebx + edi]
xor eax, 0x3ea3
cmp dword [ebp + 0xb4], eax
jae 0x10009607
mov eax, dword [ebp + 0x34]
and eax, 0x3cc2
cmp esi, eax
jbe 0x10009607
mov eax, edi
or eax, ecx
cmp esi, eax
je 0x10009607
mov eax, dword [ebp + 0xdc]
sub eax, edi
add ebx, eax
mov eax, edi
xor eax, 0x15d
cmp esi, eax
je 0x1000975e
lea eax, [ecx + 0x11a]
cmp dword [esp + 0x34], eax
jle 0x10009739
lea eax, [edi + 0x1a6]
xor esi, 0x24e
push eax
lea eax, [edi + 0x1f0]
push eax
lea eax, [edx + 0x3cce]
push eax
lea eax, [ebx + 0x31]
push eax
push ebp
push esi
call fcn.1000aac7
add esp, 0x18
xor esi, esi
mov eax, dword [ebp + 0x88]
mov ecx, dword [esi + eax]
add esi, 4
mov eax, dword [0x10074ae4]
xor eax, 1
add dword [ebp + 0xc0], eax
mov eax, dword [0x10055f54]
mov ebx, dword [eax + 0x3c]
imul ebx, ecx
mov ecx, dword [eax + 0x8c]
mov eax, dword [ebp + 0x58]
mov edx, ebx
shr edx, 0x10
mov byte [ecx + eax], dl
mov edx, ebx
inc dword [ebp + 0x58]
mov ecx, dword [0x10074a98]
mov eax, dword [0x10074acc]
shr edx, 8
mov byte [ecx + eax], dl
inc dword [0x10074a98]
mov eax, dword [ebp + 0x58]
mov ecx, dword [ebp + 0x8c]
mov byte [ecx + eax], bl
inc dword [ebp + 0x58]
mov eax, dword [0x10074a68]
xor eax, 0x1a1769
sub dword [ebp + 0xa4], eax
mov eax, dword [ebp + 0xdc]
add eax, dword [ebp + 0x60]
xor eax, 0x2a9678
or dword [ebp + 0x34], eax
mov ecx, dword [0x10055f54]
mov eax, dword [ebp + 0xf4]
xor eax, dword [ecx + 0x6c]
sub eax, 0x4b303
imul eax, dword [ecx + 0x6c]
mov dword [ecx + 0x6c], eax
mov eax, dword [ebp + 0x9c]
dec eax
or dword [ebp + 0x7c], eax
mov eax, dword [0x10055f54]
mov eax, dword [eax + 0xc0]
sub eax, dword [0x10074abc]
sub eax, 0x3c8a4e0c
or dword [ebp + 0x6c], eax
mov eax, dword [0x10055f54]
mov ecx, dword [eax + 0xb0]
sub ecx, dword [eax + 0xe0]
add ecx, 0x12
xor dword [0x10074ae8], ecx
cmp esi, 0x8130
jl 0x10009651
jmp 0x1000975e
mov eax, dword [0x10074ac4]
and eax, ebx
cmp esi, eax
jne 0x1000975e
mov edx, ebx
and edx, dword [esp + 0x10]
imul edx, ecx
mov dword [ebp + 0x60], edx
add esi, 2
mov eax, dword [0x10074ac4]
and eax, ebx
cmp esi, eax
je 0x1000974d
mov eax, dword [esp + 0x34]
pop edi
pop esi
pop ebp
xor eax, 0x14b
pop ebx
add esp, 0x10
ret