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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0xac
mov esi, dword [ebp + 0x1c]
mov dword [esp + 0x90], eax
mov eax, edx
mov dword [esp + 0x98], ecx
cmp edx, 1
je 0x1000a556
cmp ecx, 1
je 0x1000a454
mov ebx, edx
imul eax, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
shr ebx, 1
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x98]
sub edx, eax
shr ebx, 1
mov eax, edx
mov dword [esp + 0x1c], ebx
test esi, esi
jne 0x1000a2a8
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x1000a2a0
add eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
mov ebx, esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x90]
mov edi, dword [ebp + 0x10]
lea ecx, [eax - 1]
imul edx, ecx
test edi, edi
mov edi, dword [ebp + 0x18]
mov dword [esp + 0x3c], ecx
cmovns ebx, edx
add edi, ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x4c], edi
add edi, dword [ebp + 0x14]
mov dword [esp + 0x40], edi
lea edi, [ecx + ecx]
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x44], edi
mov edi, esi
test ecx, ecx
mov ecx, dword [ebp + 0x18]
cmovs edi, edx
add ebx, dword [ebp + 0x14]
mov dword [esp + 0x54], ebx
mov ebx, dword [ebp + 0x10]
add ecx, edi
mov dword [esp + 0x30], edi
add edi, dword [ebp + 0x14]
mov dword [esp + 0x50], ecx
add ecx, dword [ebp + 0x14]
mov dword [esp + 0x48], ecx
lea ecx, [ebx*8]
mov ebx, eax
shr eax, 3
shl eax, 4
mov dword [esp + 0x58], edi
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0xa8], ecx
sub ecx, dword [ebp + 0x10]
lea edi, [eax + eax*2]
lea eax, [eax + eax*4]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa4], eax
lea eax, [edi + edi]
mov dword [esp + 0xa0], eax
mov eax, ebx
and eax, 0xfffffff8
mov dword [esp + 0x5c], eax
imul eax, dword [ebp + 0x10]
mov dword [esp + 0x28], eax
mov eax, ebx
add edx, dword [ebp + 0x10]
add eax, eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x14]
add eax, dword [ebp + 0x18]
mov dword [esp + 0x20], 0
mov dword [esp + 0x64], eax
mov dword [esp + 0x98], edi
mov edi, dword [ebp + 0x10]
lea esi, [esi]
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x68], 0
test ebx, ebx
je 0x1000a286
lea esi, [esi]
mov esi, dword [esp + 0x90]
test esi, esi
jle 0x1000a26d
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x58]
add ecx, dword [ebp + 0xc]
add eax, dword [ebp + 8]
cmp ecx, eax
mov eax, dword [esp + 0x54]
setb bl
add eax, dword [ebp + 8]
cmp dword [ebp + 0xc], eax
seta al
or ebx, eax
mov eax, dword [esp + 0x48]
add eax, dword [ebp + 8]
cmp ecx, eax
mov eax, dword [esp + 0x40]
setb dl
add eax, dword [ebp + 8]
cmp dword [ebp + 0xc], eax
seta al
or eax, edx
and eax, ebx
cmp dword [esp + 0x3c], 9
mov ebx, dword [esp + 0x4c]
seta dl
and eax, edx
mov edx, dword [esp + 0x50]
add edx, dword [ebp + 8]
cmp ecx, edx
setb dl
add ebx, dword [ebp + 8]
cmp dword [ebp + 0xc], ebx
seta bl
or edx, ebx
test al, dl
je 0x1000a3f8
mov eax, dword [esp + 0x2c]
add eax, dword [ebp + 8]
cmp dword [ebp + 0xc], eax
mov edx, dword [esp + 0x30]
seta al
add edx, dword [ebp + 8]
cmp ecx, edx
setb dl
or al, dl
je 0x1000a3f8
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x94], esi
mov esi, dword [esp + 0x24]
add esi, dword [ebp + 0xc]
mov eax, dword [esp + 0x64]
add ecx, ebx
add edx, ebx
mov dword [esp + 0x8c], esi
add eax, ebx
mov esi, esi
lea edi, [edi]
movzx esi, word [ebx]
movd xmm1, esi
movzx esi, word [ebx + edi*2]
pinsrw xmm1, word [ebx + edi], 1
movd xmm3, esi
mov esi, dword [esp + 0x98]
pinsrw xmm3, word [ebx + esi], 1
movzx esi, word [ebx + edi*4]
movd xmm0, esi
mov esi, dword [esp + 0xa4]
punpckldq xmm1, xmm3
movdqu xmm6, xmm1
pinsrw xmm0, word [ebx + esi], 1
mov esi, dword [esp + 0xa0]
movzx esi, word [ebx + esi]
movd xmm2, esi
mov esi, dword [esp + 0x9c]
pinsrw xmm2, word [ebx + esi], 1
movzx esi, word [ecx]
movd xmm1, esi
movzx esi, word [ecx + edi*2]
punpckldq xmm0, xmm2
pinsrw xmm1, word [ecx + edi], 1
punpcklqdq xmm6, xmm0
movd xmm3, esi
mov esi, dword [esp + 0x98]
pinsrw xmm3, word [ecx + esi], 1
movzx esi, word [ecx + edi*4]
movd xmm0, esi
mov esi, dword [esp + 0xa4]
punpckldq xmm1, xmm3
movdqu xmm7, xmm1
pinsrw xmm0, word [ecx + esi], 1
mov esi, dword [esp + 0xa0]
movzx esi, word [ecx + esi]
movd xmm2, esi
mov esi, dword [esp + 0x9c]
pinsrw xmm2, word [ecx + esi], 1
movzx esi, word [edx]
movd xmm1, esi
movzx esi, word [edx + edi*2]
punpckldq xmm0, xmm2
pinsrw xmm1, word [edx + edi], 1
punpcklqdq xmm7, xmm0
movd xmm0, esi
mov esi, dword [esp + 0x98]
pinsrw xmm0, word [edx + esi], 1
movzx esi, word [edx + edi*4]
movd xmm2, esi
mov esi, dword [esp + 0xa4]
punpckldq xmm1, xmm0
pinsrw xmm2, word [edx + esi], 1
mov esi, dword [esp + 0xa0]
add ebx, dword [esp + 0xa8]
add ecx, dword [esp + 0xa8]
movzx esi, word [edx + esi]
movd xmm3, esi
mov esi, dword [esp + 0x9c]
pinsrw xmm3, word [edx + esi], 1
movzx esi, word [eax]
add edx, dword [esp + 0xa8]
movd xmm0, esi
movzx esi, word [eax + edi*2]
punpckldq xmm2, xmm3
pinsrw xmm0, word [eax + edi], 1
punpcklqdq xmm1, xmm2
movd xmm3, esi
mov esi, dword [esp + 0x98]
pinsrw xmm3, word [eax + esi], 1
movzx esi, word [eax + edi*4]
movd xmm2, esi
mov esi, dword [esp + 0xa4]
punpckldq xmm0, xmm3
movdqu xmm3, xmm7
movdqu xmm4, xmm2
pinsrw xmm4, word [eax + esi], 1
mov esi, dword [esp + 0xa0]
movzx esi, word [eax + esi]
movdqu xmm5, xmm4
pxor xmm4, xmm4
pcmpgtw xmm4, xmm6
movd xmm2, esi
mov esi, dword [esp + 0x9c]
pinsrw xmm2, word [eax + esi], 1
movups xmmword [esp + 0x7c], xmm4
mov esi, dword [esp + 0x94]
add eax, dword [esp + 0xa8]
punpckldq xmm5, xmm2
movdqu xmm2, xmm6
punpckhwd xmm6, xmmword [esp + 0x7c]
add esi, 0x10
punpcklqdq xmm0, xmm5
pxor xmm5, xmm5
punpcklwd xmm2, xmm4
pcmpgtw xmm5, xmm7
punpcklwd xmm3, xmm5
movups xmmword [esp + 0x6c], xmm5
movdqu xmm5, xmm0
paddd xmm2, xmm3
pxor xmm3, xmm3
pcmpgtw xmm3, xmm1
movdqu xmm4, xmm3
movdqu xmm3, xmm1
punpcklwd xmm3, xmm4
punpckhwd xmm1, xmm4
paddd xmm2, xmm3
pxor xmm3, xmm3
pcmpgtw xmm3, xmm0
punpcklwd xmm5, xmm3
punpckhwd xmm0, xmm3
paddd xmm2, xmm5
movdqu xmm5, xmm7
punpckhwd xmm5, xmmword [esp + 0x6c]
paddd xmm2, xmmword [0x10025240]
pxor xmm7, xmm7
paddd xmm5, xmm6
paddd xmm1, xmm5
pcmpgtd xmm7, xmm2
pand xmm7, xmmword [0x10025290]
paddd xmm0, xmm1
pxor xmm1, xmm1
paddd xmm0, xmmword [0x10025240]
paddd xmm2, xmm7
pcmpgtd xmm1, xmm0
psrad xmm2, 2
pand xmm1, xmmword [0x10025290]
paddd xmm0, xmm1
movdqu xmm1, xmm2
psrad xmm0, 2
punpcklwd xmm2, xmm0
punpckhwd xmm1, xmm0
movdqu xmm0, xmm2
punpcklwd xmm2, xmm1
punpckhwd xmm0, xmm1
punpcklwd xmm2, xmm0
movups xmmword [esi - 0x10], xmm2
mov dword [esp + 0x94], esi
cmp esi, dword [esp + 0x8c]
jne 0x10009f50
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x5c]
add edx, dword [ebp + 8]
cmp dword [esp + 0x90], ebx
je 0x1000a445
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x64]
lea esi, [esi]
lea edi, [edi]
mov ecx, dword [ebp + 0x18]
movsx eax, word [edx]
movsx ecx, word [edx + ecx]
add ecx, eax
mov eax, dword [ebp + 0x14]
movsx eax, word [edx + eax]
add ecx, eax
movsx eax, word [edx + esi]
add eax, ecx
lea ecx, [eax + 5]
add eax, 2
cmovs eax, ecx
mov ecx, dword [ebp + 0xc]
add edx, edi
sar eax, 2
mov word [ecx + ebx*2], ax
add ebx, 1
cmp dword [esp + 0x90], ebx
jg 0x1000a220
mov ebx, dword [esp + 0x34]
lea esi, [ecx + ebx]
mov eax, dword [esp + 0x38]
add dword [ebp + 8], eax
mov dword [ebp + 0xc], esi
mov eax, dword [ebp + 0x18]
add dword [esp + 0x68], 1
add dword [ebp + 8], eax
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x60], eax
jne 0x10009e80
mov eax, dword [esp + 0x18]
add dword [esp + 0x20], 1
add dword [ebp + 8], eax
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x1c], eax
jne 0x10009e68
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
test ebx, ebx
je 0x1000a2a0
add eax, dword [ebp + 0x14]
mov esi, dword [ebp + 0x14]
mov dword [esp + 0x94], 0
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x90]
add esi, dword [ebp + 0x18]
lea ebx, [eax + eax]
mov dword [esp + 0xa4], esi
mov esi, dword [ebp + 0x18]
imul eax, dword [ebp + 0x10]
mov dword [esp + 0x9c], ebx
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x98], eax
lea esi, [esi]
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0x60]
test eax, eax
je 0x1000a3c9
mov esi, esi
lea edi, [edi]
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x90]
mov edx, dword [ebp + 8]
add eax, ebx
mov dword [esp + 0xa8], eax
test ecx, ecx
jle 0x1000a3ad
nop
movzx edi, byte [edx + 1]
movzx eax, byte [edx]
movzx ecx, byte [edx + esi]
shl edi, 8
or edi, eax
movzx eax, byte [edx + esi + 1]
movsx edi, di
shl eax, 8
or ecx, eax
movsx ecx, cx
lea eax, [ecx + edi]
mov edi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x14]
movzx edi, byte [edx + edi + 1]
movzx ecx, byte [edx + ecx]
shl edi, 8
or ecx, edi
movsx ecx, cx
add ecx, eax
mov eax, dword [esp + 0xa4]
movzx edi, byte [edx + eax + 1]
movzx eax, byte [edx + eax]
shl edi, 8
or eax, edi
cwde
add ecx, eax
lea eax, [ecx + 5]
add ecx, 2
cmovs ecx, eax
add ebx, 2
add edx, dword [ebp + 0x10]
sar ecx, 2
mov word [ebx - 2], cx
cmp ebx, dword [esp + 0xa8]
jne 0x1000a330
mov eax, dword [esp + 0x98]
add dword [ebp + 8], eax
add dword [esp + 0xa0], 1
mov eax, dword [esp + 0xa0]
add dword [ebp + 8], esi
cmp dword [esp + 0x60], eax
jne 0x1000a310
mov eax, dword [esp + 0x7c]
add dword [esp + 0x94], 1
add dword [ebp + 8], eax
mov eax, dword [esp + 0x94]
cmp dword [esp + 0x1c], eax
jne 0x1000a2f0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov esi, dword [esp + 0x34]
add esi, dword [ebp + 0xc]
lea esi, [esi]
mov eax, dword [ebp + 0x18]
movsx ecx, word [edx]
movsx eax, word [edx + eax]
add ecx, eax
mov eax, dword [ebp + 0x14]
movsx eax, word [edx + eax]
add ecx, eax
mov eax, dword [esp + 0x64]
movsx eax, word [edx + eax]
add eax, ecx
lea ecx, [eax + 5]
add eax, 2
cmovs eax, ecx
add ebx, 2
add edx, edi
sar eax, 2
mov word [ebx - 2], ax
cmp esi, ebx
jne 0x1000a408
jmp 0x1000a263
mov eax, dword [ebp + 0xc]
mov ebx, dword [esp + 0x34]
lea esi, [eax + ebx]
jmp 0x1000a263
cmp edx, 1
je 0x1000a556
cmp eax, dword [esp + 0x98]
je 0x1000a72e
cmp dword [esp + 0x98], 1
je 0x1000a628
mov eax, dword [esp + 0x98]
shr eax, 1
mov dword [esp + 0x94], eax
mov dword [esp + 0x68], eax
je 0x1000a71c
mov eax, dword [ebp + 0x14]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x9c], 0
add eax, eax
sub eax, dword [ebp + 0x18]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x90]
lea ebx, [eax + eax]
imul eax, dword [ebp + 0x10]
mov dword [esp + 0x7c], ebx
mov ebx, dword [ebp + 0x14]
mov dword [esp + 0x8c], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0xa0]
add eax, edi
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x90]
test eax, eax
jg 0x1000a549
jmp 0x1000a596
movzx ecx, byte [edx + 1]
movzx eax, byte [edx]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + ebx + 1]
shl eax, 8
mov dword [esp + 0xa4], eax
movzx eax, byte [edx + ebx]
or ax, word [esp + 0xa4]
cwde
movsx ecx, cx
add edx, dword [ebp + 0x10]
add edi, 2
add ecx, eax
mov eax, ecx
shr eax, 0x1f
add ecx, eax
sar ecx, 1
mov word [edi - 2], cx
cmp edi, dword [esp + 0xa8]
je 0x1000a588
test esi, esi
jne 0x1000a500
movzx ecx, word [edx]
movzx eax, word [edx + ebx]
jmp 0x1000a527
cmp dword [esp + 0x98], 1
jne 0x1000a45d
mov dword [esp + 8], 0x298
mov dword [esp + 4], str._home_runner_build_wine_wine_dlls_glu32_mipmap.c
mov dword [esp], str.__width__1__height__1_
call dword [sym.imp.ucrtbase.dll__assert]
lea esi, [esi]
mov edx, dword [esp + 0x8c]
add dword [esp + 0xa0], edx
add dword [esp + 0x9c], 1
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x9c]
add dword [esp + 0xa0], edx
cmp dword [esp + 0x94], eax
jne 0x1000a4d2
mov eax, dword [esp + 0x98]
imul eax, dword [ebp + 0x14]
add eax, dword [ebp + 8]
cmp dword [esp + 0xa0], eax
jne 0x1000a768
mov dword [esp + 0xa0], 1
mov ebx, dword [esp + 0x90]
imul ebx, dword [ebp + 0x10]
imul ebx, dword [esp + 0xa0]
imul ebx, dword [esp + 0x68]
add ebx, dword [ebp + 0xc]
cmp edi, ebx
je 0x1000a2a0
mov dword [esp + 8], 0x317
mov dword [esp + 4], str._home_runner_build_wine_wine_dlls_glu32_mipmap.c
mov dword [esp], str._char__dest____char__dataOut___components__element_size__halfWidth__halfHeight_
call dword [sym.imp.ucrtbase.dll__assert]
nop
lea esi, [esi]
cmp eax, 1
je 0x1000a74b
shr eax, 1
mov dword [esp + 0x9c], eax
je 0x1000a2a0
mov eax, dword [esp + 0x90]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0xa0], 0
lea ebx, [eax + eax]
imul eax, dword [ebp + 0x10]
mov dword [esp + 0x98], ebx
mov ebx, dword [ebp + 0x18]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x98]
mov edx, dword [ebp + 8]
add eax, edi
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x90]
test eax, eax
jg 0x1000a6d9
jmp 0x1000a6f0
movzx ecx, byte [edx + 1]
movzx eax, byte [edx]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + ebx + 1]
shl eax, 8
mov dword [esp + 0xa4], eax
movzx eax, byte [edx + ebx]
or ax, word [esp + 0xa4]
cwde
movsx ecx, cx
add edx, dword [ebp + 0x10]
add edi, 2
add ecx, eax
mov eax, ecx
shr eax, 0x1f
add ecx, eax
sar ecx, 1
mov word [edi - 2], cx
cmp edi, dword [esp + 0xa8]
je 0x1000a6e6
test esi, esi
jne 0x1000a690
movzx ecx, word [edx]
movzx eax, word [edx + ebx]
jmp 0x1000a6b7
mov eax, dword [esp + 0x94]
add dword [ebp + 8], eax
add dword [esp + 0xa0], 1
mov eax, dword [esp + 0xa0]
add dword [ebp + 8], ebx
cmp dword [esp + 0x9c], eax
jne 0x1000a66d
mov dword [esp + 0x68], 1
jmp 0x1000a5e3
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0xa0], eax
jmp 0x1000a5bd
mov dword [esp + 8], 0x2d8
mov dword [esp + 4], str._home_runner_build_wine_wine_dlls_glu32_mipmap.c
mov dword [esp], str.width___height
call dword [sym.imp.ucrtbase.dll__assert]
mov dword [esp + 8], 0x2db
mov dword [esp + 4], str._home_runner_build_wine_wine_dlls_glu32_mipmap.c
mov dword [esp], str.width___1
call dword [sym.imp.ucrtbase.dll__assert]
mov dword [esp + 8], 0x314
mov dword [esp + 4], str._home_runner_build_wine_wine_dlls_glu32_mipmap.c
mov dword [esp], str.src____const_char__dataIn__ysizeheight_
call dword [sym.imp.ucrtbase.dll__assert]
lea esi, [esi]
lea edi, [edi]