Function at 0x6d101731
Capabilities:
Allocate or change rwx memory
Create thread
Execute shellcode via indirect call
Inject thread
Spawn thread to rwx shellcode

Disassembly:
push ebp
lea ebp, [esp - 0xd10]
sub esp, 0xd90
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp + 0xd0c], eax
mov eax, dword [ebp + 0xd20]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 0xd24]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp + 0xd28]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp + 0xd30]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp + 0xd34]
push ebx
mov ebx, dword [ebp + 0xd18]
mov dword [ebp - 0x6c], eax
mov eax, dword [0x6d104010]
push esi
mov esi, dword [ebp + 0xd2c]
mov dword [ebp - 0x5c], eax
mov eax, dword [0x6d104014]
push edi
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x54]
push 0x6d10337c
push eax
call sub.msvcr100.dll_strcpy
lea eax, [ebp - 0x44]
push str.JVM_EnqueueOperation
push eax
call sub.msvcr100.dll_strcpy
lea eax, [ebp - 0x24]
push str._JVM_EnqueueOperation_20
push eax
call sub.msvcr100.dll_strcpy
push esi
push ebx
push 0x10
pop edi
lea esi, [ebp - 4]
call fcn.6d101aaa
mov eax, dword [ebx]
add esp, 0x20
push dword [ebp - 0x6c]
push ebx
call dword [eax + 0x2ac]
mov esi, eax
mov dword [ebp - 0x78], esi
mov edi, 0x400
test esi, esi
jle 0x6d10184d
cmp esi, 3
jle 0x6d1017fc
push str.Too_many_arguments
push ebx
call sub.java.dll__JNU_ThrowInternalError_8
and dword [ebp - 0x60], 0
test esi, esi
jle 0x6d10184d
lea eax, [ebp + 0xc]
mov dword [ebp - 0x64], eax
push dword [ebp - 0x60]
mov eax, dword [ebx]
push dword [ebp - 0x6c]
push ebx
call dword [eax + 0x2b4]
test eax, eax
jne 0x6d101825
mov eax, dword [ebp - 0x64]
mov byte [eax], 0
jmp 0x6d101834
mov esi, dword [ebp - 0x64]
push eax
push ebx
call fcn.6d101aaa
mov esi, dword [ebp - 0x78]
pop ecx
pop ecx
mov eax, dword [ebx]
push ebx
call dword [eax + 0x3c]
test eax, eax
jne 0x6d1019e4
inc dword [ebp - 0x60]
add dword [ebp - 0x64], edi
cmp dword [ebp - 0x60], esi
jl 0x6d10180a
push 3
pop eax
cmp esi, eax
jge 0x6d101867
mov ecx, esi
shl ecx, 0xa
lea ecx, [ebp + ecx + 0xc]
sub eax, esi
mov byte [ecx], 0
add ecx, edi
dec eax
jne 0x6d10185f
push dword [ebp - 0x7c]
mov edi, 0x100
push ebx
lea esi, [ebp + 0xc0c]
call fcn.6d101aaa
mov esi, dword [sym.imp.kernel32.dll_VirtualAllocEx]
pop ecx
pop ecx
push 4
push 0x1000
mov edi, 0xd68
push edi
push 0
push dword [ebp - 0x74]
call esi
mov dword [ebp - 0x60], eax
test eax, eax
jne 0x6d1018ae
push str.VirtualAllocEx_failed
push ebx
call sub.java.dll__JNU_ThrowIOExceptionWithLastError_8
jmp 0x6d1019e4
push 0
push edi
mov edi, dword [sym.imp.kernel32.dll_WriteProcessMemory]
lea ecx, [ebp - 0x5c]
push ecx
push eax
push dword [ebp - 0x74]
call edi
push dword [ebp - 0x80]
mov eax, dword [ebx]
push ebx
call dword [eax + 0x2ac]
lea ecx, [ebp - 0x65]
push ecx
push dword [ebp - 0x80]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebx]
push ebx
call dword [eax + 0x2e0]
push 0x40
push 0x1000
push dword [ebp - 0x6c]
mov dword [ebp - 0x64], eax
push 0
push dword [ebp - 0x74]
call esi
xor esi, esi
mov dword [ebp - 0x78], eax
cmp eax, esi
jne 0x6d10191f
push str.VirtualAllocEx_failed
push ebx
call sub.java.dll__JNU_ThrowIOExceptionWithLastError_8
push 0x8000
push esi
push dword [ebp - 0x60]
push dword [ebp - 0x74]
call dword [sym.imp.kernel32.dll_VirtualFreeEx]
jmp 0x6d1019e4
push esi
push dword [ebp - 0x6c]
push dword [ebp - 0x64]
push eax
push dword [ebp - 0x74]
call edi
cmp byte [ebp - 0x65], 0
je 0x6d101943
mov eax, dword [ebx]
push 2
push dword [ebp - 0x64]
push dword [ebp - 0x80]
push ebx
call dword [eax + 0x300]
push esi
push esi
push dword [ebp - 0x60]
push dword [ebp - 0x78]
push esi
push esi
push dword [ebp - 0x74]
call dword [sym.imp.kernel32.dll_CreateRemoteThread]
mov edi, eax
cmp edi, esi
je 0x6d1019ba
push 0xffffffffffffffff
push edi
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
test eax, eax
je 0x6d101976
push str.WaitForSingleObject_failed
push ebx
call sub.java.dll__JNU_ThrowIOExceptionWithLastError_8
jmp 0x6d1019b1
lea eax, [ebp - 0x7c]
push eax
push edi
call dword [sym.imp.kernel32.dll_GetExitCodeThread]
mov eax, dword [ebp - 0x7c]
cmp eax, esi
je 0x6d1019b1
sub eax, 0xc8
je 0x6d1019a6
dec eax
je 0x6d10199f
push str.Remote_thread_failed_for_unknown_reason
push ebx
call sub.java.dll__JNU_ThrowInternalError_8
jmp 0x6d1019b1
push str.Unable_to_enqueue_operation:_the_target_VM_does_not_support_attach_mechanism
jmp 0x6d1019ab
push str.jvm.dll_not_loaded_by_target_process
push ebx
call sub.java.dll__JNU_ThrowIOException_8
push edi
call dword [sym.imp.kernel32.dll_CloseHandle]
jmp 0x6d1019c5
push str.CreateRemoteThread_failed
push ebx
call sub.java.dll__JNU_ThrowIOExceptionWithLastError_8
mov edi, dword [sym.imp.kernel32.dll_VirtualFreeEx]
mov ebx, 0x8000
push ebx
push esi
push dword [ebp - 0x78]
push dword [ebp - 0x74]
call edi
push ebx
push esi
push dword [ebp - 0x60]
push dword [ebp - 0x74]
call edi
mov ecx, dword [ebp + 0xd0c]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.6d101a3a
add ebp, 0xd10
leave
ret 0x20