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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4389d8
push eax
mov dword fs:[0], esp
sub esp, 0x30
push ebx
push ebp
push esi
mov esi, dword [esp + 0x54]
xor ebp, ebp
cmp esi, ebp
je 0x433e97
mov ebx, dword [esp + 0x4c]
cmp ebx, ebp
je 0x433e97
push edi
lea ecx, [esp + 0x18]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x50], ebp
call sub.MFC42.DLL_CDC::CDC
mov eax, dword [ebx + 4]
mov dword [esp + 0x48], ebp
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CDC::Attach
lea ecx, [esp + 0x28]
push ecx
push 0x18
push esi
call dword [sym.imp.GDI32.dll_GetObjectA]
mov eax, dword [esp + 0x60]
cmp eax, ebp
je 0x4339c4
mov ecx, dword [eax]
mov edi, dword [eax + 8]
mov edx, dword [eax + 4]
mov esi, dword [eax + 0xc]
sub edi, ecx
sub esi, edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0x60], esi
mov ebp, edx
jmp 0x4339d2
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x60], edx
mov esi, edx
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x1c]
push eax
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x5c]
cmp eax, 5
jne 0x433ba4
mov eax, 0x55555556
imul edi
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x55555556
mov edi, edx
imul esi
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ebp, edx
mov edx, dword [esp + 0x54]
mov ecx, dword [edx + 4]
mov dword [esp + 0x60], ecx
jmp 0x433a28
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x60]
mov esi, dword [edx + 0xc]
mov dword [esp + 0x5c], ebp
mov eax, esi
sub eax, ecx
cmp ebp, eax
jl 0x433a3b
mov dword [esp + 0x5c], eax
mov eax, dword [edx + 4]
cmp ecx, eax
jne 0x433a48
mov eax, dword [esp + 0x50]
jmp 0x433a76
add eax, ebp
cmp ecx, eax
jne 0x433a66
cmp dword [esp + 0x5c], ebp
jge 0x433a66
mov esi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x50]
lea eax, [ebp + ebp*2]
sub eax, esi
add eax, ecx
jmp 0x433a76
sub esi, ebp
cmp ecx, esi
mov ecx, dword [esp + 0x50]
lea eax, [ecx + ebp]
jl 0x433a76
lea eax, [ecx + ebp*2]
mov esi, dword [edx]
mov ecx, dword [edx + 8]
sub ecx, esi
mov dword [esp + 0x58], eax
cmp ecx, edi
jl 0x433a87
mov ecx, edi
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x18]
neg eax
sbb eax, eax
push 0xcc0020
and eax, edx
mov edx, dword [esp + 0x5c]
push edx
mov edx, dword [esp + 0x18]
push edx
push eax
mov eax, dword [esp + 0x70]
push ebp
push ecx
mov ecx, dword [ebx + 4]
push eax
push esi
push ecx
call dword [sym.imp.GDI32.dll_BitBlt]
mov edx, dword [esp + 0x54]
add esi, edi
mov ecx, dword [edx + 8]
mov eax, ecx
sub eax, edi
cmp esi, eax
jge 0x433b27
sub ecx, esi
sub ecx, edi
cmp ecx, edi
mov edx, ecx
jl 0x433ad4
mov edx, edi
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x18]
neg eax
sbb eax, eax
push 0xcc0020
and eax, ecx
mov ecx, dword [esp + 0x5c]
push ecx
mov ecx, dword [esp + 0x18]
add ecx, edi
push ecx
push eax
mov eax, dword [ebx + 4]
push ebp
push edx
mov edx, dword [esp + 0x78]
push edx
push esi
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
mov ecx, dword [esp + 0x54]
mov ecx, dword [ecx + 8]
mov eax, ecx
sub eax, esi
sub eax, edi
cmp eax, edi
jl 0x433b19
mov eax, edi
mov edx, ecx
add esi, eax
sub edx, edi
cmp esi, edx
jl 0x433ac8
mov edx, dword [esp + 0x54]
mov eax, dword [edx + 8]
mov ecx, dword [edx]
mov edx, eax
sub edx, ecx
cmp edx, edi
jle 0x433b84
lea edx, [edi + edi]
push 0xcc0020
sub edx, eax
add ecx, edx
xor edx, edx
test ecx, ecx
setle dl
sub eax, esi
dec edx
mov dword [esp + 0x68], eax
lea eax, [esp + 0x1c]
and ecx, edx
mov edx, dword [esp + 0x20]
neg eax
sbb eax, eax
lea ecx, [ecx + edi*2]
and eax, edx
mov edx, dword [esp + 0x5c]
push edx
mov edx, dword [esp + 0x18]
add ecx, edx
mov edx, dword [esp + 0x6c]
push ecx
mov ecx, dword [ebx + 4]
push eax
mov eax, dword [esp + 0x70]
push ebp
push edx
push eax
push esi
push ecx
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
add eax, edx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x60], eax
cmp eax, dword [edx + 0xc]
jl 0x433a20
jmp 0x433e6c
cmp eax, 4
jne 0x433d19
mov eax, 0x55555556
mov ebp, dword [esp + 0x54]
imul edi
mov ecx, dword [ebp + 4]
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [esp + 0x58], ecx
mov edi, edx
jmp 0x433bce
mov esi, dword [esp + 0x60]
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x58]
sub eax, edx
mov dword [esp + 0x5c], esi
cmp esi, eax
jl 0x433be3
mov dword [esp + 0x5c], eax
mov esi, dword [ebp]
mov ecx, dword [ebp + 8]
sub ecx, esi
cmp ecx, edi
jl 0x433bf1
mov ecx, edi
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x18]
neg eax
sbb eax, eax
push 0xcc0020
and eax, edx
mov edx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x18]
push edx
mov edx, dword [ebx + 4]
push eax
mov eax, dword [esp + 0x6c]
push eax
push ecx
mov ecx, dword [esp + 0x70]
push ecx
push esi
push edx
call dword [sym.imp.GDI32.dll_BitBlt]
mov ecx, dword [ebp + 8]
add esi, edi
mov eax, ecx
sub eax, edi
cmp esi, eax
jge 0x433c94
mov edx, dword [esp + 0x10]
lea eax, [edi + edx]
mov dword [esp + 0x64], eax
sub ecx, esi
sub ecx, edi
cmp ecx, edi
jl 0x433c47
mov ecx, edi
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x18]
neg eax
sbb eax, eax
push 0xcc0020
and eax, edx
mov edx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x6c]
push edx
mov edx, dword [ebx + 4]
push eax
mov eax, dword [esp + 0x6c]
push eax
push ecx
mov ecx, dword [esp + 0x70]
push ecx
push esi
push edx
call dword [sym.imp.GDI32.dll_BitBlt]
mov ecx, dword [ebp + 8]
mov eax, ecx
sub eax, esi
sub eax, edi
cmp eax, edi
jl 0x433c8a
mov eax, edi
add esi, eax
mov eax, ecx
sub eax, edi
cmp esi, eax
jl 0x433c3d
mov eax, dword [ebp + 8]
mov ecx, dword [ebp]
mov edx, eax
sub edx, ecx
cmp edx, edi
jle 0x433cfb
lea ebp, [edi + edi]
push 0xcc0020
mov edx, ebp
sub edx, eax
add ecx, edx
xor edx, edx
test ecx, ecx
setle dl
sub eax, esi
dec edx
mov dword [esp + 0x68], eax
lea eax, [esp + 0x1c]
and ecx, edx
mov edx, dword [esp + 0x20]
neg eax
sbb eax, eax
add ebp, ecx
and eax, edx
mov edx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x6c]
add ebp, edx
mov edx, dword [esp + 0x60]
push ebp
push eax
mov eax, dword [esp + 0x6c]
push eax
mov eax, dword [ebx + 4]
push ecx
push edx
push esi
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
mov ebp, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x60]
mov ecx, dword [ebp + 0xc]
add eax, edx
cmp eax, ecx
mov dword [esp + 0x58], eax
jl 0x433bca
jmp 0x433e6c
cmp eax, 3
jne 0x433daf
mov ebp, dword [esp + 0x54]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x54], ecx
jmp 0x433d33
mov esi, dword [esp + 0x60]
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x54]
sub eax, edx
mov dword [esp + 0x58], esi
cmp esi, eax
jl 0x433d48
mov dword [esp + 0x58], eax
mov esi, dword [ebp]
mov eax, dword [ebp + 8]
sub eax, esi
mov ecx, edi
cmp edi, eax
jl 0x433d58
mov ecx, eax
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x18]
neg eax
sbb eax, eax
push 0xcc0020
and eax, edx
mov edx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x18]
push edx
mov edx, dword [ebx + 4]
push eax
mov eax, dword [esp + 0x68]
push eax
push ecx
mov ecx, dword [esp + 0x6c]
push ecx
push esi
push edx
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [ebp + 8]
add esi, edi
cmp esi, eax
jl 0x433d4e
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x60]
mov ecx, dword [ebp + 0xc]
add eax, edx
cmp eax, ecx
mov dword [esp + 0x54], eax
jl 0x433d2f
jmp 0x433e6c
dec eax
je 0x433dff
mov eax, dword [esp + 0x54]
push 0xcc0020
push esi
mov esi, dword [esp + 0x58]
mov edx, dword [eax]
mov ebp, dword [eax + 4]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x5c], edx
mov edx, dword [eax + 8]
mov eax, dword [esp + 0x5c]
sub edx, eax
lea eax, [esp + 0x20]
sub ecx, ebp
push edi
neg eax
sbb eax, eax
push esi
and eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x20]
push esi
push eax
mov eax, dword [esp + 0x6c]
push ecx
mov ecx, dword [ebx + 4]
push edx
push ebp
push eax
push ecx
call dword [sym.imp.GDI32.dll_StretchBlt]
jmp 0x433e6c
mov eax, dword [esp + 0x64]
cmp eax, 0xffffffff
mov eax, dword [esp + 0x54]
mov esi, dword [eax + 4]
mov ecx, dword [eax + 0xc]
jne 0x433e3d
mov edi, dword [eax]
mov edx, dword [eax + 8]
lea eax, [esp + 0x18]
sub ecx, esi
sub edx, edi
push 0xcc0020
neg eax
sbb eax, eax
push ebp
and eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x18]
push ebp
push eax
push ecx
push edx
mov edx, dword [ebx + 4]
push esi
push edi
push edx
jmp 0x433e66
mov edi, dword [eax]
mov edx, dword [eax + 8]
lea eax, [esp + 0x18]
sub ecx, esi
sub edx, edi
push 0xcc0020
neg eax
sbb eax, eax
push ebp
and eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x18]
push ebp
push eax
mov eax, dword [ebx + 4]
push ecx
push edx
push esi
push edi
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
push ecx
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CDC::DeleteDC
lea ecx, [esp + 0x18]
mov dword [esp + 0x48], 0xffffffff
call fcn.00422258
pop edi
mov ecx, dword [esp + 0x3c]
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x3c
ret