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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x308
cmp byte [ecx + 0x2c], 2
mov dword [esp + 0x44], edx
je 0x55d034
lea eax, [ecx + 0x20]
mov esi, ecx
mov ebx, dword [eax]
mov dword [esp + 0x14], eax
lea eax, [ebx + 8]
mov dword [esp + 4], eax
push eax
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x803890]
test eax, 0x7fffffff
jne 0x55d015
mov dword [esp + 0x10], 0
mov al, byte [ebx + 0xc]
test al, al
jne 0x55d045
mov eax, dword [esi + 0x24]
mov dword [esp + 0x20], esi
mov esi, dword [esi + 0x28]
mov ecx, dword [ebx + 0x160]
mov edx, dword [ebx + 0x168]
push esi
mov dword [esp + 0xc], eax
push eax
call fcn.004be27b
add esp, 8
lea edi, [esp + 0x120]
lea edx, [eax + 0xac]
lea eax, [ebx + 0x74]
mov ecx, edi
push eax
call fcn.004be063
add esp, 4
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov edx, eax
xor edx, 6
or edx, ecx
jne 0x55c784
mov ecx, dword [ebx + 0x160]
mov edx, dword [ebx + 0x168]
mov dword [esp + 0xc], esi
push esi
mov edi, dword [esp + 0xc]
push edi
call fcn.004b7306
add esp, 8
lea esi, [esp + 0x48]
lea edx, [eax + 0x20]
mov ecx, esi
call fcn.004c0aa1
mov al, byte [esi]
cmp al, 3
jne 0x55c82e
cmp byte [esp + 0x49], 0
je 0x55c900
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
mov ecx, dword [eax]
push dword [eax + 4]
call dword [ecx]
add esp, 4
mov dword [esp + 0x1c], edx
mov ecx, dword [ebx + 0x160]
mov edx, dword [ebx + 0x168]
mov dword [esp + 0x14], eax
push dword [esp + 0xc]
push edi
call fcn.004be27b
add esp, 8
mov esi, eax
mov eax, dword [eax + 0x50]
test eax, eax
je 0x55c763
push dword [esi + 0x54]
call dword [eax + 0xc]
add esp, 4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + 0x10]
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], ecx
mov ecx, dword [esp + 4]
call fcn.005aa9d0
jmp 0x55c80f
mov esi, eax
mov edx, ecx
add esi, 0xfffffffc
adc edx, 0xffffffff
xor edi, edi
xor ebx, ebx
inc ebx
cmp ebx, esi
sbb edi, edx
setb dl
cmp esi, 0xffffffff
sete dh
xor eax, 3
or eax, ecx
jne 0x55d08e
or dl, dh
je 0x55d08e
lea esi, [esp + 0x13c]
mov eax, dword [esi - 0x14]
movzx edi, word [esi - 0xa]
mov edx, dword [esi - 8]
mov ecx, dword [esi - 4]
mov ebx, dword [esi - 0x10]
mov dword [esp + 8], eax
mov al, byte [esi - 0xc]
mov word [esp + 0x1a], di
mov dword [esp + 0x24], ecx
mov dword [esp + 0x40], edx
lea edi, [esp + 0x78]
mov ecx, 0xd
mov dword [esp + 0xc], eax
mov al, byte [esi - 0xb]
mov byte [esp + 0x1c], al
rep movsd dword es:[edi], dword [esi]
movzx edx, byte [esp + 0x10]
mov ecx, dword [esp + 4]
call fcn.005aa9d0
mov edx, dword [esp + 8]
mov eax, edx
xor eax, 4
or eax, ebx
jne 0x55c86c
mov esi, dword [esp + 0x20]
mov dword [esp + 0x224], 0
mov dword [esp + 0x220], 5
jmp 0x55cf5e
mov dword [esp + 0xc], eax
mov al, byte [esp + 0x49]
movzx esi, word [esp + 0x4a]
mov edx, dword [esp + 0x50]
movsd xmm0, qword [esp + 0x54]
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x4c]
mov byte [esp + 0x1c], al
mov word [esp + 0x1a], si
mov dword [esp + 0x24], edx
movsd qword [esp + 0x78], xmm0
mov dword [esp + 0x80], ecx
jmp 0x55c933
lea edi, [esp + 0x1c0]
lea esi, [esp + 0x78]
mov ecx, 0xd
mov eax, edx
rep movsd dword es:[edi], dword [esi]
xor eax, 3
or eax, ebx
jne 0x55c890
mov ebx, dword [esp + 0x40]
jmp 0x55c953
lea eax, [esp + 0xd0]
lea esi, [esp + 0x1cc]
mov ecx, 0xa
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov edi, edx
lea esi, [esp + 0xf8]
mov ecx, dword [esp + 0x80]
movsd xmm0, qword [esp + 0x78]
mov edx, dword [esp + 0x14]
mov dword [eax - 4], ecx
mov ecx, esi
movsd qword [eax - 0xc], xmm0
call fcn.004c14c1
mov eax, dword [esp + 0xc]
mov dword [esi - 0x48], edi
mov dword [esi - 0x44], ebx
movzx edi, word [esp + 0x1a]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x24]
mov byte [esi - 0x40], al
mov al, byte [esp + 0x1c]
mov byte [esi - 0x3f], al
mov word [esi - 0x3e], di
mov dword [esi - 0x3c], edx
mov dword [esi - 0x38], ecx
jmp 0x55c9a8
mov ecx, dword [ebx + 0x160]
mov edx, dword [ebx + 0x168]
push dword [esp + 0xc]
push edi
call fcn.004b7306
add esp, 8
mov ebx, dword [eax + 0xcc]
xor eax, eax
mov byte [esp + 0x1c], 1
mov dword [esp + 0xc], 0
inc eax
mov dword [esp + 0x24], eax
movzx edx, byte [esp + 0x10]
mov ecx, dword [esp + 4]
call fcn.005aa9d0
lea edi, [esp + 0x1c0]
lea esi, [esp + 0x78]
mov ecx, 0xd
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xc]
lea edx, [esp + 0x108]
movzx edi, word [esp + 0x1a]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c8]
movsd xmm0, qword [esp + 0x1c0]
mov byte [edx], al
mov al, byte [esp + 0x1c]
mov byte [edx + 1], al
mov word [edx + 2], di
mov dword [edx + 4], ebx
mov dword [edx + 8], esi
mov dword [edx + 0x14], ecx
lea ecx, [esp + 0xb8]
movsd qword [edx + 0xc], xmm0
call fcn.004bda34
xor ebx, ebx
mov dword [esp + 8], 3
lea esi, [esp + 0xd0]
mov eax, dword [esp + 0x20]
lea edi, [esp + 0x2c8]
mov ecx, 0xe
movsd xmm0, qword [esi - 8]
movsd xmm1, qword [esi - 0x10]
add eax, 0xc
movsd qword [esp + 0x70], xmm0
movsd xmm0, qword [esi - 0x18]
movsd qword [esp + 0x68], xmm1
movsd qword [esp + 0x60], xmm0
rep movsd dword es:[edi], dword [esi]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
movsd qword [esp + 0x28], xmm0
movsd qword [esp + 0x30], xmm1
mov dword [esp + 0x38], eax
call fcn.005503b9
mov ecx, dword [esp + 8]
mov byte [esi + 0x2c], 2
mov dword [esp + 0x10], ebx
mov eax, ecx
xor eax, 3
mov dword [esp + 4], eax
or eax, ebx
je 0x55cba8
movsd xmm1, qword [esp + 0x68]
lea edi, [esp + 0x1e0]
movsd xmm0, qword [esp + 0x60]
lea esi, [esp + 0x2c8]
mov dword [edi - 0x20], ecx
mov dword [edi - 0x1c], ebx
mov ecx, 0xe
movsd qword [edi - 0x10], xmm1
movsd xmm1, qword [esp + 0x70]
movsd qword [edi - 0x18], xmm0
movsd qword [edi - 8], xmm1
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x38]
test edi, edi
je 0x55cab7
lea esi, [edi + 8]
push esi
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x803890]
test eax, 0x7fffffff
jne 0x55d025
xor ebx, ebx
mov cl, byte [edi + 0xc]
test cl, cl
jne 0x55d0ce
cmp dword [edi + 0x40], 0x3b9aca00
je 0x55caad
call fcn.005a62b0
mov dword [edi + 0x3c], edx
mov dword [edi + 0x38], eax
mov dword [edi + 0x40], ecx
movzx edx, bl
mov ecx, esi
call fcn.005aa9d0
mov dword [esp + 0x14], edi
lea esi, [esp + 0x2b8]
lea edi, [esp + 0x1c0]
mov ecx, esi
mov edx, edi
call fcn.004cfaf9
mov eax, dword [esi]
movsd xmm0, qword [esp + 0x28]
movsd xmm1, qword [esp + 0x30]
mov dword [esp + 8], eax
movzx eax, word [edi + 0x44]
mov ecx, dword [esi + 0xc]
mov esi, dword [esi + 8]
movsd qword [esp + 0x48], xmm0
movsd qword [esp + 0x50], xmm1
mov word [esp + 0x58], ax
cmp eax, 0xc8
mov edx, dword [esp + 0x48]
jne 0x55cc4f
test edx, edx
je 0x55cc4f
cmp dword [esp + 8], 0
je 0x55cdc3
or esi, ecx
je 0x55cdc3
lea esi, [esp + 0x28]
mov edx, 2
mov ecx, esi
call fcn.00556c5e
lea ecx, [esp + 0x120]
mov byte [ecx], 2
mov dword [ecx + 4], 2
call fcn.004cf320
mov ecx, esi
mov dword [esp + 0x218], eax
mov dword [esp + 0x224], 0
mov dword [esp + 0x220], 3
call fcn.00555b5c
lea esi, [esp + 0x1c0]
mov ecx, esi
call fcn.004cb423
mov ecx, dword [esi + 0x40]
call fcn.004b75a8
lea esi, [esp + 0x208]
mov ecx, esi
call fcn.004c4bf3
mov ecx, esi
call fcn.005503b9
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
jmp 0x55cc16
mov edi, dword [esp + 0x38]
movsd xmm0, qword [esp + 0x70]
movsd xmm2, qword [esp + 0x60]
movsd xmm1, qword [esp + 0x68]
mov ecx, edi
movsd qword [esp + 0x130], xmm0
movsd qword [esp + 0x128], xmm1
movsd qword [esp + 0x120], xmm2
call fcn.004cff5a
test eax, eax
je 0x55cd7e
xor ecx, ecx
mov dword [esp + 0x218], eax
mov dword [esp + 0x21c], ecx
mov dword [esp + 0x224], ecx
lea ecx, [esp + 0x120]
mov dword [esp + 0x220], 3
call fcn.0055747a
mov ebx, dword [esp + 0x10]
test edi, edi
je 0x55cc2c
lock dec dword [edi]
jne 0x55cc2c
lea ecx, [esp + 0x38]
call fcn.004cb485
or dword [esp + 4], ebx
jne 0x55cf45
cmp dword [esp + 0x28], 0
je 0x55cf45
lea ecx, [esp + 0x28]
call fcn.00555b5c
jmp 0x55cf45
mov dword [esp + 0xc], esi
mov dword [esp + 4], ecx
mov dword [esp + 0x10], edx
lea edi, [esp + 0x120]
lea esi, [esp + 0x1c0]
mov ecx, 0x16
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x168]
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
mov esi, dword [esp + 0x14]
mov dword [esp + 0xb8], eax
movsd qword [esp + 0xb0], xmm0
mov dword [esp + 0x78], esi
call fcn.004c4b02
xor edi, edi
test al, al
cmove edi, esi
test esi, esi
je 0x55ccbe
mov edx, dword [esp + 4]
test al, al
je 0x55ccc2
xor edi, edi
lock dec dword [esi]
jne 0x55ccc2
lea ecx, [esp + 0x78]
call fcn.004cb485
mov edx, dword [esp + 4]
cmp dword [esp + 8], 0
mov ebx, dword [esp + 0xc]
mov dword [esp + 4], edi
je 0x55ccdb
cmp ebx, 0xfffffffe
mov eax, edx
sbb eax, 0xffffffff
jb 0x55ccf9
lea ecx, [esp + 0xb0]
call fcn.004c4b02
xor edx, edx
xor ecx, ecx
mov ebx, 0xfffffffe
dec edx
test al, al
cmovne edx, ecx
cmovne ebx, ecx
mov eax, dword [esp + 0xb8]
movsd xmm0, qword [esp + 0xb0]
lea esi, [esp + 0x120]
mov ecx, 0x12
mov dword [esp + 0x80], eax
lea eax, [esp + 0x228]
movsd qword [esp + 0x78], xmm0
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dword [eax + 0x48], 2
mov ecx, dword [esp + 4]
mov esi, dword [esp + 0x80]
movsd xmm0, qword [esp + 0x78]
mov dword [eax + 0x4c], ecx
mov dword [eax + 0x58], esi
xor esi, esi
cmp dword [esp + 0x10], 0
movsd qword [eax + 0x50], xmm0
mov dword [eax + 0x64], edx
mov dword [eax + 0x60], ebx
mov dword [eax + 0x68], esi
mov dword [eax - 4], esi
mov dword [eax - 8], 4
je 0x55cf41
lea ecx, [esp + 0x48]
call fcn.00555b5c
jmp 0x55cf41
lea ecx, [esp + 0x60]
call fcn.004cf320
test edi, edi
mov dword [esp + 0x218], eax
mov dword [esp + 0x224], 0
mov dword [esp + 0x220], 3
je 0x55cc36
lock dec dword [edi]
jne 0x55cc36
lea ecx, [esp + 0x38]
call fcn.004cb485
jmp 0x55cc36
lea edx, [esp + 0x120]
lea eax, [esp + 0x1c0]
mov ecx, 0x16
xor ebx, ebx
mov edi, edx
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov esi, eax
mov ecx, dword [edx + 0x50]
movsd xmm0, qword [edx + 0x48]
lea edx, [esp + 0x120]
mov edi, edx
mov dword [esp + 0x100], ecx
movsd qword [esp + 0xf8], xmm0
mov ecx, 0x12
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0x48], ebx
mov dword [edx + 0x4c], ebx
mov dword [edx + 0x68], ebx
mov eax, dword [esp + 0x100]
movsd xmm0, qword [esp + 0xf8]
mov dword [esp + 0x90], eax
movsd qword [esp + 0x88], xmm0
call fcn.004ce64d
movsd xmm0, qword [esp + 0x28]
movsd xmm1, qword [esp + 0x30]
mov dword [esp + 8], edx
mov edi, eax
mov ecx, 0x30
mov edx, 4
movsd qword [esp + 0x78], xmm0
movsd qword [esp + 0x80], xmm1
mov al, byte [0x803894]
call fcn.004889b0
test eax, eax
je 0x55d0fc
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x14]
mov esi, 0x7f59e0
mov dword [eax + 0x18], ecx
mov ecx, 0x7b75d0
movsd xmm0, qword [esp + 0x88]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [esp + 0x78]
movsd xmm1, qword [esp + 0x80]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov dword [eax + 0x1c], ecx
mov dword [eax + 0x20], esi
mov dword [eax + 0x24], ebx
mov dword [eax + 0x28], ebx
mov dword [eax + 0x2c], edx
lea edx, [esp + 0xb0]
mov dword [edx + 8], ecx
mov ecx, edi
mov dword [edx + 0xc], esi
mov dword [edx + 0x10], ebx
mov dword [edx + 0x14], ebx
mov dword [edx], eax
mov dword [edx + 4], 0x7b81e8
call fcn.004cf954
xor edx, edx
lea ecx, [esp + 0x160]
inc edx
push dword [esp + 8]
call fcn.005572f8
add esp, 4
cmp eax, 2
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], edx
je 0x55cf1c
lea eax, [esp + 0x108]
push eax
call fcn.00557433
add esp, 4
lea eax, [esp + 0x228]
lea esi, [esp + 0x120]
mov ecx, 0x1c
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dword [eax - 4], 0
mov dword [eax - 8], 4
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x220]
mov ecx, eax
and cl, 7
cmp cl, 4
je 0x55cf81
and eax, 7
cmp eax, 5
jne 0x55cfd7
cmp dword [esi], 2
je 0x55d078
mov edx, dword [esp + 0x44]
mov ecx, esi
call fcn.0054fc3d
test al, al
je 0x55d00b
mov al, 1
jmp 0x55d00d
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov edi, dword [esi + 8]
mov dword [esi], 2
cmp ecx, 2
je 0x55d0a4
lea eax, [esp + 0xb0]
lea esi, [esp + 0x228]
mov dword [eax], ecx
mov dword [eax + 4], edx
lea edx, [esp + 0x130]
mov dword [eax + 8], edi
mov ecx, 0x1c
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov dword [edx - 4], 0
mov dword [edx - 8], 4
lea edx, [esp + 0x120]
mov ecx, eax
jmp 0x55d006
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov ecx, esi
mov esi, dword [esi + 8]
mov dword [ecx], 2
cmp eax, 2
je 0x55d0b5
lea ecx, [esp + 0x120]
mov dword [ecx], eax
mov dword [ecx + 4], edx
lea edx, [esp + 0x218]
mov dword [ecx + 8], esi
call fcn.0055082c
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.0065a0d0
xor al, 1
mov dword [esp + 0x10], eax
jmp 0x55c683
call fcn.0065a0d0
mov ebx, eax
xor bl, 1
jmp 0x55ca8b
mov ecx, 0x7b5920
mov edx, 0x36
push 0x7b5958
jmp 0x55d09d
mov ecx, dword [esp + 4]
lea eax, [esp + 0x120]
mov edx, 0x2b
mov dword [eax], ecx
mov ecx, dword [esp + 0x10]
mov byte [eax + 4], cl
mov ecx, str.called__Result::unwrap____on_an__Err__value
push 0x74f354
push 0x7445a4
push eax
call fcn.006525c0
add esp, 0xc
ud2
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_82e1608dfa6e0b5569232559e3d385fea5a93112library_std_src_syncmpmclist.rs
mov edx, 0x2b
push 0x7b803c
call fcn.006522d0
jmp 0x55d0c9
mov ecx, str.poll_response_called_after_response_returned
mov edx, 0x2c
push 0x74ef7c
call fcn.00659073
jmp 0x55d0c9
mov ecx, str.polled_after_complete
mov edx, 0x15
push 0x7b801c
jmp 0x55d0c4
mov ecx, str.polled_after_complete
mov edx, 0x15
push 0x7b802c
call fcn.00652640
add esp, 4
ud2
mov ecx, str.called__Result::unwrap____on_an__Err__value
mov edx, 0x2b
mov dword [esp + 0x120], esi
mov byte [esp + 0x124], bl
push 0x7529e8
push 0x75190c
lea eax, [esp + 0x128]
jmp 0x55d06d
mov ecx, 4
mov edx, 0x30
call fcn.00651860
ud2