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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xc8
mov eax, dword [edx]
mov esi, edx
mov dword [esp + 0xac], ecx
lea edi, [eax + 8]
mov dword [esp], eax
push edi
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x94bfbc]
test eax, 0x7fffffff
jne 0x654d42
xor ebx, ebx
mov eax, dword [esp]
movzx eax, byte [eax + 0xc]
test al, al
jne 0x654d5b
mov eax, dword [esi + 4]
lea esi, [eax + 8]
mov dword [esp + 0xb0], eax
push esi
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x94bfbc]
test eax, 0x7fffffff
jne 0x654d81
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xb0]
movzx eax, byte [eax + 0xc]
mov edx, dword [esp]
test al, al
jne 0x6550c1
mov eax, dword [ebp + 8]
cmp dword [eax + 0x10], 0
je 0x653faf
mov eax, dword [eax + 0x14]
mov dword [edx + 0x18], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 0x30], 0
mov dword [esp + 0xc0], esi
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xa4], edi
je 0x653fd5
cmp dword [eax + 0x34], 0
setne byte [edx + 0x159]
cmp dword [eax + 0x18], 0
je 0x654f4f
mov eax, dword [eax + 0x1c]
mov ecx, dword [edx + 0x154]
xor ebx, ebx
mov edi, edx
mov edx, 0xff
mov esi, eax
mov dword [edi + 0x154], eax
sub esi, ecx
setne bl
cmovae edx, ebx
lea ebx, [edi + 0x10]
add edi, 0x160
cmp dl, 0xff
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], edi
je 0x6540ed
movzx eax, dl
cmp eax, 1
jne 0x654f4c
mov edx, dword [esp]
mov edi, dword [edx + 0x188]
test edi, edi
je 0x654f4f
mov eax, dword [esp + 0xb0]
lea ecx, [edx + 0xe8]
xor ebx, ebx
mov dword [esp + 8], ecx
add eax, 0x10
mov dword [esp + 0xc], eax
lea eax, [edx + 0xf0]
mov dword [esp + 4], eax
nop word cs:[eax + eax]
nop dword [eax]
cmp dword [edx + 0x178], ebx
jbe 0x6550b7
mov eax, dword [edx + 0x174]
test eax, eax
je 0x6550b7
mov edx, dword [esp + 0xb8]
lea ecx, [ebx + ebx*2]
mov dword [esp + 0x28], edx
mov edx, esi
movsd xmm0, qword [eax + ecx*4 + 4]
mov ecx, dword [esp + 4]
shufps xmm0, xmm0, 0xe1
movlps qword [esp + 0x2c], xmm0
push dword [esp + 8]
push dword [esp + 0xb8]
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x18]
call fcn.00664170
add esp, 0x10
test eax, eax
jne 0x654cf6
mov edx, dword [esp]
mov eax, dword [edx + 0x188]
cmp eax, edi
sbb ebx, 0xffffffff
cmp eax, edi
sbb edi, 0
cmp ebx, edi
jb 0x654070
jmp 0x654f4f
sub ecx, eax
mov dword [esp + 0x94], ecx
mov eax, dword [0x94bccc]
test eax, eax
je 0x65481e
mov edx, dword [esp]
mov ebx, dword [edx + 0x188]
test ebx, ebx
je 0x6549a6
mov eax, dword [esp + 0x94]
xor esi, esi
mov dword [esp + 0x9c], 0
mov dword [esp + 0xc], eax
jmp 0x654158
mov edx, dword [esp]
nop word cs:[eax + eax]
nop dword [eax + eax]
mov eax, dword [edx + 0x188]
cmp eax, ebx
sbb esi, 0xffffffff
cmp eax, ebx
sbb ebx, 0
cmp esi, ebx
jae 0x6549b1
cmp dword [edx + 0x178], esi
jbe 0x6550b7
mov ecx, dword [edx + 0x174]
test ecx, ecx
je 0x6550b7
lea edx, [esi + esi*2]
mov eax, dword [ecx + edx*4 + 4]
mov ecx, dword [ecx + edx*4 + 8]
mov edx, dword [esp]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
cmp dword [edx + 0x198], ecx
jbe 0x655071
mov edi, dword [edx + 0x194]
test edi, edi
je 0x655071
imul ecx, ecx, 0xf0
mov edx, dword [edi + ecx]
xor edx, 3
or edx, dword [edi + ecx + 4]
je 0x655071
add edi, ecx
cmp dword [edi + 0xcc], eax
jne 0x655071
lea eax, [edi + 0xcc]
mov dword [esp + 8], eax
mov eax, dword [0x94bccc]
test eax, eax
je 0x654440
mov ecx, dword [esp + 0xc]
lea edx, [edi + 0x38]
mov dword [esp + 0x98], ecx
mov eax, dword [0x94bccc]
mov dword [esp + 4], edx
test eax, eax
je 0x654610
mov eax, dword [edx]
sub eax, ecx
jo 0x654806
mov dword [edi + 0x38], eax
xor eax, eax
mov edx, dword [edi + 0x38]
mov ecx, dword [edi + 0x3c]
test edx, edx
cmovle edx, eax
test ecx, ecx
cmovg eax, ecx
sub eax, edx
jbe 0x654250
mov edx, dword [esp]
sub ecx, eax
jo 0x654806
add dword [esp + 0x9c], eax
mov dword [edi + 0x3c], ecx
mov dword [esp + 0x98], eax
mov eax, dword [0x94bccc]
test eax, eax
jne 0x654140
jmp 0x654269
mov edx, dword [esp]
xor eax, eax
mov dword [esp + 0x98], eax
mov eax, dword [0x94bccc]
test eax, eax
jne 0x654140
movzx eax, byte [0x94ac84]
test al, al
je 0x654140
movzx eax, al
cmp eax, 1
je 0x6542a2
cmp eax, 2
je 0x6542e9
mov ecx, 0x94ac7c
call fcn.007d3740
mov edx, dword [esp]
test al, al
je 0x654140
movzx eax, al
cmp eax, 2
je 0x6542e9
mov eax, dword [0x94ac7c]
mov ecx, dword [0x94bfb8]
cmp ecx, 2
jne 0x654140
cmp dword [0x94bcc0], 0
mov edx, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov ecx, dword [0x94bcc8]
je 0x6542d6
mov edi, dword [ecx + 8]
dec edi
and edi, 0xfffffff8
lea edx, [edi + edx + 8]
push eax
push edx
call dword [ecx + 0x14]
add esp, 8
mov edx, dword [esp]
test al, al
je 0x654140
mov eax, dword [0x94ac7c]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x655134
mov edx, dword [eax + 0x1c]
movsd xmm0, qword [eax + 0x24]
lea edi, [esp + 0x28]
mov dword [esp + 0x60], 0x8aaa68
mov dword [esp + 0x64], 4
mov dword [esp + 0x70], 0
mov dword [esp + 0x68], edi
lea edi, [esp + 0x60]
mov dword [esp + 0x6c], 4
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 8]
lea edx, [esp + 0x88]
movlps qword [esp + 0x54], xmm0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x78], edx
lea edx, [esp + 0x4c]
mov dword [esp + 0x7c], 1
mov dword [esp + 0x88], edx
lea edx, [esp + 0x78]
mov dword [esp + 0x8c], edi
mov dword [esp + 0x90], 0x8a682c
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 1
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x94]
mov dword [esp + 0x2c], 0x646ce0
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x98]
mov dword [esp + 0x34], 0x4631b0
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x3c], 0x4631b0
mov dword [esp + 0x40], ecx
lea ecx, [eax + 0x1c]
mov dword [esp + 0x44], 0x6652a0
mov dword [esp + 0x80], ecx
mov eax, dword [0x94bfb8]
cmp eax, 2
jne 0x65412e
cmp dword [0x94bcc0], 0
mov edx, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov edi, dword [0x94bcc8]
je 0x65440c
mov eax, dword [edi + 8]
dec eax
and eax, 0xfffffff8
lea edx, [eax + edx + 8]
lea eax, [esp + 0x10]
mov dword [esp + 4], edx
push eax
push edx
call dword [edi + 0x28]
add esp, 8
test al, al
je 0x65412e
lea eax, [esp + 0x10]
push eax
push dword [esp + 8]
call dword [edi + 0x2c]
add esp, 8
jmp 0x65412e
movzx eax, byte [0x94ac78]
test al, al
je 0x6541dd
movzx eax, al
cmp eax, 1
je 0x654476
cmp eax, 2
je 0x6544c6
mov ecx, 0x94ac70
call fcn.007d3740
test al, al
je 0x6541dd
movzx eax, al
cmp eax, 2
je 0x6544c6
mov eax, dword [0x94ac70]
mov ecx, dword [0x94bfb8]
cmp ecx, 2
jne 0x6541dd
cmp dword [0x94bcc0], 0
mov edx, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov ecx, dword [0x94bcc8]
je 0x6544b6
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 8]
dec ecx
and ecx, 0xfffffff8
lea edx, [ecx + edx + 8]
mov ecx, dword [esp + 4]
push eax
push edx
call dword [ecx + 0x14]
add esp, 8
test al, al
je 0x6541dd
mov eax, dword [0x94ac70]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x65510c
mov edx, dword [eax + 0x1c]
movsd xmm0, qword [eax + 0x24]
mov dword [esp + 0x60], 0x8aaa14
mov dword [esp + 0x64], 3
mov dword [esp + 0x70], 0
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 8]
mov dword [esp + 0x50], ecx
lea ecx, [edi + 0x38]
movlps qword [esp + 0x54], xmm0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x10], edx
lea edx, [esp + 0x94]
mov dword [esp + 0x14], 0x646ce0
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], 0x4631b0
mov dword [esp + 0x20], ecx
lea edx, [esp + 0x88]
lea ecx, [eax + 0x1c]
mov dword [esp + 0x24], 0x6652a0
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], 1
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x10]
lea edx, [esp + 0x78]
mov dword [esp + 0x68], ecx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x6c], 3
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 1
mov dword [esp + 0x88], ecx
lea ecx, [esp + 0x60]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], 0x8a682c
mov eax, dword [0x94bfb8]
cmp eax, 2
jne 0x6541dd
cmp dword [0x94bcc0], 0
mov edx, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov ecx, dword [0x94bcc8]
je 0x6545d5
mov eax, dword [ecx + 8]
dec eax
and eax, 0xfffffff8
lea edx, [eax + edx + 8]
lea eax, [esp + 0x28]
mov dword [esp + 0x84], edx
push eax
push edx
mov dword [esp + 0xc], ecx
call dword [ecx + 0x28]
add esp, 8
test al, al
je 0x6541dd
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x88]
mov eax, dword [esp + 0xc]
call dword [eax + 0x2c]
add esp, 8
jmp 0x6541dd
movzx eax, byte [0x94a23c]
mov ecx, dword [esp + 0xc]
test al, al
je 0x6541fc
movzx eax, al
cmp eax, 1
je 0x654656
cmp eax, 2
je 0x6546b4
mov ecx, 0x94a234
call fcn.007d3740
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0xc]
test al, al
je 0x6541fc
movzx eax, al
cmp eax, 2
je 0x6546b4
mov eax, dword [0x94a234]
mov ecx, dword [0x94bfb8]
cmp ecx, 2
mov ecx, dword [esp + 0xc]
jne 0x6541fc
cmp dword [0x94bcc0], 0
mov edx, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov ecx, dword [0x94bcc8]
je 0x65469c
mov dword [esp + 0x84], eax
mov eax, dword [ecx + 8]
dec eax
and eax, 0xfffffff8
lea edx, [eax + edx + 8]
mov eax, dword [esp + 0x84]
push eax
push edx
call dword [ecx + 0x14]
add esp, 8
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 4]
test al, al
je 0x6541fc
mov eax, dword [0x94a234]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x655120
mov edx, dword [eax + 0x1c]
movsd xmm0, qword [eax + 0x24]
mov dword [esp + 0x60], 0x826cc0
mov dword [esp + 0x64], 3
mov dword [esp + 0x70], 0
mov dword [esp + 0x4c], edx
lea edx, [esp + 0x98]
mov dword [esp + 0x50], ecx
lea ecx, [edi + 0x3c]
movlps qword [esp + 0x54], xmm0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x10], edx
mov edx, dword [esp + 4]
mov dword [esp + 0x14], 0x4631b0
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], 0x470660
mov dword [esp + 0x20], ecx
lea edx, [esp + 0x88]
lea ecx, [eax + 0x1c]
mov dword [esp + 0x24], 0x470660
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], 1
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x10]
lea edx, [esp + 0x78]
mov dword [esp + 0x68], ecx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x6c], 3
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 1
mov dword [esp + 0x88], ecx
lea ecx, [esp + 0x60]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], 0x81c698
mov eax, dword [0x94bfb8]
cmp eax, 2
jne 0x6547f6
cmp dword [0x94bcc0], 0
mov edx, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov ecx, dword [0x94bcc8]
je 0x6547bf
mov eax, dword [ecx + 8]
dec eax
and eax, 0xfffffff8
lea edx, [eax + edx + 8]
lea eax, [esp + 0x28]
mov dword [esp + 0xbc], edx
push eax
push edx
mov dword [esp + 0x8c], ecx
call dword [ecx + 0x28]
add esp, 8
test al, al
je 0x6547f6
lea eax, [esp + 0x28]
push eax
push dword [esp + 0xc0]
mov eax, dword [esp + 0x8c]
call dword [eax + 0x2c]
add esp, 8
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 4]
jmp 0x6541fc
mov eax, dword [esp + 0xac]
mov word [eax], 0x101
mov dword [eax + 4], 3
jmp 0x654d05
movzx eax, byte [0x94ac6c]
test al, al
je 0x654103
movzx eax, al
cmp eax, 1
je 0x654854
cmp eax, 2
je 0x654898
mov ecx, 0x94ac64
call fcn.007d3740
test al, al
je 0x654103
movzx eax, al
cmp eax, 2
je 0x654898
mov eax, dword [0x94ac64]
mov ecx, dword [0x94bfb8]
cmp ecx, 2
jne 0x654103
cmp dword [0x94bcc0], 0
mov edx, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov ecx, dword [0x94bcc8]
je 0x654888
mov esi, dword [ecx + 8]
dec esi
and esi, 0xfffffff8
lea edx, [esi + edx + 8]
push eax
push edx
call dword [ecx + 0x14]
add esp, 8
test al, al
je 0x654103
mov eax, dword [0x94ac64]
mov edx, dword [eax + 0x20]
test edx, edx
je 0x655148
mov esi, dword [eax + 0x1c]
movsd xmm0, qword [eax + 0x24]
mov dword [esp + 0x10], 0x8aa9cc
mov dword [esp + 0x14], 1
mov dword [esp + 0x20], 0
lea ecx, [eax + 0x1c]
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], edx
lea edx, [esp + 0x94]
movlps qword [esp + 0x68], xmm0
mov dword [esp + 0x70], 0
mov dword [esp + 0x88], edx
lea edx, [esp + 0x88]
mov dword [esp + 0x8c], 0x4631b0
mov dword [esp + 0x18], edx
lea edx, [esp + 0x60]
mov dword [esp + 0x1c], 1
mov dword [esp + 0x78], edx
lea edx, [esp + 0x10]
mov dword [esp + 0x7c], edx
lea edx, [esp + 0x78]
mov dword [esp + 0x80], 0x8a682c
mov dword [esp + 0x4c], edx
lea edx, [esp + 0x4c]
mov dword [esp + 0x50], 1
mov dword [esp + 0x54], ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 1
mov eax, dword [0x94bfb8]
cmp eax, 2
jne 0x654103
cmp dword [0x94bcc0], 0
mov edi, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov esi, dword [0x94bcc8]
je 0x654985
mov eax, dword [esi + 8]
dec eax
and eax, 0xfffffff8
lea edi, [eax + edi + 8]
lea ebx, [esp + 0x28]
push ebx
push edi
call dword [esi + 0x28]
add esp, 8
test al, al
je 0x654103
push ebx
push edi
call dword [esi + 0x2c]
add esp, 8
jmp 0x654103
mov dword [esp + 0x9c], 0
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x88], eax
mov eax, dword [0x94bccc]
test eax, eax
je 0x654d94
lea eax, [esp + 0x30]
mov dword [esp + 0x30], 2
mov dword [esp + 0x40], 0
mov dword [esp + 8], eax
mov eax, dword [edx + 0x144]
mov ecx, dword [esp + 0x88]
add ecx, eax
jo 0x6549fd
mov eax, ecx
mov dword [edx + 0x144], ecx
test eax, eax
jle 0x654cc7
lea eax, [edx + 0xf8]
mov dword [esp + 4], eax
jmp 0x654a5d
xor ebx, ebx
cmp dword [edx + 0x18], 0x3b9aca00
mov ecx, dword [esp + 4]
lea esi, [esp + 0x60]
mov edx, esi
setne bl
call fcn.00486c30
mov ecx, dword [esp + 0xb4]
mov edx, esi
push ebx
call fcn.00482f50
add esp, 4
mov edx, dword [esp]
cmp dword [edx + 0x144], 0
jle 0x654cc7
cmp dword [edx + 0x10c], 0
je 0x654cc7
mov ecx, dword [edx + 0x110]
mov esi, dword [edx + 0x114]
cmp ecx, dword [edx + 0x118]
mov dword [esp + 0xc], esi
jne 0x654b00
cmp esi, dword [edx + 0x11c]
jne 0x654b00
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], esi
mov edi, dword [edx + 0x198]
cmp edi, ecx
jbe 0x654fe5
mov eax, dword [esp]
mov edx, dword [eax + 0x194]
test edx, edx
je 0x654fe5
imul ebx, ecx, 0xf0
mov esi, dword [edx + ebx]
xor esi, 3
or esi, dword [edx + ebx + 4]
mov esi, dword [esp + 0xc]
je 0x654fe5
add ebx, edx
cmp dword [ebx + 0xcc], esi
jne 0x654fe5
cmp dword [ebx + 0x70], 0
jne 0x6550ee
mov eax, dword [esp]
mov dword [eax + 0x10c], 0
jmp 0x654b7f
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], esi
cmp dword [edx + 0x198], ecx
jbe 0x65502b
mov eax, dword [esp]
mov edx, dword [eax + 0x194]
test edx, edx
je 0x65502b
imul edi, ecx, 0xf0
mov ebx, dword [edx + edi]
xor ebx, 3
or ebx, dword [edx + edi + 4]
je 0x65502b
add edx, edi
cmp dword [edx + 0xcc], esi
jne 0x65502b
movsd xmm0, qword [edx + 0x74]
cmp dword [edx + 0x70], 0
mov dword [edx + 0x70], 0
je 0x655102
mov eax, dword [esp]
mov dword [eax + 0x10c], 1
movlps qword [eax + 0x110], xmm0
mov edx, dword [eax + 0x194]
mov edi, dword [eax + 0x198]
cmp edi, ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], esi
jbe 0x65502b
test edx, edx
je 0x65502b
imul edi, ecx, 0xf0
mov eax, dword [esp + 0xc]
mov esi, dword [edx + edi]
xor esi, 3
or esi, dword [edx + edi + 4]
je 0x65502b
add edx, edi
cmp dword [edx + 0xcc], eax
jne 0x65502b
mov byte [edx + 0xe2], 0
mov edx, dword [esp]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
cmp dword [edx + 0x198], ecx
jbe 0x654fe5
mov eax, dword [esp]
mov edx, dword [eax + 0x194]
test edx, edx
je 0x654fe5
mov esi, dword [edx + edi]
xor esi, 3
or esi, dword [edx + edi + 4]
mov esi, dword [esp + 0xc]
je 0x654fe5
add edx, edi
cmp dword [edx + 0xcc], esi
jne 0x654fe5
movzx eax, byte [edx + 0x20]
mov edi, 6
add al, 0xfa
movzx ebx, al
cmp al, 6
cmovae ebx, edi
cmp bl, 5
je 0x654c30
movzx eax, bl
cmp eax, 3
jne 0x654c36
cmp byte [edx + 0x21], 0
jne 0x654c65
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], esi
mov eax, dword [edx]
xor eax, 3
or eax, dword [edx + 4]
je 0x654fe5
cmp dword [edx + 0xcc], esi
jne 0x654fe5
cmp dword [edx + 0xd8], 0
je 0x654a4d
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], esi
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], esi
mov eax, dword [edx]
xor eax, 3
or eax, dword [edx + 4]
je 0x654c96
cmp dword [edx + 0xcc], esi
je 0x654a20
lea eax, [esp + 0x7c]
mov dword [esp + 0x10], 0x828150
mov dword [esp + 0x14], 1
mov dword [esp + 0x20], 0
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], 0x47c5e0
lea eax, [esp + 0x4c]
jmp 0x655011
mov eax, dword [esp + 0x30]
cmp eax, 2
je 0x654f4c
test eax, eax
je 0x654ed4
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
mov edx, dword [eax + 8]
dec edx
and edx, 0xfffffff8
lea ecx, [edx + ecx + 8]
jmp 0x654ede
mov eax, dword [esp + 0xac]
mov word [eax], 0x101
mov dword [eax + 4], edx
mov esi, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa0]
mov dword [eax + 8], 0x8aa020
mov dword [eax + 0xc], 0x93d1f8
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
cmp byte [esp + 0xa8], 0
jne 0x654f91
jmp 0x654f85
call fcn.007d1b30
mov ebx, eax
xor bl, 1
mov eax, dword [esp]
movzx eax, byte [eax + 0xc]
test al, al
je 0x653f58
mov dword [esp + 0x28], edi
mov byte [esp + 0x2c], bl
lea eax, [esp + 0x28]
mov ecx, 0x93b384
mov edx, 0x2b
push 0x8ab020
push 0x8abf8c
push eax
call fcn.007c1f60
call fcn.007d1b30
xor al, 1
mov dword [esp + 0xa8], eax
jmp 0x653f87
movzx eax, byte [0x94ab70]
test al, al
je 0x6549cc
movzx eax, al
cmp eax, 1
je 0x654dcd
cmp eax, 2
je 0x654e14
mov ecx, 0x94ab68
call fcn.007d3740
mov edx, dword [esp]
test al, al
je 0x6549cc
movzx eax, al
cmp eax, 2
je 0x654e14
mov eax, dword [0x94ab68]
mov ecx, dword [0x94bfb8]
cmp ecx, 2
jne 0x6549cc
cmp dword [0x94bcc0], 0
mov edx, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov ecx, dword [0x94bcc8]
je 0x654e01
mov esi, dword [ecx + 8]
dec esi
and esi, 0xfffffff8
lea edx, [esi + edx + 8]
push eax
push edx
call dword [ecx + 0x14]
add esp, 8
mov edx, dword [esp]
test al, al
je 0x6549cc
mov edx, dword [0x94ab68]
mov ecx, dword [edx + 0x20]
test ecx, ecx
je 0x65515c
mov esi, dword [edx + 0x1c]
movsd xmm0, qword [edx + 0x24]
lea eax, [edx + 0x1c]
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x10]
lea esi, [esp + 0x28]
movlps qword [esp + 0x18], xmm0
mov dword [esp + 0x20], 0
mov dword [esp + 0x60], ecx
lea ecx, [esp + 0x88]
mov dword [esp + 0x64], ecx
lea ecx, [esp + 0x60]
mov dword [esp + 0x68], 0x8aa434
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], 1
mov dword [esp + 0x54], eax
lea eax, [esp + 0x4c]
mov ecx, esi
push eax
call fcn.00758000
add esp, 4
lea eax, [esp + 0x30]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
cmp eax, 2
je 0x654eb7
test eax, eax
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
je 0x654eaf
mov edx, dword [eax + 8]
dec edx
and edx, 0xfffffff8
lea ecx, [edx + ecx + 8]
push esi
push ecx
call dword [eax + 0x30]
add esp, 8
mov edx, dword [esp]
mov eax, dword [edx + 0x144]
mov ecx, dword [esp + 0x88]
add ecx, eax
jno 0x6549f5
jmp 0x6549fd
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
lea edx, [esp + 0x28]
push edx
push ecx
call dword [eax + 0x34]
add esp, 8
mov edx, dword [esp + 0x30]
cmp edx, 2
je 0x654f4c
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
test edx, edx
je 0x654f16
mov edx, dword [esp + 8]
mov esi, dword [edx + 4]
mov edx, dword [edx + 8]
mov edi, dword [edx + 8]
dec edi
and edi, 0xfffffff8
lea esi, [edi + esi + 8]
jmp 0x654f20
mov edx, dword [esp + 8]
mov esi, dword [edx + 4]
mov edx, dword [edx + 8]
push ecx
push eax
push esi
call dword [edx + 0x40]
add esp, 0xc
mov eax, dword [esp + 0x30]
cmp eax, 2
je 0x654f4c
test eax, eax
je 0x654f4c
mov eax, dword [esp + 0x34]
lock dec dword [eax]
jne 0x654f4c
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
call fcn.0075aba0
mov edx, dword [esp]
mov eax, dword [ebp + 8]
mov esi, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa0]
cmp dword [eax + 8], 0
je 0x654f71
cmp dword [eax + 0xc], 0
setne byte [edx + 0x158]
mov eax, dword [esp + 0xac]
mov byte [eax], 3
cmp byte [esp + 0xa8], 0
jne 0x654f91
mov eax, dword [0x94bfbc]
test eax, 0x7fffffff
jne 0x654fbd
push dword [esp + 0xc0]
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
test bl, bl
jne 0x654fae
mov eax, dword [0x94bfbc]
test eax, 0x7fffffff
jne 0x654fd3
push esi
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.007d1b30
test al, al
jne 0x654f91
mov eax, dword [esp + 0xb0]
mov byte [eax + 0xc], 1
jmp 0x654f91
call fcn.007d1b30
test al, al
jne 0x654fae
mov eax, dword [esp]
mov byte [eax + 0xc], 1
jmp 0x654fae
lea eax, [esp + 0x50]
mov dword [esp + 0x10], 0x828150
mov dword [esp + 0x14], 1
mov dword [esp + 0x20], 0
mov dword [esp + 0x60], eax
lea eax, [esp + 0x60]
mov dword [esp + 0x64], 0x47c5e0
lea ecx, [esp + 0x10]
mov edx, 0x828158
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 1
call fcn.007c1b50
lea ecx, [esp + 0x60]
lea eax, [esp + 0x50]
mov dword [esp + 0x10], 0x828150
mov dword [esp + 0x14], 1
mov dword [esp + 0x20], 0
mov edx, 0x828168
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], 0x47c5e0
mov dword [esp + 0x1c], 1
call fcn.007c1b50
lea ecx, [esp + 0x10]
lea eax, [esp + 0x64]
mov dword [esp + 0x28], 0x828150
mov dword [esp + 0x2c], 1
mov dword [esp + 0x38], 0
mov edx, 0x828168
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x28]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0x47c5e0
mov dword [esp + 0x34], 1
call fcn.007c1b50
mov ecx, 0x8aac84
call fcn.007c1fe0
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x28], esi
mov ecx, 0x93b384
mov edx, 0x2b
mov byte [esp + 0x2c], al
lea eax, [esp + 0x28]
push 0x8ab030
push 0x8abf6c
push eax
call fcn.007c1f60
mov ecx, str.assertion_failed:_N::next_stream_.is_none__
mov edx, 0x2c
push 0x8aac1c
call fcn.007c1ca0
mov ecx, 0x8aabe0
call fcn.007c1fe0
mov ecx, 0x8a6758
mov edx, 0x22
push 0x8aa9d4
call fcn.007c2000
mov ecx, 0x8a6758
mov edx, 0x22
push 0x826c8c
call fcn.007c2000
mov ecx, 0x8a6758
mov edx, 0x22
push 0x8aaa2c
call fcn.007c2000
mov ecx, 0x8a6758
mov edx, 0x22
push 0x8aa99c
call fcn.007c2000
mov ecx, 0x8a6758
mov edx, 0x22
push 0x8aa424
call fcn.007c2000
mov eax, dword [esp + 4]
push dword [esp + 8]
push dword [eax]
call fcn.00482b10
add esp, 8
ret