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

Disassembly:
push 0xffffffffffffffff
push 0x4b6aba
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x84
push ebx
push esi
lea eax, [esp + 0x2c]
push edi
push eax
mov dword [esp + 0x1c], ecx
call fcn.00430b70
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
shl ecx, 8
shl eax, 8
lea edi, [esi + 1]
mov esi, dword [esp + 0xa0]
sub ecx, 0x100
sub eax, 0x100
mov ebx, dword [esi + 0x14]
inc edx
shl edx, 8
shl edi, 8
cmp eax, ebx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], edi
jg 0x4316a0
mov ebx, dword [esi + 4]
cmp edi, ebx
jl 0x4316a0
mov eax, dword [esi]
cmp edx, eax
jge 0x4311f8
cmp edx, dword [esi + 8]
jge 0x4311f8
cmp edx, dword [esi + 0x10]
jl 0x4316a0
cmp ecx, eax
jle 0x43120a
cmp ecx, dword [esi + 0x18]
jle 0x43120a
cmp ecx, dword [esi + 0x10]
jg 0x4316a0
mov edx, dword [esi + 0xc]
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [esi + 8]
push edx
push ecx
push ebx
push eax
call fcn.00430a00
mov edi, dword [esi + 0x1c]
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 4]
mov eax, dword [esi]
lea ebx, [esp + 0x68]
push ebx
push edi
push edx
push ecx
push eax
call fcn.00430a00
mov edi, dword [esi + 0x14]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x48]
add edi, 0x80
sar edi, 8
sar eax, 8
cmp edi, eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], edi
jle 0x431260
mov dword [esp + 0x14], eax
mov edi, eax
mov eax, dword [esp + 0xac]
mov ebx, dword [esp + 0x6c]
push ebp
mov ebp, dword [esp + 0x48]
mov ecx, dword [eax]
mov byte [esp + 0x12], 1
cmp ecx, 1
mov byte [esp + 0x13], 1
mov dword [esp + 0x14], ebp
jne 0x4313cf
mov eax, dword [eax + 4]
or ebp, 0xffffffff
cmp eax, ebp
jne 0x4312ec
push 8
call fcn.004aa6ea
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
mov dword [esp + 0x9c], 0
je 0x4312d6
mov ecx, dword [esp + 0xb0]
mov edx, dword [ecx + 0xc]
mov ecx, eax
push edx
call fcn.004ae105
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0x2c], eax
jmp 0x4313b6
mov edi, dword [esp + 0x1c]
xor eax, eax
mov dword [esp + 0x9c], ebp
mov dword [esp + 0x2c], eax
jmp 0x4313b6
xor edi, edi
mov dword [esp + 0x24], 0x4bcfb4
mov dword [esp + 0x28], edi
shl eax, 4
add eax, 0x4d0ab8
mov dword [esp + 0x9c], 1
push eax
push 1
push 1
push 8
push 8
call dword [sym.imp.GDI32.dll_CreateBitmap]
push eax
lea ecx, [esp + 0x28]
call fcn.004ae048
push 8
call fcn.004aa6ea
add esp, 4
cmp eax, edi
je 0x43133f
mov dword [eax + 4], edi
mov dword [eax], vtable.CBrush.0
mov edi, eax
mov ecx, dword [esp + 0x28]
lea eax, [esp + 0x24]
neg eax
sbb eax, eax
mov dword [esp + 0x2c], edi
and eax, ecx
push eax
call dword [sym.imp.GDI32.dll_CreatePatternBrush]
push eax
mov ecx, edi
call fcn.004ae048
lea ecx, [esp + 0x24]
call fcn.004ae09f
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0xb0]
mov ecx, dword [edi + 0x2c]
mov edx, dword [edx + 8]
push edx
mov eax, dword [ecx]
call dword [eax + 0x2c]
mov edx, dword [esp + 0xb0]
mov ecx, dword [edi + 0x2c]
mov edx, dword [edx + 0xc]
mov eax, dword [ecx]
push edx
call dword [eax + 0x30]
mov dword [esp + 0x24], vtable.CGdiObject.0
lea ecx, [esp + 0x24]
mov dword [esp + 0x9c], 2
call fcn.004ae09f
mov dword [esp + 0x9c], ebp
mov eax, dword [esp + 0x2c]
mov ecx, dword [edi + 0x2c]
push eax
call fcn.004ad7e9
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x30], eax
cmp dword [esp + 0x20], edi
jge 0x431605
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x60]
jmp 0x4313e7
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x5c]
cmp eax, edi
jne 0x431424
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
lea ecx, [esp + 0x44]
mov byte [esp + 0x12], 0
push ecx
mov ecx, dword [esi + 0xc]
push edx
mov edx, dword [esi + 8]
push eax
push ecx
push edx
call fcn.00430a00
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x14], eax
mov ebp, eax
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x431482
test ecx, ecx
jge 0x43143e
mov eax, dword [esp + 0x68]
add ebp, edx
add ecx, eax
js 0x431430
mov dword [esp + 0x14], ebp
mov al, byte [esp + 0x12]
test al, al
je 0x43145c
mov eax, dword [esp + 0x14]
mov edi, ebp
add eax, edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x64]
jmp 0x4314b6
mov eax, dword [esp + 0xa8]
lea edi, [ebp + 1]
test eax, eax
jne 0x43146e
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x14]
add eax, edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x64]
jmp 0x4314b6
mov al, byte [esp + 0x12]
mov edi, ebp
test al, al
jne 0x43149e
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x43149e
mov eax, dword [esp + 0x14]
lea edi, [eax + 1]
test ecx, ecx
jl 0x4314b2
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x64]
add ebp, edx
mov dword [esp + 0x14], ebp
jmp 0x4314b6
mov eax, dword [esp + 0x68]
mov ebp, dword [esp + 0x20]
add ecx, eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x60], ecx
cmp ebp, eax
jne 0x4314f2
mov edx, dword [esi + 0x14]
mov eax, dword [esi + 0x10]
lea ecx, [esp + 0x6c]
mov byte [esp + 0x13], 0
push ecx
mov ecx, dword [esi + 0x1c]
push edx
mov edx, dword [esi + 0x18]
push eax
push ecx
push edx
call fcn.00430a00
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x6c]
test eax, eax
jne 0x43156d
mov eax, dword [esp + 0x88]
test eax, eax
jge 0x43151d
mov edx, dword [esp + 0x78]
add ebx, edx
mov edx, dword [esp + 0x90]
add eax, edx
js 0x431505
mov dword [esp + 0x88], eax
mov al, byte [esp + 0x13]
test al, al
je 0x431541
mov edx, dword [esp + 0x78]
mov eax, ebx
add ebx, edx
mov edx, dword [esp + 0x8c]
add dword [esp + 0x88], edx
mov dword [esp + 0x70], ebx
jmp 0x4315b4
mov eax, dword [esp + 0xa8]
test eax, eax
lea eax, [ebx - 1]
jne 0x431553
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x78]
add ebx, edx
mov edx, dword [esp + 0x8c]
add dword [esp + 0x88], edx
mov dword [esp + 0x70], ebx
jmp 0x4315b4
mov dl, byte [esp + 0x13]
mov eax, ebx
test dl, dl
jne 0x431585
mov edx, dword [esp + 0xa8]
test edx, edx
je 0x431585
lea eax, [ebx - 1]
mov edx, dword [esp + 0x88]
test edx, edx
jl 0x4315a6
mov edx, dword [esp + 0x78]
add ebx, edx
mov edx, dword [esp + 0x8c]
add dword [esp + 0x88], edx
jmp 0x4315b4
add edx, dword [esp + 0x90]
mov dword [esp + 0x88], edx
cmp eax, edi
jl 0x4315ea
mov ecx, dword [esp + 0xac]
sub eax, edi
inc eax
mov edx, dword [ecx*4 + 0x4d0d0c]
push edx
push 1
push eax
mov eax, dword [esp + 0x28]
push ebp
push edi
mov ecx, dword [eax + 0x2c]
mov edx, dword [ecx + 4]
push edx
call dword [sym.imp.GDI32.dll_PatBlt]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x60]
jmp 0x4315ee
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x18]
inc ebp
cmp ebp, eax
mov dword [esp + 0x20], ebp
jl 0x4313e3
mov ebp, dword [esp + 0x14]
mov edi, eax
mov eax, dword [esp + 0xa8]
test eax, eax
jne 0x431673
mov al, byte [esp + 0x13]
test al, al
mov eax, dword [esp + 0x80]
jne 0x431625
cmp eax, ebx
jg 0x431625
mov eax, ebx
mov cl, byte [esp + 0x12]
mov esi, dword [esp + 0x58]
test cl, cl
jne 0x431639
cmp esi, ebp
jl 0x431639
mov edx, ebp
jmp 0x431643
mov cl, byte [esp + 0x12]
mov edx, esi
test cl, cl
jne 0x431649
cmp esi, ebp
mov ecx, ebp
jge 0x43164b
mov ecx, esi
mov esi, dword [esp + 0xac]
sub eax, edx
inc eax
mov esi, dword [esi*4 + 0x4d0d0c]
push esi
push 1
push eax
mov eax, dword [esp + 0x28]
push edi
push ecx
mov ecx, dword [eax + 0x2c]
mov edx, dword [ecx + 4]
push edx
call dword [sym.imp.GDI32.dll_PatBlt]
mov eax, dword [esp + 0xb0]
pop ebp
cmp dword [eax], 1
jne 0x4316a0
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
push ecx
mov ecx, dword [edx + 0x2c]
call fcn.004ad7e9
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4316a0
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov ecx, dword [esp + 0x90]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x90
ret 0x10