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

Disassembly:
push 0xffffffffffffffff
push 0x5e1a4a
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
mov eax, dword [0x680f10]
xor eax, esp
mov dword [esp + 0x58], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x680f10]
xor eax, esp
push eax
lea eax, [esp + 0x70]
mov dword fs:[0], eax
mov eax, dword [esp + 0x88]
mov edi, ecx
xor ebx, ebx
mov dword [esp + 0x14], ebx
mov ecx, dword [edi + 0x10]
mov edx, dword [ecx]
mov dword [esp + 0x1c], eax
mov eax, dword [edx + 0x20]
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x50]
call eax
mov ecx, dword [edi + 0xc]
mov edx, dword [ecx]
mov esi, eax
mov eax, dword [edx]
call eax
cmp dword [edi + 0x174], ebx
jne 0x5569db
mov ecx, dword [edi + 0x10]
mov edx, dword [ecx]
mov eax, dword [edx]
push ebx
call eax
mov dword [edi + 0x174], eax
push ebx
push esi
push 0x18
call fcn.004b5290
add esp, 0xc
cmp eax, ebx
je 0x5569f8
mov ecx, eax
call fcn.004b9d40
mov dword [esp + 0x18], eax
jmp 0x5569fc
mov dword [esp + 0x18], ebx
push ebx
push esi
push 0x2c
call fcn.004b5290
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x556a4f
push 9
push str.ExtGState
lea ecx, [esp + 0x48]
mov dword [esp + 0x60], 0xf
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x4c], bl
call fcn.00402f00
lea ecx, [esp + 0x40]
push ecx
mov ebx, 1
mov ecx, ebp
mov dword [esp + 0x7c], 0
mov dword [esp + 0x18], ebx
call fcn.004b7280
mov ebp, eax
jmp 0x556a51
xor ebp, ebp
push str.Type
lea ecx, [esp + 0x24]
call fcn.0048cd50
mov ecx, dword [esp + 0x18]
push ebp
lea edx, [esp + 0x24]
push edx
mov dword [esp + 0x80], 1
call fcn.004ba020
mov ebp, 0x10
cmp dword [esp + 0x3c], ebp
mov dword [esp + 0x20], 0x5f1558
jb 0x556a99
mov eax, dword [esp + 0x28]
push eax
call fcn.004274fc
add esp, 4
test bl, 1
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], 0
mov byte [esp + 0x28], 0
mov dword [esp + 0x20], 0x5f13d0
mov dword [esp + 0x78], 0xffffffff
je 0x556add
and ebx, 0xfffffffe
cmp dword [esp + 0x58], ebp
mov dword [esp + 0x14], ebx
jb 0x556add
mov ecx, dword [esp + 0x44]
push ecx
call fcn.004274fc
add esp, 4
push 0
push esi
push 0x2c
call fcn.004b5290
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x556b34
push 0xa
push str.Difference
lea ecx, [esp + 0x48]
mov dword [esp + 0x60], 0xf
mov dword [esp + 0x5c], 0
mov byte [esp + 0x4c], 0
call fcn.00402f00
lea edx, [esp + 0x40]
or ebx, 2
push edx
mov ecx, ebp
mov dword [esp + 0x7c], 2
mov dword [esp + 0x18], ebx
call fcn.004b7280
mov ebp, eax
jmp 0x556b36
xor ebp, ebp
push 0x6377bc
lea ecx, [esp + 0x24]
call fcn.0048cd50
push ebp
mov ebp, dword [esp + 0x1c]
lea eax, [esp + 0x24]
push eax
mov ecx, ebp
mov dword [esp + 0x80], 3
call fcn.004ba020
cmp dword [esp + 0x3c], 0x10
mov dword [esp + 0x20], 0x5f1558
jb 0x556b7c
mov ecx, dword [esp + 0x28]
push ecx
call fcn.004274fc
add esp, 4
test bl, 2
mov dword [esp + 0x3c], 0xf
mov dword [esp + 0x38], 0
mov byte [esp + 0x28], 0
mov dword [esp + 0x20], 0x5f13d0
mov dword [esp + 0x78], 0xffffffff
je 0x556bba
cmp dword [esp + 0x58], 0x10
jb 0x556bba
mov edx, dword [esp + 0x44]
push edx
call fcn.004274fc
add esp, 4
mov eax, dword [edi + 0x178]
push eax
lea edx, [esp + 0x60]
lea ecx, [eax + 1]
push str.GS_u
push edx
mov dword [edi + 0x178], ecx
call fcn.005b8727
push 0
push esi
push 0x10
call fcn.004b5290
add esp, 0x18
test eax, eax
je 0x556bf6
push ebp
mov ecx, eax
call fcn.004b5410
mov ebx, eax
jmp 0x556bf8
xor ebx, ebx
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x24]
call fcn.0048cd50
push ebx
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [edi + 0x174]
mov dword [esp + 0x80], 4
call fcn.004ba020
cmp dword [esp + 0x3c], 0x10
mov dword [esp + 0x78], 0xffffffff
mov dword [esp + 0x20], 0x5f1558
jb 0x556c46
mov edx, dword [esp + 0x28]
push edx
call fcn.004274fc
add esp, 4
lea eax, [esp + 0x5c]
push eax
mov ecx, edi
call fcn.00552250
push 0xffffff
mov ecx, edi
call fcn.00551200
mov eax, dword [edi + 0x2c]
lea ebp, [edi + 0x2c]
xor ebx, ebx
cmp eax, ebx
je 0x556d1e
cmp dword [ebp + 0x14], ebx
jne 0x556d1e
push eax
call dword [sym.imp.GDI32.dll_SaveDC]
mov ecx, dword [ebp]
push ecx
mov dword [ebp + 0x14], eax
call dword [sym.imp.GDI32.dll_BeginPath]
test eax, eax
jne 0x556ca2
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp]
push edx
push eax
call dword [sym.imp.GDI32.dll_RestoreDC]
mov dword [ebp + 0x14], ebx
jmp 0x556d1e
mov esi, dword [esp + 0x1c]
cmp dword [esi + 8], ebx
jbe 0x556cec
add esi, 0x28
mov edi, edi
mov eax, dword [ebp]
test eax, eax
je 0x556d49
cmp dword [ebp + 0x14], 0
je 0x556d49
mov ecx, dword [esi + 4]
mov edx, dword [esi]
push ecx
mov ecx, dword [esi - 4]
push edx
mov edx, dword [esi - 8]
push ecx
push edx
push eax
call fcn.00523a30
mov eax, dword [esp + 0x30]
add ebx, 1
add esp, 0x14
add esi, 0x10
cmp ebx, dword [eax + 8]
jb 0x556cb0
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x1c]
push eax
mov ecx, ebp
call fcn.0054f980
test al, al
je 0x556d1e
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push 0x22
push ecx
push edx
push eax
mov ecx, edi
call fcn.00554ab0
mov ecx, dword [edi + 0xc]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.0044abb9
add esp, 0x68
ret 0xc
push 0
push 0
call fcn.0044db3a
int3