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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x9c
mov ebp, dword [esp + 0xb4]
mov ebx, dword [esp + 0xb0]
mov esi, edx
mov dword [esp + 0x58], ecx
push 0x2f
pop edi
mov ecx, edx
mov edx, edi
call fcn.00514646
mov ecx, esi
mov edx, edi
call fcn.00514646
mov eax, dword [esi + 8]
mov dword [esp + 0x38], ebx
mov dword [esp], ebx
mov edi, dword [esi + 0x18]
mov dword [esp + 0x10], esi
mov dword [esp + 0x3c], ebp
mov dword [esp + 8], ebp
mov dword [esp + 4], 0
mov dword [esp + 0x50], eax
lea eax, [esp + 0x14]
mov dword [eax], ebx
mov ebx, dword [esi + 0x1c]
xor esi, esi
mov dword [eax + 4], ebp
lea ecx, [esp + 0x14]
call fcn.005148e2
cmp eax, 0x40
je 0x51686d
cmp eax, 0x5c
je 0x51689e
cmp eax, 0x23
je 0x5168ab
cmp eax, 0x2f
je 0x5168ab
cmp eax, 0x110000
je 0x5168ab
cmp eax, 0x3f
jne 0x5168a8
jmp 0x5168ab
test edi, edi
je 0x51688a
xor eax, eax
cmp dword [esp + 4], 0
setne al
lea eax, [eax*8 + 2]
push eax
push edi
call dword [ebx + 0x14]
add esp, 8
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebp, esi
mov dword [esp + 4], eax
mov dword [esp + 0xc], ecx
jmp 0x5168a8
cmp byte [esp + 0xb8], 2
jne 0x5168ab
inc esi
jmp 0x516842
cmp dword [esp + 4], 0
mov ebx, dword [esp + 0x50]
je 0x516a38
test ebp, ebp
je 0x5169e8
lea edi, [esp + 0x78]
mov dword [esp + 0x34], 0
mov dword [esp + 0x2c], 0
mov dword [esp], 0
test ebp, ebp
jle 0x5169bd
mov ecx, edi
lea edx, [esp + 0x38]
mov esi, edi
call fcn.00518431
mov eax, dword [esp + 0x78]
cmp eax, 0x110000
je 0x517217
mov edi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
cmp eax, 0x3a
jne 0x516918
cmp dword [esp + 0x2c], 0
je 0x516981
mov dword [esp + 0x54], ecx
mov ecx, dword [esp]
cmp byte [esp + 0x34], 0
mov dword [esp + 8], ebp
mov ebp, ebx
mov ebx, dword [esp + 0x10]
mov edx, 1
movzx ecx, cl
cmove ecx, edx
mov edx, dword [ebx + 0x1c]
mov dword [esp], ecx
mov ecx, dword [ebx + 0x18]
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push eax
call fcn.005184b7
add esp, 0xc
mov eax, dword [esp + 0x54]
mov ecx, ebx
mov ebx, ebp
mov ebp, dword [esp + 8]
mov edx, esi
mov dword [esp + 0x78], edi
mov edi, esi
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], 0x650284
call fcn.0044fdbf
dec ebp
jmp 0x5168dd
mov eax, dword [esp + 0x10]
mov ecx, ebp
dec ebp
mov edi, esi
cmp ecx, 1
mov ebx, dword [eax + 8]
mov eax, 1
mov dword [esp + 0x2c], eax
jbe 0x5168dd
mov ecx, dword [esp + 0x10]
push 0x3a
pop edx
call fcn.00514646
mov al, 1
mov dword [esp + 0x34], eax
xor eax, eax
inc eax
mov dword [esp + 0x2c], eax
jmp 0x5168dd
cmp dword [esp + 0x2c], 0
jne 0x5169cb
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 8]
mov eax, dword [esp]
and al, 1
or al, byte [esp + 0x34]
je 0x5169e2
push 0x40
pop edx
mov ecx, dword [esp + 0x10]
call fcn.00514646
mov edx, dword [esp + 4]
jmp 0x516a43
mov esi, dword [esp + 4]
mov ebx, dword [esp + 0xc]
lea edi, [esp + 0x78]
mov ecx, edi
mov edx, esi
push ebx
call fcn.0051864c
pop eax
mov eax, dword [edi]
lea ecx, [eax - 0x23]
cmp ecx, 0x1c
ja 0x516a22
mov edx, 0x10001001
bt edx, ecx
jae 0x516a22
mov dword [esp + 8], ebx
xor ebx, ebx
mov dword [esp], 0
jmp 0x516a38
cmp eax, 0x110000
jne 0x516e79
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp], esi
mov eax, dword [esp + 8]
mov edx, dword [esp]
mov dword [esp + 0xc], eax
test edx, edx
je 0x516b78
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x5c], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x60], esi
mov dword [esp + 0x34], eax
mov al, byte [esp + 0xb8]
test al, al
movzx eax, al
mov dword [esp + 0x54], eax
je 0x516b84
lea edi, [esp + 0x14]
xor ebp, ebp
mov dword [esp + 0x2c], ebx
mov dword [esp + 4], edx
mov dword [esp], 0
mov dword [esp + 8], 0
mov dword [edi], edx
mov dword [edi + 4], esi
sub esi, edx
mov dword [esp + 0xc], esi
xor esi, esi
xor ebx, ebx
inc esi
mov ecx, edi
call fcn.00419720
lea ecx, [eax - 9]
cmp ecx, 2
jb 0x516af7
cmp eax, 0xd
je 0x516af7
cmp eax, 0x3a
je 0x516afe
cmp eax, 0x5b
je 0x516b07
cmp eax, 0x5c
je 0x516b10
cmp eax, 0x5d
je 0x516b1d
cmp eax, 0x23
je 0x516b3c
cmp eax, 0x2f
je 0x516b3c
cmp eax, 0x110000
je 0x516b3c
cmp eax, 0x3f
je 0x516b3c
inc ebx
cmp eax, 0x80
jb 0x516b26
cmp eax, 0x800
jae 0x516b2f
push 2
pop eax
jmp 0x516b28
mov al, 1
mov dword [esp], eax
jmp 0x516b26
test byte [esp + 8], 1
jne 0x516b1a
jmp 0x516b3c
mov al, 1
inc ebx
mov dword [esp + 8], eax
jmp 0x516b26
cmp byte [esp + 0xb8], 2
jne 0x516b3c
inc ebx
jmp 0x516b26
inc ebx
mov dword [esp + 8], 0
mov eax, esi
add ebp, eax
jmp 0x516aa5
cmp eax, 0x10000
push 4
pop eax
sbb eax, 0
jmp 0x516b28
test byte [esp], 1
jne 0x516ba7
lea edi, [esp + 0x14]
lea eax, [esp + 0x5c]
mov dword [edi], eax
mov dword [edi + 4], ebx
mov ecx, edi
call fcn.00518d53
cmp eax, 0x110000
jne 0x516b4f
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xc]
push 0x6502cc
push ebp
call fcn.00517c55
pop ecx
pop ecx
mov esi, eax
mov edi, edx
jmp 0x516bbe
mov eax, dword [esp + 0x58]
mov byte [eax + 4], bl
jmp 0x517151
lea edi, [esp + 0x14]
mov ecx, edi
push esi
call fcn.00518bac
pop eax
mov eax, dword [edi]
cmp eax, 0x80000000
jne 0x516c62
mov cl, byte [esp + 0x18]
jmp 0x51714a
lea edi, [esp + 0x68]
lea edx, [esp + 0x5c]
mov ecx, edi
push ebx
call fcn.0051491d
pop eax
mov esi, dword [edi + 4]
mov edi, dword [edi + 8]
cmp byte [esp + 0xb8], 1
mov dword [esp + 4], esi
je 0x516c39
cmp dword [esp + 0x54], 2
jne 0x516c41
mov ecx, esi
mov edx, edi
push 0x5b
call fcn.00445337
pop ecx
test al, al
je 0x516d05
mov edx, edi
mov ecx, esi
push 0x5d
call fcn.00445361
pop ecx
mov dl, 3
test al, al
je 0x516e95
mov eax, edi
mov ecx, esi
mov edx, edi
dec eax
push 0x6500c8
push eax
push 1
call fcn.005150bb
add esp, 0xc
mov edi, edx
lea ebx, [esp + 0x14]
mov edx, eax
mov ecx, ebx
push edi
call fcn.005150f0
pop eax
cmp byte [ebx], 0
je 0x5171c1
mov cl, byte [esp + 0x15]
mov dl, 3
jmp 0x516e97
test edi, edi
je 0x516e37
lea ebx, [esp + 0x14]
mov edx, esi
mov ecx, ebx
push edi
call fcn.005149cd
pop eax
mov dl, byte [ebx]
cmp dl, 3
jne 0x516ca5
mov cl, byte [esp + 0x15]
mov dl, 3
jmp 0x516e97
lea edi, [esp + 0x14]
mov dword [esp + 4], eax
mov ebp, dword [edi + 4]
mov eax, dword [edi + 0x10]
mov esi, dword [edi + 0x14]
mov ecx, edi
mov edx, ebp
mov dword [esp + 8], eax
push dword [edi + 8]
call fcn.005149cd
pop eax
mov dl, byte [edi]
cmp dl, 3
jne 0x516dc9
mov ecx, dword [esp + 4]
mov bl, byte [esp + 0x15]
mov edx, ebp
call fcn.00446465
mov ecx, ebx
jmp 0x51714a
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
movzx eax, word [esp + 0x16]
mov ebx, dword [esp + 0x24]
test byte [esp], 1
mov cl, byte [esp + 0x15]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x1c]
mov word [esp + 0x32], ax
mov dword [esp + 0x64], ebx
mov dword [esp + 8], esi
mov esi, dword [esp + 0x60]
je 0x516ec1
mov dword [esp], ecx
mov ebx, edi
mov edi, edx
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 4]
call fcn.00446465
mov ecx, dword [esp]
mov edx, edi
mov edi, ebx
jmp 0x516ec1
mov eax, esi
lea ebx, [esp + 0x1c]
mov ebp, 0x3a801
add eax, edi
mov dword [ebx - 8], esi
mov dword [ebx - 4], edi
mov dword [ebx], esi
mov esi, 0x4800013
mov dword [ebx + 4], eax
and dword [ebx + 8], 0
mov ecx, ebx
call fcn.004197be
lea eax, [edx - 0x2f]
cmp eax, 0x11
ja 0x516d3e
bt ebp, eax
jb 0x516dc0
lea eax, [edx - 9]
cmp eax, 0x1a
ja 0x516d4b
bt esi, eax
jb 0x516dc0
lea eax, [edx - 0x5b]
cmp eax, 4
jb 0x516dc0
test edx, edx
je 0x516dc0
cmp edx, 0x7c
je 0x516dc0
cmp edx, 0x110000
jne 0x516d26
lea esi, [esp + 0x38]
mov eax, dword [esp + 4]
lea ebx, [esp + 0x14]
and dword [esi], 0
mov dword [esi + 4], 1
and dword [esi + 8], 0
mov dword [ebx], eax
mov dword [ebx + 4], edi
mov dword [ebx + 8], 0x6500b8
mov ecx, ebx
call fcn.0044fdfa
test eax, eax
je 0x5171f0
push edx
push eax
push esi
call fcn.0051461e
add esp, 0xc
test al, al
je 0x516d8a
push 0x37
pop edx
mov ecx, str.a_Display_implementation_returned_an_error_unexpectedly_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_alloc_src_string.rs
push 0x650f44
push 0x64fe0c
push ebx
call fcn.0059f1c0
mov dl, 3
mov cl, 5
jmp 0x516e97
mov cl, byte [esp + 0x15]
movsd xmm0, qword [esp + 0x16]
movsd xmm1, qword [esp + 0x1e]
movzx eax, word [esp + 0x26]
test dl, dl
mov dword [esp + 0x74], ebp
mov dword [esp + 0x2c], ebx
movsd qword [esp + 0x3a], xmm0
movsd qword [esp + 0x42], xmm1
mov word [esp + 0x4a], ax
mov byte [esp + 0x38], dl
mov dword [esp], ecx
mov byte [esp + 0x39], cl
jne 0x516e3d
lea ecx, [esp + 0x3c]
mov edi, edx
call fcn.00518d3c
mov edx, edi
test al, al
je 0x516e3d
lea ecx, [esp + 0x38]
call fcn.005149b9
xor edi, edi
xor ebx, ebx
mov dword [esp + 0xc], 0
mov dword [esp + 0x4c], 0
inc edi
jmp 0x516e65
mov dl, 3
xor ecx, ecx
jmp 0x516e97
mov ecx, dword [esp + 0x3c]
mov ebx, edx
movzx eax, word [esp + 0x3a]
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x48]
mov word [esp + 0x32], ax
mov dword [esp + 0xc], edx
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x74]
call fcn.00446465
mov ecx, dword [esp]
mov edx, ebx
jmp 0x516ec1
cmp byte [esp + 0xb8], 2
je 0x516a2d
cmp eax, 0x5c
je 0x516a13
jmp 0x516a2d
mov cl, 4
test byte [esp], 1
je 0x516eb8
mov dword [esp], ecx
mov ebp, edi
mov edi, edx
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 4]
call fcn.00446465
mov ecx, dword [esp]
mov edx, edi
mov edi, ebp
cmp dl, 3
je 0x51714a
movzx eax, word [esp + 0x32]
lea ebp, [esp + 0x38]
mov dword [esp + 0x14], 0x6500dc
mov word [ebp + 2], ax
mov eax, dword [esp + 0x4c]
mov dword [ebp + 4], eax
mov eax, dword [esp + 0xc]
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x64]
mov dword [ebp + 0x10], eax
xor eax, eax
mov byte [ebp], dl
mov byte [ebp + 1], cl
lea ecx, [esp + 0x68]
inc eax
mov dword [ecx], ebp
mov dword [ecx + 4], 0x5143f7
mov dword [esp + 0x18], eax
and dword [esp + 0x24], 0
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
lea eax, [esp + 0x14]
push eax
mov edi, dword [esp + 0x14]
push edi
call fcn.0051460a
pop ecx
pop edx
movzx ecx, al
mov edx, 0x650294
call fcn.00518aa6
mov edi, dword [edi + 8]
cmp byte [ebp], 0
jne 0x516f6f
cmp dword [esp + 0x44], 0
jne 0x516f6f
mov ecx, dword [esp + 8]
mov edx, esi
push 1
push 0x650957
call fcn.00515e1b
pop ecx
pop edx
xor ecx, ecx
cmp byte [esp + 0xb8], 2
jne 0x51713d
test al, al
jne 0x51713d
mov ecx, dword [esp + 8]
mov edx, esi
mov dword [esp], edi
push 0x3a
call fcn.00517229
pop ecx
xor ebp, ebp
test eax, eax
je 0x51703f
mov ecx, dword [esp + 0x10]
mov esi, edx
mov edx, eax
lea edi, [esp + 0x14]
xor ebx, ebx
mov eax, esi
mov cl, byte [ecx + 0x20]
mov byte [esp + 4], cl
mov esi, eax
mov ecx, edi
mov dword [esp + 8], edx
push eax
call fcn.0051864c
pop eax
mov eax, dword [esp + 0x14]
cmp eax, 0x110000
je 0x517004
lea ecx, [eax - 0x30]
cmp ecx, 0xa
jae 0x516fe2
imul eax, ebp, 0xa
add ecx, eax
cmp ecx, 0xffff
ja 0x51713b
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov bl, 1
mov ebp, ecx
jmp 0x516fa1
cmp byte [esp + 4], 0
jne 0x517004
lea ecx, [eax - 0x23]
cmp ecx, 0x1c
ja 0x516ffb
mov edx, 0x10001001
bt edx, ecx
jb 0x517004
cmp eax, 0x5c
jne 0x51713b
test bl, 1
je 0x51703f
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 8]
mov ecx, dword [eax + 4]
push 0x6502bc
push dword [esp + 0xc0]
call fcn.00517c55
pop ecx
pop ecx
mov ecx, eax
call fcn.005155d0
test ax, ax
je 0x517170
cmp dx, bp
jne 0x517170
xor ebx, ebx
mov eax, dword [esp + 0x48]
movsd xmm0, qword [esp + 0x38]
movsd xmm1, qword [esp + 0x40]
lea edi, [esp + 0x80]
lea edx, [esp + 0x14]
mov ecx, edi
mov dword [edx + 0x10], eax
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
call fcn.0051497b
mov eax, dword [esp + 0x34]
movsd xmm0, qword [edi + 1]
movsd xmm1, qword [edi + 9]
cmp dword [esp + 0x50], eax
mov al, byte [edi]
movsd qword [esp + 0x38], xmm0
movsd qword [esp + 0x40], xmm1
je 0x5170a2
test al, al
jne 0x5170a2
mov eax, dword [esp + 0x58]
mov byte [eax + 4], 0
jmp 0x517151
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x10]
mov byte [esp + 0x50], al
mov edx, dword [esp + 0x54]
mov eax, dword [ebx + 8]
mov ecx, ebx
mov dword [esp + 0xc], eax
lea eax, [esp + 0x78]
mov byte [eax], 1
push esi
push dword [esp + 0xc]
push eax
call fcn.00518ac7
add esp, 0xc
mov dword [esp + 8], eax
mov eax, edx
push 9
pop ecx
lea edx, [esp + 0x78]
mov esi, ebx
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov cl, byte [esp + 0x50]
movsd xmm0, qword [esp + 0x38]
movsd xmm1, qword [esp + 0x40]
mov byte [esp + 0x14], cl
mov ecx, dword [esp + 0x58]
movsd qword [esp + 0x15], xmm0
movsd qword [esp + 0x1d], xmm1
push eax
push dword [esp + 0xc]
push dword [esp + 0x14]
push ebp
push dword [esp + 0x14]
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x18]
push dword [esp + 0x50]
push dword [esp + 0x4c]
push dword [esp + 0xe0]
push dword [esp + 0x7c]
call fcn.0051785d
add esp, 0x2c
jmp 0x517165
mov cl, 2
mov esi, ecx
lea ecx, [esp + 0x38]
call fcn.005149b9
mov ecx, esi
mov eax, dword [esp + 0x58]
mov byte [eax + 4], cl
mov edx, dword [esp + 0x10]
mov dword [eax], 2
mov ecx, dword [edx]
mov edx, dword [edx + 4]
call fcn.00446465
add esp, 0x9c
pop esi
pop edi
pop ebx
pop ebp
ret
xor ebx, ebx
mov dword [esp + 0x14], 0x6502a4
lea eax, [esp + 0x5c]
inc ebx
mov dword [esp + 0x68], eax
mov word [eax], bp
lea eax, [esp + 0x68]
mov dword [esp + 0x6c], fcn.0041ea30
mov dword [esp + 0x18], ebx
and dword [esp + 0x24], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ebx
push edi
push dword [esp + 0x14]
call fcn.0051460a
pop ecx
pop edx
movzx ecx, al
mov edx, 0x6502ac
call fcn.00518aa6
jmp 0x517041
mov edx, dword [esp + 0x18]
movzx eax, word [esp + 0x16]
mov esi, dword [esp + 0x20]
mov cl, byte [esp + 0x15]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x4c], edx
movzx edx, byte [esp + 0x24]
mov word [esp + 0x32], ax
mov dword [esp + 0xc], esi
mov dword [esp + 0x64], edx
mov dl, 2
jmp 0x517206
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
xor edx, edx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x60]
mov dword [esp + 8], eax
jmp 0x516e97
push 0x2b
pop edx
mov ecx, str.called__Option::unwrap____on_a__None__valueC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fwinapi_util_0.1.6_srcwin.rs
push 0x650274
call fcn.0059ef30