Function at 0x100472a0
Capabilities:
Access peb ldr_data
Get process heap flags

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101bcc59
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x101d32d0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x18], edi
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [edi], eax
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov eax, dword [ebx + 4]
mov dword [edi + 8], eax
mov eax, dword [ebx + 8]
mov dword [edi + 0xc], eax
mov eax, dword [ebx + 0xc]
mov dword [edi + 0x10], eax
lea eax, [edi + 0x18]
mov dword [eax], 0
mov dword [ebp - 4], 0
mov dword [edi + 0x1c], 0
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 0
push eax
push 0x10012ab4
push 1
push 0
mov byte [ebp - 4], 3
push 0x10012d64
mov dword [edi + 0x30], 0
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov ecx, ebx
call fcn.10047150
mov dword [edi + 0x14], eax
cmp ax, 5
jb 0x1004734e
push 0x80070057
call dword [sym.imp.PhotoBase.dll_void___stdcall_Base::Throw_long_int_]
mov ebx, dword [ebp + 0x10]
mov eax, dword [eax*4 + 0x10012a60]
mov dword [ebp - 0x14], eax
mov eax, dword [ebx]
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [ebx + 8]
cdq
mov ebx, eax
sub ebx, ecx
sbb edx, esi
cmp edx, 0xffffffff
jl 0x10047520
jg 0x10047383
cmp ebx, 0x80000000
jb 0x10047520
test edx, edx
jg 0x10047520
jl 0x10047399
cmp ebx, 0x7fffffff
ja 0x10047520
imul ebx, dword [ebp - 0x14]
mov esi, dword [ebp + 0x10]
mov dword [edi + 0x20], ebx
mov eax, dword [esi + 0xc]
cdq
mov ecx, eax
mov dword [ebp - 0x14], edx
mov eax, dword [esi + 4]
cdq
sub ecx, eax
mov eax, dword [ebp - 0x14]
sbb eax, edx
cmp eax, 0xffffffff
jl 0x10047520
jg 0x100473ce
cmp ecx, 0x80000000
jb 0x10047520
test eax, eax
jg 0x10047520
jl 0x100473e4
cmp ecx, 0x7fffffff
ja 0x10047520
imul ebx, ecx
push 1
push ebx
call dword [sym.imp.PhotoBase.dll_void____cdecl_BasePrivate::New_unsigned_int__bool_]
mov ecx, dword [edi + 0x28]
mov esi, eax
add esp, 8
cmp ecx, esi
je 0x1004740d
test ecx, ecx
je 0x1004740a
push ecx
call dword [sym.imp.PhotoBase.dll_void___cdecl_BasePrivate::Delete_void__]
add esp, 4
mov dword [edi + 0x28], esi
push dword [ebp + 0xc]
lea ecx, [ebp - 0x10]
call fcn.10046fe0
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
mov esi, dword [ecx + 0x34]
lea ecx, [ebp - 0x14]
push ecx
push eax
mov ecx, esi
call dword [0x101d83dc]
call esi
test eax, eax
jns 0x1004743e
push eax
call dword [sym.imp.PhotoBase.dll_void___stdcall_Base::Throw_long_int_]
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp + 0x10]
add eax, 7
shr eax, 3
mov dword [ebp - 0x14], eax
mov eax, dword [ebx + 8]
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [ebx]
cdq
sub ecx, eax
sbb esi, edx
cmp esi, 0xffffffff
jl 0x10047520
jg 0x10047473
cmp ecx, 0x80000000
jb 0x10047520
test esi, esi
jg 0x10047520
jl 0x10047489
cmp ecx, 0x7fffffff
ja 0x10047520
imul ecx, dword [ebp - 0x14]
add ecx, 3
and ecx, 0xfffffffc
mov dword [edi + 0x24], ecx
mov eax, dword [ebx + 0xc]
cdq
mov esi, eax
mov ebx, edx
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
cdq
sub esi, eax
sbb ebx, edx
cmp ebx, 0xffffffff
jl 0x10047520
jg 0x100474b8
cmp esi, 0x80000000
jb 0x10047520
test ebx, ebx
jg 0x10047520
jl 0x100474c6
cmp esi, 0x7fffffff
ja 0x10047520
imul ecx, esi
push 1
push ecx
call dword [sym.imp.PhotoBase.dll_void____cdecl_BasePrivate::New_unsigned_int__bool_]
mov ecx, dword [edi + 0x2c]
mov esi, eax
add esp, 8
cmp ecx, esi
je 0x100474ef
test ecx, ecx
je 0x100474ec
push ecx
call dword [sym.imp.PhotoBase.dll_void___cdecl_BasePrivate::Delete_void__]
add esp, 4
mov dword [edi + 0x2c], esi
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x1004750a
mov ecx, dword [eax]
push eax
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x101d83dc]
call esi
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
call fcn.1003ecc0
int3