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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xc0
call 0x4c77c0
pop eax
mov esi, ecx
mov ecx, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
test edx, edx
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
je 0x4c78c3
test eax, eax
je 0x4c8139
xor edi, edi
cmp dword [ecx + 8], 0xd
lea eax, [ecx + 8]
cmovne edi, eax
je 0x4c7829
cmp dword [edi], 8
jne 0x4c7829
mov edx, dword [ebp + 0x10]
mov ebx, esi
lea esi, [esp + 0x90]
mov ecx, esi
push dword [edi + 4]
push 8
call fcn.004c6a53
pop eax
pop ecx
mov ecx, esi
mov esi, ebx
mov ebx, dword [ebp + 0x10]
call fcn.004c6870
push dword [edi + 4]
call sub.user32.dll_GetDC
mov ecx, dword [ebp + 0x14]
jmp 0x4c782c
mov eax, dword [ebx + 0x38]
mov dword [esp], eax
xor eax, eax
cmp dword [ecx], 1
mov edi, dword [ebp + 8]
jne 0x4c783c
mov eax, dword [ecx + 4]
mov dword [esp + 0x10], eax
lea ecx, [edi + 8]
mov edx, 0x9b8650
push 0x16
call fcn.004c3ed7
pop ecx
test al, al
je 0x4c795b
cmp dword [edi + 0x2c], 0
je 0x4c814c
push 0x10
pop ecx
call fcn.004c272e
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mov edx, dword [ebp + 0x14]
and dword [esp + 0x20], 0
test byte [edx + 0x18], 1
jne 0x4c79ba
mov eax, dword [edx + 0x18]
mov dword [esp + 4], esi
mov esi, edx
xor edx, edx
mov ecx, eax
shr ecx, 8
cmp al, 2
mov al, byte [esi + 0x1e]
cmovne edx, ecx
movzx ecx, al
mov byte [esp + 0xc], al
call fcn.004c69f6
mov esi, eax
mov edi, eax
and esi, 0xffffff
and edi, 1
mov ebx, esi
shr esi, 0x10
inc edi
shr ebx, 8
jmp 0x4c7a54
test eax, eax
jne 0x4c8139
mov dword [esp + 0x2c], 4
and dword [esp + 0x30], 0
and dword [esp + 0x34], 0
movzx edx, byte [edi + 0x45]
movzx ecx, byte [edi + 0x44]
push 3
push 1
call fcn.004c6800
pop ecx
pop edx
mov ecx, ebx
mov edx, 0x3040
mov ebx, eax
call fcn.004c23a8
mov edx, dword [ebp + 0x14]
mov ecx, eax
shr cl, 3
movzx edx, byte [edx + 0x18]
test edx, edx
je 0x4c79cd
cmp edx, 2
jne 0x4c791f
test cl, bl
jne 0x4c79d5
mov ecx, dword [ebp + 0x14]
xor ebx, ebx
mov ecx, dword [ecx + 0x18]
mov edx, ecx
shr edx, 8
cmp cl, 2
cmovne ebx, edx
test bl, 1
jne 0x4c7a02
mov bl, 1
test al, 0x40
mov dword [esp + 0xc], 0x30a0
jne 0x4c7b41
and al, 4
mov bh, 2
cmp al, 1
sbb bh, 0
jmp 0x4c7b43
push dword [esp]
call sub.opengl32.dll_wglCreateContext
test eax, eax
je 0x4c7984
mov edi, eax
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4c7ddf
push edi
push eax
call sub.opengl32.dll_wglShareLists
test eax, eax
jne 0x4c7ddf
call dword [sym.imp.kernel32.dll_GetLastError]
lea edx, [esp + 0x90]
lea ecx, [esp + 0x60]
mov byte [edx], 0
mov dword [edx + 4], eax
call fcn.004c6ac4
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
mov eax, edi
xor eax, 2
or eax, ebx
je 0x4c7e11
jmp 0x4c7e85
test byte [edi + 0x30], 0x20
jne 0x4c7a21
push 0x36
pop eax
mov ecx, 0x9b8678
jmp 0x4c7d06
test cl, bl
je 0x4c7b1a
mov eax, dword [ebp + 0x14]
xor ebx, ebx
mov dword [esp + 0xc], 0x30a2
mov eax, dword [eax + 0x18]
mov ecx, eax
shr ecx, 8
cmp al, 2
cmovne ebx, ecx
mov eax, ebx
shr eax, 0x10
mov dword [esp], eax
mov al, 1
mov dword [esp + 0x10], eax
jmp 0x4c7b52
mov eax, ebx
mov dword [esp + 0xc], 0x30a0
mov bl, 1
mov dword [esp + 0x10], 0
shr eax, 0x10
mov dword [esp], eax
jmp 0x4c7b52
movzx eax, byte [edx + 0x1b]
movzx ecx, word [edx + 0x19]
mov dword [esp + 4], esi
mov ebx, eax
shl ebx, 0x10
or ebx, ecx
mov ecx, ebx
shr ebx, 8
and ecx, 1
mov esi, ecx
neg esi
test ecx, ecx
push 2
pop ecx
cmove ebx, ecx
and esi, eax
push 4
pop edi
mov al, byte [edx + 0x1e]
mov byte [esp + 0xc], al
lea ecx, [esp + 0x18]
mov edx, 0x9126
call fcn.004c677a
lea ecx, [esp + 0x18]
mov edx, edi
call fcn.004c677a
lea edi, [esp + 0x18]
mov edx, 0x2091
mov ecx, edi
call fcn.004c677a
movzx edx, bl
mov ecx, edi
call fcn.004c677a
mov ecx, edi
mov edx, 0x2092
call fcn.004c677a
mov ecx, edi
mov edx, esi
call fcn.004c677a
mov al, byte [esp + 0xc]
cmp al, 2
je 0x4c7ac5
cmp al, 1
push 2
pop esi
lea edi, [esp + 0x18]
mov edx, 0x9126
sbb esi, 0
mov ecx, edi
call fcn.004c677a
mov ecx, edi
mov edx, esi
call fcn.004c677a
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x14]
mov eax, dword [eax + 0x30]
movzx edi, byte [ecx + 0x1f]
test al, 1
jne 0x4c7aef
test edi, edi
je 0x4c7c9e
push 0x32
pop eax
mov esi, dword [esp + 4]
mov ecx, 0x9b86db
jmp 0x4c7d06
mov edx, dword [esp + 8]
mov esi, 0x8261
add edx, dword [edi*4 + 0x4c8164]
jmp edx
and dword [esp + 0x3c], 0
and dword [esp + 0x38], 0
mov dword [esp + 0x48], 0x12
mov dword [esp + 0x4c], str.the_requested_context_Api_isnt_supported.EGL_KHR_create_contextcontext_robustness_is_not_supportedpassed_incompatible_raw_contextcargo_registry_srcindex.crates.io_6f17d22bba15001fglutin_0.30.7_src_apieglcontext.rs
mov dword [esp + 0x50], 0x2a
jmp 0x4c7fa0
mov bh, 3
mov dword [esp], 0
mov dword [esp + 0x10], 0
movzx edx, byte [edi + 0x45]
movzx ecx, byte [edi + 0x44]
push 5
push 1
call fcn.004c69dd
pop ecx
pop edx
test al, al
mov byte [esp + 0x17], al
jne 0x4c7b88
mov eax, dword [ebp + 8]
mov edx, 0x9b803e
lea ecx, [eax + 0x10]
push 0x16
call fcn.004c3ed7
pop ecx
test al, al
je 0x4c7f5e
cmp byte [esp + 0x10], 0
mov dword [esp + 4], esi
je 0x4c7bdb
movzx eax, byte [esp]
movzx ecx, bh
movzx edx, bl
shl ecx, 8
shl eax, 0x10
or ecx, eax
mov eax, dword [ebp + 0x14]
or edx, ecx
movzx ecx, byte [eax + 0x1e]
call fcn.004c69f6
mov edi, eax
mov ebx, eax
and eax, 1
lea ecx, [esp + 0x2c]
mov edx, 0x30fd
shr edi, 0x10
lea esi, [eax + 1]
call fcn.004c677a
lea ecx, [esp + 0x2c]
mov edx, esi
call fcn.004c677a
jmp 0x4c7be3
mov edi, dword [esp]
test bl, 1
je 0x4c7c15
lea esi, [esp + 0x2c]
mov edx, 0x3098
mov ecx, esi
call fcn.004c677a
movzx edx, bh
mov ecx, esi
call fcn.004c677a
mov ecx, esi
mov edx, 0x30fb
call fcn.004c677a
mov eax, edi
mov ecx, esi
movzx edx, al
call fcn.004c677a
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 8]
mov dl, 1
mov ebx, dword [eax + 0x40]
mov eax, dword [ebp + 0x14]
movzx edi, byte [eax + 0x1f]
add ecx, dword [edi*4 + 0x4c8174]
jmp ecx
xor edi, edi
jmp 0x4c7cc6
movzx esi, byte [ecx + 0x1d]
or esi, edi
je 0x4c7cea
lea edi, [esp + 0x18]
mov edx, 0x2094
mov ecx, edi
call fcn.004c677a
mov ecx, edi
mov edx, esi
call fcn.004c677a
mov ecx, dword [ebp + 0x14]
mov edi, dword [ebp + 8]
mov bl, byte [ecx + 0x1c]
test byte [edi + 0x30], 0x10
jne 0x4c7d3d
test bl, bl
jne 0x4c7d60
push 0x34
pop eax
mov esi, dword [esp + 4]
mov ecx, 0x9b870d
mov dword [esp + 0xa0], 0x12
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xa8], eax
and dword [esp + 0xac], 0
call fcn.00473334
xor edi, edi
xor ebx, ebx
jmp 0x4c7e46
lea esi, [esp + 0x18]
mov edx, 0x2097
mov ecx, esi
call fcn.004c677a
xor eax, eax
test bl, bl
mov edx, 0x2098
mov ecx, esi
cmove edx, eax
call fcn.004c677a
lea esi, [esp + 0x18]
xor edx, edx
xor ebx, ebx
mov ecx, esi
call fcn.004c677a
mov ecx, dword [esi]
mov eax, dword [edi + 0x2c]
mov dword [esp + 8], ecx
push ecx
push dword [esp + 0x14]
push dword [esp + 8]
call dword [eax + 0x18]
test eax, eax
je 0x4c7d98
mov esi, dword [esp + 4]
mov dword [esp + 0x98], eax
push 2
pop edi
jmp 0x4c7dbf
call dword [sym.imp.kernel32.dll_GetLastError]
lea esi, [esp + 0x90]
lea edx, [esp + 0x2c]
mov ecx, esi
mov byte [edx], 0
mov dword [edx + 4], eax
call fcn.004c6ac4
mov edi, dword [esi]
mov ebx, dword [esi + 4]
mov esi, dword [esp + 4]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
call fcn.00473334
mov eax, edi
xor eax, 2
or eax, ebx
jne 0x4c7e3f
mov edi, dword [esp + 0x98]
mov ebx, dword [ebp + 0x10]
lock inc dword [ebx]
jle 0x4c8148
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 8]
mov al, byte [eax + 0x18]
lock inc dword [edx]
jle 0x4c8148
cmp al, 2
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], edi
setne cl
and cl, al
mov byte [esp + 0x74], cl
movsd xmm0, qword [esp + 0x68]
movsd xmm1, qword [esp + 0x70]
movsd qword [esp + 0x40], xmm1
movsd qword [esp + 0x38], xmm0
movsd qword [esi + 0x14], xmm1
movsd qword [esi + 0xc], xmm0
mov dword [esi + 8], 1
jmp 0x4c80d0
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0xb4]
movsd xmm0, qword [esp + 0xac]
movsd xmm2, qword [esp + 0x9c]
movsd xmm1, qword [esp + 0xa4]
mov dword [esp + 0x84], ecx
movsd qword [esp + 0x7c], xmm0
movsd qword [esp + 0x74], xmm1
movsd qword [esp + 0x6c], xmm2
mov dword [esp + 0x68], eax
movsd xmm1, qword [esp + 0x70]
movsd xmm0, qword [esp + 0x68]
movsd xmm2, qword [esp + 0x80]
movsd qword [esp + 0x40], xmm1
movsd xmm1, qword [esp + 0x78]
movsd qword [esp + 0x38], xmm0
movsd qword [esi + 0x20], xmm2
movsd xmm2, qword [esp + 0x38]
movsd qword [esi + 0x18], xmm1
movsd xmm1, qword [esp + 0x40]
movsd qword [esi + 8], xmm2
movsd qword [esi + 0x10], xmm1
mov dword [esi + 4], ebx
mov dword [esi], edi
jmp 0x4c8125
lea ecx, [esp + 0x2c]
mov edx, 0x3038
call fcn.004c677a
mov eax, dword [ebp + 0x14]
xor edi, edi
cmp dword [eax], 2
cmove eax, edi
je 0x4c7fad
cmp dword [eax], 0
je 0x4c7faa
and dword [esp + 0x3c], 0
and dword [esp + 0x38], 0
mov dword [esp + 0x48], 0x12
mov dword [esp + 0x4c], 0x9b8077
mov dword [esp + 0x50], 0x1f
and dword [esp + 0x54], 0
jmp 0x4c808c
mov edi, dword [eax + 4]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x3c]
push dword [esp + 0xc]
call dword [eax + 4]
test eax, eax
je 0x4c8020
mov ecx, dword [ebp + 0x10]
lock inc dword [ecx]
jle 0x4c8148
mov edx, dword [ebp + 8]
mov dword [esp + 0x8c], ecx
mov ebx, esi
mov esi, dword [esp + 0x2c]
mov eax, dword [edx + 0x3c]
push esi
push edi
mov edi, edx
push dword [ecx + 0xc]
push dword [edx + 0xc]
call dword [eax + 0x34]
test eax, eax
je 0x4c8052
lock inc dword [edi]
jle 0x4c8148
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x40], edi
mov edx, dword [esp + 0x30]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov ecx, esi
call fcn.00473334
mov esi, ebx
jmp 0x4c80aa
mov ebx, esi
lea esi, [esp + 0x90]
mov ecx, esi
call fcn.004c4938
lea edi, [esp + 0x60]
mov edx, esi
mov esi, ebx
mov ecx, edi
call fcn.004c6819
lea ecx, [esp + 0x38]
mov edx, edi
push 0x9b80f0
call fcn.004c6844
pop eax
jmp 0x4c808c
lea esi, [esp + 0x90]
mov ecx, esi
call fcn.004c4938
lea edi, [esp + 0x60]
mov edx, esi
mov ecx, edi
call fcn.004c6819
lea ecx, [esp + 0x38]
mov edx, edi
push 0x9b8100
call fcn.004c6844
pop eax
lea ecx, [esp + 0x8c]
call fcn.004c2328
mov esi, ebx
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
call fcn.00473334
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edx, eax
xor edx, 2
or edx, ecx
jne 0x4c80dc
movsd xmm0, qword [esp + 0x40]
movsd xmm1, qword [esp + 0x48]
movsd qword [esi + 0x14], xmm1
movsd qword [esi + 0xc], xmm0
and dword [esi + 8], 0
movsd qword [esp + 0x20], xmm1
movsd qword [esp + 0x18], xmm0
and dword [esi + 4], 0
mov dword [esi], 2
jmp 0x4c8125
movsd xmm1, qword [esp + 0x48]
movsd xmm0, qword [esp + 0x40]
movsd xmm2, qword [esp + 0x58]
movsd qword [esp + 0x20], xmm1
movsd xmm1, qword [esp + 0x50]
movsd qword [esp + 0x18], xmm0
movsd qword [esi + 0x20], xmm2
movsd xmm2, qword [esp + 0x18]
movsd qword [esi + 0x18], xmm1
movsd xmm1, qword [esp + 0x20]
movsd qword [esi + 8], xmm2
movsd qword [esi + 0x10], xmm1
mov dword [esi + 4], ecx
mov dword [esi], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x28
pop edx
mov ecx, str.internal_error:_entered_unreachable_codecannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_8ede3aae28fe6e4d52b38157d7bfe0d3bceef225library_std_src_threadlocal.rs
push 0x9b89c8
jmp 0x4c8159
ud2
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0x9b8668
call fcn.0063cd70
pop eax
ud2