Function at 0x650ab0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x298
cmp dword [ecx + 0x70], 4
call 0x650ac8
pop esi
jne 0x653cad
mov eax, dword [ecx + 0xb0]
mov ebx, ecx
sub eax, dword [ecx + 0xac]
cmp eax, dword [ecx + 0xc8]
jb 0x653cad
mov eax, dword [0x94bccc]
mov edi, edx
mov dword [esp + 0x14], ebx
test eax, eax
je 0x650d0f
mov dword [esp + 0xf8], 2
mov dword [esp + 0x108], 0
mov eax, dword [0x94bccc]
lea edx, [ebx + 0x70]
cmp eax, 1
ja 0x650f64
movzx eax, byte [0x94a984]
test al, al
je 0x650f64
movzx eax, al
cmp eax, 1
je 0x650b63
cmp eax, 2
je 0x650bb5
mov ecx, 0x94a97c
mov dword [esp], esi
mov esi, edx
call fcn.007d3740
mov edx, esi
mov esi, dword [esp]
test al, al
je 0x650f64
movzx eax, al
cmp eax, 2
je 0x650bb5
mov eax, dword [0x94a97c]
mov ecx, dword [0x94bfb8]
cmp ecx, 2
jne 0x650f64
mov dword [esp + 0x10], edx
cmp dword [0x94bcc0], 0
mov edx, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov ecx, dword [0x94bcc8]
je 0x650ba1
mov dword [esp], esi
mov esi, dword [ecx + 8]
dec esi
and esi, 0xfffffff8
lea edx, [esi + edx + 8]
mov esi, dword [esp]
push eax
push edx
call dword [ecx + 0x14]
add esp, 8
mov edx, dword [esp + 0x10]
test al, al
je 0x650f64
mov eax, dword [0x94a97c]
mov dword [esp], esi
mov dword [esp + 0x10], edx
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x653cd1
mov esi, dword [eax + 0x1c]
mov edx, dword [eax + 0x24]
mov ebx, dword [eax + 0x28]
cmp ecx, 1
mov dword [esp + 0x70], 0x8a9894
mov dword [esp + 0x74], 1
mov dword [esp + 0x80], 0
mov dword [esp + 0x78], 0x93d1f8
mov dword [esp + 0x7c], 0
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], 0
je 0x653cd1
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], edx
lea edx, [esp + 0x5c]
lea esi, [esp + 0x70]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], 1
mov dword [esp + 0x34], edi
mov dword [esp + 0x18], edx
lea edx, [esp + 0x48]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], 0x8a682c
lea esi, [esp + 0x34]
mov dword [esp + 0x24], edx
lea edx, [esp + 0x18]
mov dword [esp + 0x28], esi
lea esi, [eax + 0x1c]
mov dword [esp + 0x2c], 0x8a9870
mov dword [esp + 0x38], edx
lea edx, [esp + 0x38]
mov dword [esp + 0x3c], 2
mov dword [esp + 0x40], esi
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], eax
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 1
mov eax, dword [0x94bfb8]
cmp eax, 2
jne 0x650cf8
cmp dword [0x94bcc0], 0
mov ebx, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov esi, dword [0x94bcc8]
je 0x650cd6
mov eax, dword [esi + 8]
dec eax
and eax, 0xfffffff8
lea ebx, [eax + ebx + 8]
lea eax, [esp + 0xa8]
push eax
push ebx
call dword [esi + 0x28]
add esp, 8
test al, al
je 0x650cf8
lea eax, [esp + 0xa8]
push eax
push ebx
call dword [esi + 0x2c]
add esp, 8
movzx eax, byte [edi]
mov ecx, dword [esp]
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
add ecx, dword [eax*4 + 0x653ed4]
jmp ecx
movzx eax, byte [0x94a978]
test al, al
je 0x650afc
movzx eax, al
cmp eax, 1
je 0x650d45
cmp eax, 2
je 0x650d8f
mov ecx, 0x94a970
call fcn.007d3740
test al, al
je 0x650afc
movzx eax, al
cmp eax, 2
je 0x650d8f
mov eax, dword [0x94a970]
mov ecx, dword [0x94bfb8]
cmp ecx, 2
jne 0x650afc
cmp dword [0x94bcc0], 0
mov edx, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov ecx, dword [0x94bcc8]
je 0x650d7f
mov dword [esp], esi
mov esi, dword [ecx + 8]
dec esi
and esi, 0xfffffff8
lea edx, [esi + edx + 8]
mov esi, dword [esp]
push eax
push edx
call dword [ecx + 0x14]
add esp, 8
test al, al
je 0x650afc
mov ebx, dword [0x94a970]
mov ecx, dword [ebx + 0x20]
test ecx, ecx
je 0x653d65
mov edx, dword [ebx + 0x1c]
movq xmm0, qword [ebx + 0x24]
lea eax, [ebx + 0x1c]
mov dword [esp + 0x5c], edi
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ecx
lea ecx, [esp + 0x70]
lea edx, [esp + 0x18]
movq qword [esp + 0x78], xmm0
mov dword [esp + 0x80], 0
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x5c]
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], 1
mov dword [esp + 0x50], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], 0x8a9870
mov eax, dword [0x94bfb8]
cmp eax, 2
jne 0x650eb4
mov ecx, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov edx, dword [0x94bcc8]
cmp dword [0x94bcc0], 0
lea eax, [esp + 0x48]
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], eax
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 1
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
je 0x650ef7
mov eax, dword [edx + 8]
dec eax
and eax, 0xfffffff8
lea eax, [eax + ecx + 8]
lea ecx, [esp + 0xa8]
push ecx
push eax
call dword [edx + 0x1c]
mov ecx, dword [esp + 0x10]
add esp, 8
lock inc dword [ecx]
jle 0x653dc8
mov dword [esp + 0xf4], edx
mov edx, dword [esp + 4]
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf8], 1
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x100], edx
mov dword [esp + 0x108], ebx
mov eax, dword [edx + 8]
dec eax
and eax, 0xfffffff8
lea ecx, [eax + ecx + 8]
jmp 0x650f40
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf0], 0xdead
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set
mov dword [esp + 0x100], 0x93b6a0
mov ecx, str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set
mov edx, 0x93b6a0
jmp 0x650f39
lea eax, [esp + 0xa8]
push eax
push ecx
mov eax, dword [esp + 0xc]
call dword [eax + 0x1c]
mov ecx, dword [esp + 0x10]
add esp, 8
mov dword [esp + 0xf4], edx
mov edx, dword [esp + 4]
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x100], edx
mov dword [esp + 0x108], ebx
lea eax, [esp + 0xf0]
push eax
push ecx
call dword [edx + 0x30]
add esp, 8
mov ebx, dword [esp + 0x14]
mov eax, dword [0x94bccc]
lea edx, [ebx + 0x70]
cmp eax, 1
jbe 0x650b23
movzx eax, byte [edi]
add esi, dword [eax*4 + 0x653ed4]
jmp esi
mov ecx, 0x8a97bc
mov edx, 0x25
push 0x8a9850
call fcn.007c1ca0
mov ecx, ebx
call fcn.007c1920
mov ecx, edi
mov edx, eax
call fcn.007c1920
mov ecx, 0x8a6758
mov edx, 0x22
push 0x8a9880
call fcn.007c2000
lea eax, [esp + 0x5c]
lea edx, [esp + 0x48]
lea ecx, [esp + 0x18]
mov dword [esp + 0xa8], 0x9390ec
mov dword [esp + 0xac], 2
mov dword [esp + 0xb8], 0
mov dword [esp + 0x48], edi
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], fcn.00412930
mov dword [esp + 0x20], edx
lea ecx, [esp + 0xa8]
mov edx, 0x8aefbc
mov dword [esp + 0x24], fcn.00412930
mov dword [esp + 0xb4], 2
call fcn.007c1b50
mov ecx, str.assertion_failed:_payload_len_be_0..5_.iter__.all_b_b__0_
mov edx, 0x3e
push 0x8286e8
call fcn.007c1ca0
mov ecx, 0x8a6758
mov edx, 0x22
push 0x8a9860
call fcn.007c2000
mov ecx, str.not_implemented
mov edx, 0xf
push 0x8a98dc
call fcn.007c1ca0
mov ecx, esi
mov edx, eax
push 0x8286f8
call fcn.007c1e60
mov ecx, eax
push 0x8286f8
call fcn.007c1c40
call fcn.007c1920
mov ecx, dword [esp + 0xc]
mov edx, edi
push 0x8286f8
call fcn.007c1e60
mov ecx, edi
push 0x8286f8
call fcn.007c1c40
ud2