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

Disassembly:
push 0x5c
mov eax, 0x100c7580
call fcn.100c7256
mov edi, ecx
mov dword [ebp - 0x44], edi
cmp dword [edi + 0x16c], 0
je 0x1001c833
xor eax, eax
jmp 0x1001cf65
xor ebx, ebx
mov dword [ebp - 0x68], 1
push ebx
lea eax, [ebp - 0x68]
mov dword [ebp - 0x64], ebx
push eax
lea eax, [edi + 0x17c]
mov dword [ebp - 0x60], ebx
push eax
mov dword [ebp - 0x5c], ebx
call dword [sym.imp.gdiplus.dll_GdiplusStartup]
movzx edx, byte [0x100d55e6]
lea eax, [edi + 0x160]
neg edx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
lea esi, [edi + 0xbe8]
sbb edx, edx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
and edx, 0x400000
mov ebx, edi
mov ecx, edi
neg ebx
sbb ebx, ebx
and ebx, eax
neg ecx
lea eax, [edi + 0x164]
mov dword [ebp - 0x58], ebx
sbb ecx, ecx
and ecx, eax
lea eax, [edi + 0x58]
push ecx
mov ecx, edi
neg ecx
sbb ecx, ecx
and ecx, eax
push ecx
push ebx
push edx
mov ecx, esi
call fcn.10029f3e
test eax, eax
je 0x1001c9cf
neg esi
lea eax, [edi + 0xbec]
push ecx
sbb esi, esi
and esi, eax
push ecx
lea ecx, [edi + 0x14]
mov dword [edi + 0xac], esi
call fcn.1002c8dc
mov ebx, eax
test ebx, ebx
js 0x1001c9d4
lea ebx, [edi + 0xbe0]
mov ecx, ebx
call fcn.10024a18
mov ecx, dword [ebx]
test ecx, ecx
je 0x1001c921
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 4]
mov ecx, esi
call dword [0x100d6738]
call esi
mov eax, dword [edi + 0x18]
mov esi, dword [ebx]
mov dword [ebp - 0x54], eax
test eax, eax
je 0x1001c921
push esi
push eax
call dword [sym.imp.ole32.dll_RegisterDragDrop]
test eax, eax
js 0x1001c921
mov eax, dword [ebp - 0x54]
mov dword [esi + 8], edi
mov dword [esi + 0xc], eax
lea esi, [edi + 0x190]
mov ecx, esi
call fcn.100248da
mov ebx, eax
test ebx, ebx
js 0x1001c9d4
mov eax, dword [esi]
test eax, eax
jne 0x1001c943
mov ebx, 0x80004005
test ebx, ebx
js 0x1001c9d4
add eax, 0x78
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 4]
mov ecx, esi
call dword [0x100d6738]
call esi
lea esi, [edi + 0x190]
xor ebx, ebx
mov eax, dword [esi]
push 8
mov dword [eax + 0x5c], 0x10
mov esi, dword [esi]
pop eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [esi + 0x38]
mov dword [ebp - 0x1c], ebx
push eax
mov dword [ebp - 0x14], ebx
call dword [sym.imp.USER32.dll_CopyRect]
mov dword [esi + 0x48], ebx
test byte [0x100d4e80], 1
je 0x1001c9a4
mov edx, 0x10005dc8
call fcn.10027d7f
lea esi, [edi + 0x18c]
mov ecx, esi
call fcn.1002482b
test byte [0x100d4e80], 1
mov ebx, eax
je 0x1001c9c6
mov edx, 0x10005a18
call fcn.10027d7f
test ebx, ebx
js 0x1001c9d4
cmp dword [esi], 0
jne 0x1001c9d4
mov ebx, 0x80004005
and dword [ebp - 0x4c], 0
and dword [ebp - 4], 0
test ebx, ebx
js 0x1001cc27
mov eax, dword [edi + 0x18c]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 4]
mov ecx, esi
call dword [0x100d6738]
call esi
mov eax, dword [edi + 0x18c]
lea ecx, [ebp - 0x4c]
push ecx
push 0x10005e68
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
call dword [0x100d6738]
call dword [esi]
mov ebx, eax
test ebx, ebx
js 0x1001cc27
cmp dword [ebp - 0x4c], 0
jne 0x1001ca2b
mov ebx, 0x80004005
test ebx, ebx
js 0x1001cc27
mov edi, dword [edi + 0x190]
mov ecx, dword [ebp - 0x44]
push 0
mov eax, dword [edi]
push dword [ecx + 0x18]
mov esi, dword [eax + 0x58]
mov ecx, esi
call dword [0x100d6738]
mov ecx, edi
call esi
test eax, eax
jne 0x1001ca5b
mov ebx, 0x80004005
mov edi, dword [ebp - 0x44]
test ebx, ebx
js 0x1001cc27
push dword [ebp - 0x4c]
mov ecx, dword [edi + 0x190]
call fcn.10036a22
mov ebx, eax
test ebx, ebx
js 0x1001cc27
lea esi, [edi + 0x194]
mov ecx, esi
call fcn.100249af
mov ebx, eax
test ebx, ebx
js 0x1001cc27
mov eax, dword [esi]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 4]
mov ecx, esi
call dword [0x100d6738]
call esi
mov ecx, dword [ebp - 0x4c]
lea esi, [edi + 0x194]
mov eax, dword [esi]
test ecx, ecx
je 0x1001cc1d
xor ebx, ebx
cmp dword [eax + 0x34], ebx
jne 0x1001cc16
cmp dword [eax + 0x38], ebx
jne 0x1001cc16
cmp dword [eax + 0x30], ebx
jne 0x1001cc16
mov dword [eax + 0x34], edi
mov dword [eax + 0x30], ecx
mov dword [eax + 0x38], ebx
mov esi, dword [esi]
cmp dword [esi + 0x30], ebx
je 0x1001cc16
cmp dword [esi + 0x38], ebx
jne 0x1001cc16
push 0x100063d8
push dword [esi + 0x30]
mov ecx, esi
call fcn.1002646f
mov ebx, eax
test ebx, ebx
js 0x1001cc27
inc dword [esi + 0x38]
test ebx, ebx
js 0x1001cc27
lea esi, [edi + 0x184]
mov ecx, esi
mov dword [ebp - 0x50], esi
call fcn.100248da
mov ebx, eax
test ebx, ebx
js 0x1001cc27
mov eax, dword [esi]
test eax, eax
jne 0x1001cb3d
mov ebx, 0x80004005
test ebx, ebx
js 0x1001cc27
add eax, 0x78
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 4]
mov ecx, esi
call dword [0x100d6738]
call esi
mov edi, dword [ebp - 0x50]
push 8
mov eax, dword [edi]
mov dword [eax + 0x5c], 0xf
mov esi, dword [edi]
pop eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [esi + 0x38]
push eax
call dword [sym.imp.USER32.dll_CopyRect]
xor ecx, ecx
mov dword [esi + 0x48], ecx
mov eax, dword [edi]
push ecx
mov dword [eax + 0xbc], ecx
mov dword [eax + 0xc0], 0x30
mov edi, dword [edi]
mov eax, dword [edi]
mov esi, dword [eax + 0x34]
mov ecx, esi
call dword [0x100d6738]
mov ecx, edi
call esi
mov edi, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x44]
push 1
mov edi, dword [edi]
push dword [ecx + 0x18]
mov eax, dword [edi]
mov esi, dword [eax + 0x58]
mov ecx, esi
call dword [0x100d6738]
mov ecx, edi
call esi
test eax, eax
jne 0x1001cbd5
mov ebx, 0x80004005
test ebx, ebx
js 0x1001cc24
test byte [0x100d4e80], 1
je 0x1001cbec
mov edx, 0x10005e08
call fcn.10027d7f
mov edi, dword [ebp - 0x44]
lea esi, [edi + 0x180]
mov ecx, esi
call fcn.10024411
test byte [0x100d4e80], 1
mov ebx, eax
je 0x1001cc11
mov edx, 0x10005d08
call fcn.10027d7f
cmp dword [esi], 0
jne 0x1001cc27
mov ebx, 0x80004005
jmp 0x1001cc27
mov ebx, 0x80070057
jmp 0x1001cc27
mov edi, dword [ebp - 0x44]
and dword [ebp - 0x48], 0
mov byte [ebp - 4], 1
test ebx, ebx
js 0x1001cd84
mov eax, dword [edi + 0x180]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 4]
mov ecx, esi
call dword [0x100d6738]
call esi
mov eax, dword [edi + 0x180]
lea ecx, [ebp - 0x48]
push ecx
push 0x10005e68
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
call dword [0x100d6738]
call dword [esi]
mov ebx, eax
test ebx, ebx
js 0x1001cd84
cmp dword [ebp - 0x48], 0
jne 0x1001cc7e
mov ebx, 0x80004005
test ebx, ebx
js 0x1001cd84
push dword [ebp - 0x48]
mov ecx, dword [edi + 0x184]
call fcn.10036a22
mov ebx, eax
test ebx, ebx
js 0x1001cd84
lea esi, [edi + 0x188]
mov ecx, esi
call fcn.10024946
mov ebx, eax
test ebx, ebx
js 0x1001cd84
mov eax, dword [esi]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 4]
mov ecx, esi
call dword [0x100d6738]
call esi
mov ecx, dword [ebp - 0x48]
lea esi, [edi + 0x188]
mov eax, dword [esi]
test ecx, ecx
je 0x1001cd7f
xor ebx, ebx
cmp dword [eax + 0x34], ebx
jne 0x1001cd78
cmp dword [eax + 0x38], ebx
jne 0x1001cd78
cmp dword [eax + 0x30], ebx
jne 0x1001cd78
mov dword [eax + 0x34], edi
mov dword [eax + 0x30], ecx
mov dword [eax + 0x38], ebx
mov esi, dword [esi]
cmp dword [esi + 0x30], ebx
je 0x1001cd78
cmp dword [esi + 0x38], ebx
jne 0x1001cd78
push 0x100063e8
push dword [esi + 0x30]
mov ecx, esi
call fcn.1002646f
mov ebx, eax
test ebx, ebx
js 0x1001cd84
inc dword [esi + 0x38]
test ebx, ebx
js 0x1001cd84
push dword [ebp - 0x58]
lea eax, [ebp - 0x30]
push 1
push eax
push dword [edi + 0x18]
lea esi, [edi + 0x8dc]
mov ecx, esi
mov dword [ebp - 0x50], esi
call fcn.10035920
test eax, eax
jne 0x1001cd4d
mov ebx, 0x80004005
test ebx, ebx
js 0x1001cd84
cmp byte [esi + 0x2c0], 1
je 0x1001cd65
mov ecx, esi
call fcn.10035b8f
mov ebx, eax
jmp 0x1001cd67
xor ebx, ebx
test ebx, ebx
js 0x1001cd84
push ecx
push ecx
mov ecx, esi
call fcn.10035bfc
mov ebx, eax
jmp 0x1001cd8d
mov ebx, 0x80004005
jmp 0x1001cd84
mov ebx, 0x80070057
lea eax, [edi + 0x8dc]
mov dword [ebp - 0x50], eax
test ebx, ebx
js 0x1001ce64
push 8
pop eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [edi + 0x914]
mov dword [edi + 0x938], 0xe
push eax
mov dword [edi + 0x93c], 1
call dword [sym.imp.USER32.dll_CopyRect]
and dword [edi + 0x924], 0
mov eax, dword [edi + 0x8dc]
push 0
mov esi, dword [eax + 0x34]
mov ecx, esi
call dword [0x100d6738]
lea ecx, [edi + 0x8dc]
call esi
push dword [ebp - 0x58]
mov edi, dword [ebp - 0x44]
lea eax, [ebp - 0x30]
push ecx
push eax
push dword [edi + 0x18]
lea esi, [edi + 0x198]
mov ecx, esi
mov dword [ebp - 0x54], esi
call fcn.100328e9
test eax, eax
jne 0x1001ce12
mov ebx, 0x80004005
test ebx, ebx
js 0x1001ce6a
push 8
pop eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x40]
push eax
lea eax, [esi + 0x38]
mov dword [edi + 0x1f4], 0xd
push eax
mov dword [edi + 0x1f8], 1
call dword [sym.imp.USER32.dll_CopyRect]
and dword [esi + 0x48], 0
mov eax, dword [esi]
push 0
mov esi, dword [eax + 0x34]
mov ecx, esi
call dword [0x100d6738]
lea ecx, [edi + 0x198]
call esi
jmp 0x1001ce6d
lea esi, [edi + 0x198]
mov dword [ebp - 0x54], esi
test ebx, ebx
js 0x1001cf26
push dword [ebp - 0x50]
add edi, 0x38
mov eax, dword [edi]
mov esi, dword [eax + 0x24]
mov ecx, esi
call dword [0x100d6738]
mov ecx, edi
call esi
mov eax, dword [edi]
push dword [ebp - 0x54]
mov esi, dword [eax + 0x24]
mov ecx, esi
call dword [0x100d6738]
mov ecx, edi
call esi
mov eax, dword [edi]
mov ebx, dword [ebp - 0x44]
mov esi, dword [eax + 0x24]
mov ecx, esi
push dword [ebx + 0x184]
call dword [0x100d6738]
mov ecx, edi
call esi
mov eax, dword [edi]
push dword [ebx + 0x190]
mov esi, dword [eax + 0x24]
mov ecx, esi
call dword [0x100d6738]
mov ecx, edi
call esi
mov edi, ebx
xor esi, esi
mov dword [edi + 0x144], 1
cmp dword [edi + 0x40], esi
jle 0x1001cf00
push esi
lea ecx, [edi + 0x3c]
call fcn.10022931
mov eax, dword [eax]
test eax, eax
je 0x1001cefa
mov dword [eax + 0x64], 1
inc esi
cmp esi, dword [edi + 0x40]
jl 0x1001cee4
mov ecx, edi
call fcn.1001fa88
mov ebx, eax
test ebx, ebx
js 0x1001cf26
mov ecx, edi
call fcn.1001f9e0
mov ebx, eax
test ebx, ebx
js 0x1001cf26
mov dword [edi + 0x16c], 1
jmp 0x1001cf2d
mov ecx, edi
call fcn.1001cf6b
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x1001cf48
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x100d6738]
call esi
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x4c]
test eax, eax
je 0x1001cf63
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x100d6738]
call esi
mov eax, ebx
call fcn.100c7205
ret