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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x170
mov dword [esp + 0x20], edx
mov esi, ecx
mov eax, dword [0x1038100c]
xor eax, ebp
mov dword [esp + 0x168], eax
mov eax, dword [0x10398d98]
mov ecx, dword [0x10397f40]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x10139dad
mov dword [esp + 0xb0], 0
mov edi, dword [0x10398d94]
cmp byte [edi], 0
je 0x101393c5
call fcn.100547f0
sub esp, 0x2c
xor ecx, ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], ecx
xorps xmm0, xmm0
movups xmmword [esp + 0x10], xmm0
mov ebx, str.SwapChain11::resetOffscreenTexture
mov dword [esp + 0xc], ebx
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], 0x42
call fcn.102b08a0
add esp, 0x2c
mov edi, dword [0x10398d94]
call fcn.100547f0
lea ecx, [esp + 0xb4]
mov dword [ecx], eax
mov dword [ecx + 4], edi
mov dword [ecx + 8], ebx
mov dword [ecx - 4], ecx
mov ebx, dword [ebp + 8]
mov eax, dword [esi + 0x14]
mov edi, dword [eax + 0x1e58]
lea eax, [esi + 0x7c]
lea ecx, [esp + 0x90]
mov dword [esp], eax
push eax
call fcn.10151690
mov eax, dword [esi + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x1c]
mov dword [esp + 0xc], eax
mov ecx, esi
call fcn.10139110
mov eax, 0x1e60
add eax, dword [esi + 0x14]
push eax
push dword [esi + 4]
call fcn.10151c00
add esp, 8
xorps xmm0, xmm0
movups xmmword [esp + 0x7c], xmm0
movaps xmmword [esp + 0x70], xmm0
movaps xmmword [esp + 0x60], xmm0
cmp byte [esi + 0x24], 0
mov dword [esp + 8], eax
je 0x1013947e
mov ebx, dword [esi + 0xc]
mov eax, dword [edi]
mov ecx, dword [eax + 0x70]
call dword [section..00cfg]
lea eax, [esp + 0x4c]
push eax
push 0x102e9710
push ebx
push edi
call ecx
test eax, eax
js 0x101394ba
mov edi, dword [esp + 0x4c]
lea ebx, [esp + 0xc0]
mov dword [ebx], 0
mov eax, dword [edi]
mov ecx, dword [eax]
call dword [section..00cfg]
push ebx
push 0x102e7fe0
push edi
call ecx
mov edi, dword [ebx]
test eax, eax
js 0x101395d3
mov ebx, edi
jmp 0x101395e7
mov edi, dword [esi + 0x10]
test edi, edi
je 0x10139639
lea ebx, [esp + 0xc0]
mov dword [ebx], 0
mov eax, dword [edi]
mov ecx, dword [eax]
call dword [section..00cfg]
push ebx
push 0x102e7fe0
push edi
call ecx
mov ebx, dword [ebx]
test eax, eax
js 0x10139655
mov edi, ebx
jmp 0x10139669
lea ecx, [esp + 0xc0]
push 3
push 0xdc
push str.resetOffscreenColorBuffer
push str._builds_worker_checkouts_gecko_gfx_angle_checkout_src_libANGLE_renderer_d3d_d3d11_SwapChain11.cpp
mov dword [esp + 0x18], eax
call fcn.10226940
lea eax, [esp + 0xd0]
push str.Could_not_open_shared_handle.
push eax
call fcn.10003890
add esp, 8
mov ebx, eax
push str.HRESULT:
push eax
call fcn.10003890
add esp, 8
push 0x1031a55f
push ebx
call fcn.10003890
add esp, 8
mov eax, dword [ebx]
mov eax, dword [eax + 4]
mov edx, dword [ebx + eax + 0x14]
mov dword [esp + 0xc], edx
movsd xmm0, qword [ebx + eax + 0x20]
movsd qword [esp + 0x20], xmm0
mov cl, byte [ebx + eax + 0x40]
mov byte [esp], cl
mov ecx, edx
and ecx, 0xfffff1ff
or ecx, 0x800
mov dword [ebx + eax + 0x14], ecx
mov eax, dword [ebx]
mov eax, dword [eax + 4]
or dword [ebx + eax + 0x14], 4
lea edi, [esp + 0x30]
push 0
push 8
push edi
call sub.MSVCP140.dll_struct_std::_Smanip_long_long___int64_____cdecl_std::setw_long_long___int64__
add esp, 0xc
mov eax, dword [edi + 0xc]
mov dword [esp + 0x1c], eax
mov ecx, dword [edi]
mov eax, dword [edi + 8]
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov edi, dword [eax + 4]
add edi, ebx
call dword [section..00cfg]
push dword [esp + 0x1c]
push dword [esp + 8]
push edi
call ecx
add esp, 0xc
mov eax, dword [ebx]
mov eax, dword [eax + 4]
mov byte [ebx + eax + 0x40], 0x30
mov ecx, ebx
push dword [esp + 8]
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___long_int_]
mov eax, dword [ebx]
mov eax, dword [eax + 4]
movzx ecx, word [esp + 0xc]
mov dword [ebx + eax + 0x14], ecx
mov eax, dword [ebx]
mov eax, dword [eax + 4]
movsd xmm0, qword [esp + 0x20]
movsd qword [ebx + eax + 0x20], xmm0
mov eax, dword [ebx]
mov eax, dword [eax + 4]
mov cl, byte [esp]
mov byte [ebx + eax + 0x40], cl
lea ecx, [esp + 0xc0]
jmp 0x101396ef
xor ebx, ebx
test edi, edi
je 0x101395e7
mov eax, dword [edi]
mov ecx, dword [eax + 8]
call dword [section..00cfg]
push edi
call ecx
mov eax, dword [esp + 8]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x80]
mov dword [eax + 4], ebx
mov eax, dword [esi + 0x80]
mov dword [eax + 8], 0
mov ebx, dword [esp]
mov ecx, ebx
lea edi, [esp + 0xc0]
push edi
call fcn.101518f0
mov ecx, ebx
push edi
call fcn.10151920
mov edi, dword [esp + 0x4c]
test edi, edi
je 0x101396a3
mov eax, dword [edi]
mov ecx, dword [eax + 8]
call dword [section..00cfg]
push edi
call ecx
jmp 0x101396a3
mov edx, eax
mov eax, dword [esi + 0x30]
cmp dword [eax + 4], 0
je 0x10139705
mov dword [esp + 4], 0
jmp 0x10139715
xor edi, edi
test ebx, ebx
je 0x10139669
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
call dword [section..00cfg]
push ebx
call ecx
mov eax, dword [esp + 8]
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x80]
mov dword [eax + 4], edi
mov eax, dword [esi + 0x80]
mov dword [eax + 8], 0
mov ebx, dword [esp]
mov ecx, ebx
lea edi, [esp + 0xc0]
push edi
call fcn.101518f0
mov ecx, ebx
push edi
call fcn.10151920
lea edi, [esp + 0x60]
mov ecx, ebx
push edi
call fcn.101518f0
test byte [edi + 0x20], 0x20
jne 0x101399f4
lea edi, [esp + 0xc0]
mov ecx, edi
push 3
push 0xf4
push str.resetOffscreenColorBuffer
push str._builds_worker_checkouts_gecko_gfx_angle_checkout_src_libANGLE_renderer_d3d_d3d11_SwapChain11.cpp
call fcn.10226940
lea eax, [esp + 0xd0]
push str.Could_not_use_provided_offscreen_texture__texture_not_renderable.
push eax
call fcn.10003890
add esp, 8
mov ecx, edi
call fcn.102269f0
mov ecx, esi
call fcn.10138a80
mov ebx, 0x300d
jmp 0x10139b74
mov ecx, dword [esi + 0x14]
mov edi, edx
call fcn.10122c10
mov edx, edi
mov dword [esp + 4], eax
lea eax, [esp + 0x60]
mov dword [eax], ebx
mov ecx, dword [ebp + 0xc]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov dword [eax + 0x10], ecx
xor edi, edi
inc edi
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
mov ecx, dword [esi + 0x160]
test ecx, ecx
cmove ecx, edi
mov dword [eax + 0x14], ecx
movaps xmm0, xmmword [0x102e9ae0]
movups xmmword [eax + 0x18], xmm0
movzx ecx, byte [esp + 4]
shl ecx, 8
mov dword [eax + 0x28], ecx
mov ecx, dword [esi + 0x14]
mov ebx, dword [esp + 0x20]
mov edi, edx
lea edx, [ebx + 0x90]
test ebx, ebx
cmove edx, ebx
push dword [esp]
push 0
push edi
push eax
push edx
call fcn.1012b260
xor ecx, ecx
inc ecx
cmp eax, ecx
jne 0x101397ac
lea edi, [esp + 0xc0]
mov ecx, edi
push 3
push 0x10e
push str.resetOffscreenColorBuffer
push str._builds_worker_checkouts_gecko_gfx_angle_checkout_src_libANGLE_renderer_d3d_d3d11_SwapChain11.cpp
call fcn.10226940
lea eax, [esp + 0xd0]
push str.Could_not_create_offscreen_texture_
jmp 0x10139ad2
mov eax, dword [esi + 0x80]
push str.OffscreenBackBufferTexture
push dword [eax + 4]
call fcn.10150f80
add esp, 8
cmp byte [esp + 4], 0
je 0x101399f4
lea edi, [esp + 0x4c]
mov dword [edi], 0
mov eax, dword [esi + 0x80]
mov ebx, dword [eax + 4]
mov eax, dword [ebx]
mov ecx, dword [eax]
call dword [section..00cfg]
push edi
push 0x102e7ff0
push ebx
call ecx
test eax, eax
js 0x101398da
mov ebx, dword [esp + 0x4c]
lea edi, [esi + 0xc]
mov eax, dword [ebx]
mov ecx, dword [eax + 0x20]
call dword [section..00cfg]
push edi
push ebx
call ecx
mov ebx, dword [esp + 0x4c]
test ebx, ebx
mov dword [esp], eax
je 0x10139835
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
call dword [section..00cfg]
push ebx
call ecx
mov eax, dword [esp]
mov dword [esp + 0x4c], 0
test eax, eax
jns 0x101399f4
xor ecx, ecx
mov dword [edi], ecx
lea ecx, [esp + 0xc0]
push 3
push 0x12a
push str.resetOffscreenColorBuffer
push str._builds_worker_checkouts_gecko_gfx_angle_checkout_src_libANGLE_renderer_d3d_d3d11_SwapChain11.cpp
call fcn.10226940
lea eax, [esp + 0xd0]
push str.Could_not_get_offscreen_texture_shared_handle_
push eax
call fcn.10003890
add esp, 8
mov edi, eax
push str.HRESULT:
push eax
call fcn.10003890
add esp, 8
push 0x1031a55f
push edi
call fcn.10003890
add esp, 8
mov eax, dword [edi]
mov eax, dword [eax + 4]
mov edx, dword [edi + eax + 0x14]
mov dword [esp + 0x18], edx
movsd xmm0, qword [edi + eax + 0x20]
movsd qword [esp + 0x28], xmm0
mov cl, byte [edi + eax + 0x40]
mov byte [esp + 4], cl
mov ecx, edx
and ecx, 0xfffff1ff
or ecx, 0x800
mov dword [edi + eax + 0x14], ecx
mov eax, dword [edi]
mov eax, dword [eax + 4]
or dword [edi + eax + 0x14], 4
lea ebx, [esp + 0x30]
xor eax, eax
push eax
jmp 0x10139971
lea ecx, [esp + 0xc0]
push 3
push 0x120
push str.resetOffscreenColorBuffer
push str._builds_worker_checkouts_gecko_gfx_angle_checkout_src_libANGLE_renderer_d3d_d3d11_SwapChain11.cpp
mov dword [esp + 0x10], eax
call fcn.10226940
lea eax, [esp + 0xd0]
push str.Could_not_query_offscreen_texture_resource_
push eax
call fcn.10003890
add esp, 8
mov edi, eax
push str.HRESULT:
push eax
call fcn.10003890
add esp, 8
push 0x1031a55f
push edi
call fcn.10003890
add esp, 8
mov eax, dword [edi]
mov eax, dword [eax + 4]
mov edx, dword [edi + eax + 0x14]
mov dword [esp + 0x18], edx
movsd xmm0, qword [edi + eax + 0x20]
movsd qword [esp + 0x28], xmm0
mov cl, byte [edi + eax + 0x40]
mov byte [esp + 4], cl
mov ecx, edx
and ecx, 0xfffff1ff
or ecx, 0x800
mov dword [edi + eax + 0x14], ecx
mov eax, dword [edi]
mov eax, dword [eax + 4]
or dword [edi + eax + 0x14], 4
lea ebx, [esp + 0x30]
push 0
push 8
push ebx
call sub.MSVCP140.dll_struct_std::_Smanip_long_long___int64_____cdecl_std::setw_long_long___int64__
add esp, 0xc
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x14], eax
mov ecx, dword [ebx]
mov eax, dword [ebx + 8]
mov dword [esp + 0x10], eax
mov eax, dword [edi]
mov ebx, dword [eax + 4]
add ebx, edi
call dword [section..00cfg]
push dword [esp + 0x14]
push dword [esp + 0x14]
push ebx
call ecx
add esp, 0xc
mov eax, dword [edi]
mov eax, dword [eax + 4]
mov byte [edi + eax + 0x40], 0x30
mov ecx, edi
push dword [esp]
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___long_int_]
mov eax, dword [edi]
mov eax, dword [eax + 4]
movzx ecx, word [esp + 0x18]
mov dword [edi + eax + 0x14], ecx
mov eax, dword [edi]
mov eax, dword [eax + 4]
movsd xmm0, qword [esp + 0x28]
movsd qword [edi + eax + 0x20], xmm0
mov eax, dword [edi]
mov eax, dword [eax + 4]
mov cl, byte [esp + 4]
mov byte [edi + eax + 0x40], cl
lea ecx, [esp + 0xc0]
call fcn.102269f0
mov eax, dword [esi + 0x80]
mov edi, dword [eax + 4]
lea ebx, [esp + 0xc0]
mov dword [ebx], 0
mov eax, dword [edi]
mov ecx, dword [eax]
call dword [section..00cfg]
push ebx
push 0x102ea6e8
push edi
call ecx
mov ebx, dword [ebx]
test eax, eax
js 0x10139a27
mov edi, ebx
jmp 0x10139a3b
xor edi, edi
test ebx, ebx
je 0x10139a3b
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
call dword [section..00cfg]
push ebx
call ecx
mov dword [esi + 0x40], edi
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x14]
lea ecx, [esp + 0x4c]
mov dword [ecx], eax
xor eax, eax
cmp dword [esi + 0x160], 1
setg al
lea eax, [eax + eax + 4]
mov dword [ecx + 4], eax
mov dword [ecx + 8], 0
lea eax, [esi + 0x9c]
mov dword [esp], eax
mov eax, dword [esi + 0x14]
mov edx, dword [esi + 0x80]
mov ebx, dword [esp + 0x20]
lea edi, [ebx + 0x90]
test ebx, ebx
cmove edi, ebx
lea ecx, [eax + 0x2280]
push dword [esp]
push dword [edx + 4]
lea edx, [esp + 0x54]
push edx
push eax
mov dword [esp + 0x10], edi
push edi
call fcn.1012d5b0
cmp eax, 1
jne 0x10139af2
lea edi, [esp + 0xc0]
mov ecx, edi
push 3
push 0x13d
push str.resetOffscreenColorBuffer
push str._builds_worker_checkouts_gecko_gfx_angle_checkout_src_libANGLE_renderer_d3d_d3d11_SwapChain11.cpp
call fcn.10226940
lea eax, [esp + 0xd0]
push str.Could_not_create_offscreen_back_buffer_render_target_
push eax
call fcn.10003890
add esp, 8
mov ecx, dword [ebx + 0xac]
cmp dword [ebx + 0xb0], 0xf
jbe 0x10139b50
mov ebx, dword [ebx + 0x9c]
jmp 0x10139b56
mov eax, dword [esi + 0xa0]
push str.OffscreenBackBufferRenderTarget
push dword [eax]
call fcn.10150f80
add esp, 8
mov eax, dword [esp + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x30], eax
xor eax, eax
cmp dword [esi + 0x160], 1
setg al
lea eax, [eax + eax + 4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0xffffffff
test byte [esp + 0x80], 8
jne 0x10139be4
mov byte [esi + 0xb0], 1
jmp 0x10139c7c
add ebx, 0x9c
push ecx
push ebx
push eax
call fcn.10004880
add esp, 0xc
mov ecx, edi
call fcn.102269f0
mov ecx, esi
call fcn.10138a80
mov ebx, 0x3003
lea ecx, [esp + 0x90]
call fcn.10151860
mov ecx, dword [esp + 0xb0]
test ecx, ecx
je 0x10139bcc
mov eax, dword [ecx + 4]
cmp byte [eax], 0
je 0x10139bcc
mov edx, dword [ecx]
mov ecx, dword [ecx + 8]
sub esp, 0x2c
xor esi, esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], esi
xorps xmm0, xmm0
movups xmmword [esp + 0x10], xmm0
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov dword [esp], edx
mov dword [esp + 4], 0x45
call fcn.102b08a0
add esp, 0x2c
mov ecx, dword [esp + 0x168]
xor ecx, ebp
call fcn.1021e470
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [esi + 0xa4]
mov edx, dword [esi + 0x14]
mov ebx, dword [esi + 0x80]
lea ecx, [edx + 0x2280]
lea edi, [esp + 0x30]
push eax
push dword [ebx + 4]
push edi
push edx
push dword [esp + 0x10]
call fcn.10114c80
cmp eax, 1
jne 0x10139c67
lea edi, [esp + 0xc0]
mov ecx, edi
push 3
push 0x151
push str.resetOffscreenColorBuffer
push str._builds_worker_checkouts_gecko_gfx_angle_checkout_src_libANGLE_renderer_d3d_d3d11_SwapChain11.cpp
call fcn.10226940
lea eax, [esp + 0xd0]
push str.Could_not_create_offscreen_back_buffer_shader_resource_
push eax
call fcn.10003890
add esp, 8
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0xac]
cmp dword [edx + 0xb0], 0xf
jbe 0x10139da0
mov edx, dword [edx + 0x9c]
jmp 0x10139da6
mov eax, dword [esi + 0xa8]
push str.OffscreenBackBufferShaderResource
push dword [eax]
call fcn.10150f80
add esp, 8
mov edi, dword [esp + 0x94]
mov ebx, 0x3000
cmp dword [edi + 4], 0
je 0x10139b74
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x1c]
cmp eax, ecx
cmovg eax, ecx
xor ecx, ecx
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xc]
mov ecx, eax
mov edx, dword [ebp + 0xc]
sub ecx, edx
mov edx, 0
cmovs ecx, edx
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xc8], edx
mov dword [esp + 0xd4], 1
mov ecx, dword [esi + 0x14]
mov dword [esp + 8], esi
mov esi, dword [ebp + 0xc]
sub esi, eax
mov edx, dword [esp + 8]
mov edx, dword [edx + 0x80]
mov ecx, dword [ecx + 0x1e98]
mov eax, 0
cmovs esi, eax
mov eax, dword [edi + 4]
mov dword [esp + 0xc], eax
mov eax, dword [edx + 4]
mov dword [esp], eax
mov eax, dword [ecx]
mov edi, ecx
mov ecx, dword [eax + 0xb8]
call dword [section..00cfg]
lea eax, [esp + 0xc0]
push eax
xor eax, eax
push eax
push dword [esp + 0x14]
push eax
push esi
mov esi, dword [esp + 0x1c]
push eax
push eax
push dword [esp + 0x1c]
push edi
call ecx
xor eax, eax
cmp dword [esi + 0x38], eax
je 0x10139b74
cmp byte [esi + 0x78], 0
je 0x10139d74
xor eax, eax
mov ecx, esi
mov edx, dword [esp + 0x20]
push dword [ebp + 0xc]
push dword [ebp + 8]
push eax
push eax
call fcn.1013b0d0
add esp, 0x10
cmp eax, 0x3000
jne 0x10139b74
mov ecx, esi
xor edx, edx
push dword [ebp + 0xc]
push dword [ebp + 8]
push 0
call fcn.1013b720
add esp, 0xc
cmp eax, 0x3000
jne 0x10139b74
mov ecx, dword [esi + 0x14]
call fcn.1012a9c0
jmp 0x10139b74
add edx, 0x9c
push ecx
push edx
jmp 0x10139b58
push 0x10398d98
call fcn.1021e491
add esp, 4
cmp dword [0x10398d98], 0xffffffff
jne 0x10139354
call fcn.100547f0
mov edi, eax
mov ecx, dword [eax + 0x18]
call dword [section..00cfg]
push str.gpu.angle
push edi
call ecx
add esp, 8
test eax, eax
mov ecx, 0x1039bc5c
cmovne ecx, eax
mov dword [0x10398d94], ecx
push 0x10398d98
call fcn.1021e491
add esp, 4
jmp 0x10139354