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

Disassembly:
sub esp, 0x7c
mov eax, dword [0x10082594]
xor eax, esp
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x84]
push ebx
mov ebx, dword [esp + 0x8c]
push ebp
push esi
mov esi, dword [esp + 0x98]
push edi
push ebx
mov ecx, 0x10087220
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], esi
call fcn.1002c260
push ebx
mov ecx, 0x10087220
mov dword [esp + 0x18], eax
call fcn.1002c2a0
test byte [0x10087444], 2
mov ebp, dword [esp + 0x90]
mov edi, eax
mov dword [esp + 0x20], edi
je 0x1000b91a
cmp ebp, 4
jne 0x1000b8d4
test esi, esi
je 0x1000b8b5
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
push ecx
mov ecx, dword [esi]
push edx
push eax
push ecx
push str.rect__d__d____d__d_
lea edx, [esp + 0x48]
push 0x50
push edx
call fcn.10047c9e
add esp, 0x1c
jmp 0x1000b8e9
mov eax, dword [str.rect_NULL_]
mov ecx, dword [0x1006361c]
mov edx, dword [0x10063620]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
jmp 0x1000b8e9
push esi
push str.lpvoid_x
lea eax, [esp + 0x3c]
push 0x50
push eax
call fcn.10047c9e
add esp, 0x10
cmp dword [esp + 0x14], 0
je 0x1000b8f7
mov eax, str._PRIM_
jmp 0x1000b905
mov eax, str._BACK_
test edi, edi
jne 0x1000b905
mov eax, 0x1005e5e7
lea ecx, [esp + 0x34]
push ecx
push eax
push ebx
push ebp
push str.Unlock__d_:_lpdds_x_s__s_n
call fcn.10025250
add esp, 0x14
cmp ebp, 4
jne 0x1000b96e
test esi, esi
je 0x1000b96e
lea edx, [esp + 0x10]
push edx
call fcn.10009ac0
mov eax, dword [esp + 0x14]
mov edx, dword [eax]
mov dword [esp + 0x28], edx
mov esi, dword [eax + 4]
mov dword [esp + 0x2c], esi
mov ecx, dword [eax + 8]
mov dword [esp + 0x30], ecx
mov eax, dword [eax + 0xc]
add esp, 4
cmp dword [esp + 0x14], 0
lea ebp, [esp + 0x24]
mov dword [esp + 0x30], eax
mov dword [esp + 0x10], ebp
je 0x1000b96a
sub ecx, edx
jne 0x1000b96a
sub eax, esi
jne 0x1000b96a
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0x10]
mov ebp, 0x100
test dword [0x10087440], ebp
je 0x1000ba33
cmp dword [esp + 0x14], 0
jne 0x1000ba33
test edi, edi
jne 0x1000ba33
cmp ebx, dword [0x10084148]
jne 0x1000ba33
mov eax, dword [0x10083b24]
mov ecx, dword [0x10083ae0]
mov edx, dword [0x10083af4]
push eax
mov eax, dword [0x10083ad8]
push ecx
mov ecx, dword [0x10083adc]
push edx
push eax
push ecx
push ebx
push str.DEBUG:_fixing_lpdds_x_size__dx_d__surface_x_pitch_d_bpp_d_n
call fcn.10025250
mov ecx, dword [0x10083adc]
mov eax, dword [0x10083ae0]
inc ecx
shr ecx, 1
imul ecx, dword [0x10083b24]
shr ecx, 2
add esp, 0x1c
cmp ecx, eax
je 0x1000ba38
mov esi, dword [0x10083ad8]
add esi, 0xffffffff
je 0x1000ba2d
mov edi, esi
mov ebx, ecx
imul edi, ecx
neg ebx
lea ecx, [ecx]
mov ecx, dword [0x10083af4]
push eax
imul eax, esi
lea edx, [edi + ecx]
push edx
add eax, ecx
push eax
call fcn.10048960
mov eax, dword [0x10083ae0]
dec esi
add esp, 0xc
add edi, ebx
test esi, esi
jne 0x1000ba00
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
jmp 0x1000ba38
mov eax, dword [0x10083ae0]
test dword [0x10087434], ebp
je 0x1000bb4b
cmp dword [esp + 0x14], 0
jne 0x1000bb4b
test edi, edi
jne 0x1000bb4b
cmp ebx, dword [0x10084148]
jne 0x1000bb4b
mov ecx, dword [0x10083b24]
cmp ecx, 0x10
je 0x1000bade
cmp ecx, 0x20
jne 0x1000bb4b
xor edx, edx
cmp dword [0x10083ad8], edx
jbe 0x1000bb4b
mov esi, 0xff00ff
jmp 0x1000ba95
mov eax, dword [0x10083ae0]
imul eax, edx
add eax, dword [0x10083af4]
mov dword [eax], esi
mov ecx, dword [0x10083adc]
mov dword [eax + ecx*4 - 4], esi
test edx, edx
je 0x1000bab9
mov ecx, dword [0x10083ad8]
dec ecx
cmp edx, ecx
jne 0x1000bacf
xor ecx, ecx
cmp dword [0x10083adc], ecx
jbe 0x1000bacf
mov dword [eax + ecx*4], esi
inc ecx
cmp ecx, dword [0x10083adc]
jb 0x1000bac3
inc edx
cmp edx, dword [0x10083ad8]
jb 0x1000ba90
mov esi, dword [esp + 0x10]
jmp 0x1000bb4b
xor edx, edx
cmp dword [0x10083ad8], edx
jbe 0x1000bb4b
jmp 0x1000baf5
mov eax, dword [0x10083ae0]
imul eax, edx
add eax, dword [0x10083af4]
mov ecx, 0x7c1f
mov word [eax], cx
mov edi, dword [0x10083adc]
mov word [eax + edi*2 - 2], cx
test edx, edx
je 0x1000bb20
mov ecx, dword [0x10083ad8]
dec ecx
cmp edx, ecx
jne 0x1000bb42
xor ecx, ecx
cmp dword [0x10083adc], ecx
jbe 0x1000bb42
lea ebx, [ebx]
mov edi, 0x7c1f
mov word [eax + ecx*2], di
inc ecx
cmp ecx, dword [0x10083adc]
jb 0x1000bb30
inc edx
cmp edx, dword [0x10083ad8]
jb 0x1000baf0
push esi
push ebx
call dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov esi, eax
test edi, edi
je 0x1000bb87
test esi, esi
jne 0x1000bb87
cmp dword [esp + 0x90], 1
jne 0x1000bb6d
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
push 0
push 0
push 0
push eax
push ebx
push eax
push ebx
push str.Unlock
call fcn.100046e0
mov esi, eax
cmp esi, 0x88760248
jne 0x1000bb93
xor esi, esi
jmp 0x1000bbb4
test esi, esi
je 0x1000bbb4
push 0xfd6
push esi
call fcn.100240b0
add esp, 4
push eax
push esi
push str.Unlock_ERROR_res_x__s__at__d_n
call fcn.10025250
add esp, 0x10
test dword [0x1008742c], 0x400000
je 0x1000bbc2
xor esi, esi
test dword [0x1008743c], 0x1e000
je 0x1000bbdb
test edi, edi
jne 0x1000bbdb
push ebx
call fcn.10014cc0
add esp, 4
mov ecx, dword [esp + 0x88]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10047cbc
add esp, 0x7c
ret 0x10