Function at 0x43d120
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x481bf0
mov eax, dword fs:[0]
push eax
sub esp, 0x60
mov eax, dword [0x49c498]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
lea ecx, [ebp - 0x38]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x34], edi
lea eax, [edi + 0x24]
push eax
call fcn.0043ad30
mov esi, dword [ebp - 0x38]
test esi, esi
je 0x43d84e
mov eax, dword [esi]
lea ecx, [ebp - 0x30]
push ecx
push esi
call dword [eax + 0x40]
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.USER32.dll_CopyRect]
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0x6c]
sub ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x20]
push edx
push 0
push 0x26200a
push 0
push ecx
push eax
mov dword [ebp - 0x6c], 0
call dword [sym.imp.gdiplus.dll_GdipCreateBitmapFromScan0]
mov eax, dword [ebp - 0x6c]
push 8
mov dword [ebp - 0x58], eax
call dword [sym.imp.gdiplus.dll_GdipAlloc]
mov ebx, eax
mov dword [ebp - 0x54], ebx
test ebx, ebx
je 0x43d83f
lea eax, [ebp - 0x48]
mov dword [ebp - 0x48], 0
push eax
push dword [ebp - 0x58]
call dword [sym.imp.gdiplus.dll_GdipGetImageGraphicsContext]
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0x48]
push 4
push eax
mov dword [ebx], eax
call dword [sym.imp.gdiplus.dll_GdipSetSmoothingMode]
test eax, eax
je 0x43d1f5
mov dword [ebx + 4], eax
mov eax, dword [edi + 0x30]
mov ecx, dword [edi + 0x28]
mov ebx, dword [edi + 0x2c]
mov dword [ebp - 0x5c], eax
mov eax, dword [edi + 0x34]
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x28]
push eax
push 0
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x28], 0
call dword [sym.imp.gdiplus.dll_GdipCreatePath]
fld dword [0x48e4b0]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x43d260
mov eax, dword [edi + 0x28]
sub esp, 8
add eax, eax
fstp dword [esp + 4]
fld dword [0x48e4b4]
fstp dword [esp]
push eax
push eax
push 0
push 0
push dword [ebp - 0x28]
call dword [sym.imp.gdiplus.dll_GdipAddPathArcI]
test eax, eax
je 0x43d25b
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x48]
jmp 0x43d262
fstp st(0)
test ebx, ebx
je 0x43d26b
mov edx, dword [edi + 0x2c]
jmp 0x43d26d
xor edx, edx
test eax, eax
je 0x43d276
mov ecx, dword [edi + 0x28]
jmp 0x43d278
xor ecx, ecx
mov eax, dword [ebp - 0x18]
push 0
sub eax, edx
sub eax, dword [ebp - 0x20]
push eax
push 0
push ecx
push dword [ebp - 0x28]
call dword [sym.imp.gdiplus.dll_GdipAddPathLineI]
test eax, eax
je 0x43d296
mov dword [ebp - 0x24], eax
test ebx, ebx
je 0x43d2e5
mov eax, dword [edi + 0x2c]
mov ecx, 1
mov ebx, dword [ebp - 0x18]
sub ebx, dword [ebp - 0x20]
lea edi, [eax + eax]
call fcn.0043af30
fld dword [0x48e4b0]
sub esp, 8
sub ebx, edi
sub ebx, eax
fstp dword [esp + 4]
fld dword [0x48e4b8]
fstp dword [esp]
push edi
push edi
push 0
push ebx
push dword [ebp - 0x28]
call dword [sym.imp.gdiplus.dll_GdipAddPathArcI]
mov edi, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x50]
test eax, eax
je 0x43d2e5
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x4c], 0
je 0x43d2f3
mov eax, dword [edi + 0x34]
mov dword [ebp - 0x38], eax
jmp 0x43d2fa
mov dword [ebp - 0x38], 0
test ebx, ebx
je 0x43d306
mov ecx, dword [edi + 0x2c]
mov dword [ebp - 0x44], ecx
jmp 0x43d30d
mov dword [ebp - 0x44], 0
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x3c], eax
mov eax, dword [0x4a01c4]
test eax, eax
jne 0x43d36d
push str.sites.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
jne 0x43d349
call fcn.0040d070
test eax, eax
jne 0x43d349
mov dword [ebp - 0x50], 1
jmp 0x43d374
push str.scale
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4a01c4], eax
test eax, eax
jne 0x43d36d
mov ebx, dword [ebp - 0x18]
sub ebx, dword [ebp - 0x20]
mov dword [ebp - 0x50], 1
jmp 0x43d383
push 1
call eax
mov dword [ebp - 0x50], eax
mov ebx, dword [ebp - 0x18]
sub ebx, dword [ebp - 0x20]
mov eax, dword [0x4a01c4]
test eax, eax
jne 0x43d3be
push str.sites.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
jne 0x43d3a2
call fcn.0040d070
test eax, eax
jne 0x43d3a2
mov eax, 1
jmp 0x43d3c2
push str.scale
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4a01c4], eax
test eax, eax
jne 0x43d3be
mov eax, 1
jmp 0x43d3c2
push 1
call eax
mov ecx, dword [ebp - 0x64]
sub ebx, eax
sub ecx, dword [ebp - 0x38]
push ecx
mov ecx, dword [ebp - 0x3c]
sub ecx, dword [ebp - 0x50]
push ecx
push dword [ebp - 0x44]
push ebx
push dword [ebp - 0x28]
call dword [sym.imp.gdiplus.dll_GdipAddPathLineI]
test eax, eax
je 0x43d3e6
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x43d44f
mov eax, dword [ebp - 0x14]
mov ecx, 1
sub eax, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
sub ebx, dword [ebp - 0x20]
mov dword [ebp - 0x3c], eax
call fcn.0043af30
mov ecx, dword [edi + 0x34]
add ecx, ecx
sub ebx, ecx
mov ecx, 1
sub ebx, eax
mov eax, dword [edi + 0x34]
lea edi, [eax + eax]
call fcn.0043af30
fld dword [0x48e4b0]
sub esp, 8
mov ecx, dword [ebp - 0x3c]
sub ecx, edi
sub ecx, eax
fstp dword [esp + 4]
fldz
fstp dword [esp]
push edi
push edi
push ecx
push ebx
push dword [ebp - 0x28]
call dword [sym.imp.gdiplus.dll_GdipAddPathArcI]
mov ecx, dword [ebp - 0x4c]
test eax, eax
je 0x43d44f
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x5c], 0
mov edi, dword [ebp - 0x34]
je 0x43d460
mov eax, dword [edi + 0x30]
mov dword [ebp - 0x38], eax
jmp 0x43d467
mov dword [ebp - 0x38], 0
test ecx, ecx
je 0x43d473
mov ecx, dword [edi + 0x34]
mov dword [ebp - 0x44], ecx
jmp 0x43d47a
mov dword [ebp - 0x44], 0
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x1c]
mov dword [ebp - 0x3c], eax
mov eax, dword [0x4a01c4]
test eax, eax
jne 0x43d4d1
push str.sites.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
jne 0x43d4ad
call fcn.0040d070
test eax, eax
jne 0x43d4ad
mov dword [ebp - 0x4c], 1
jmp 0x43d4d8
push str.scale
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4a01c4], eax
test eax, eax
jne 0x43d4d1
mov ebx, dword [ebp - 0x14]
sub ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x4c], 1
jmp 0x43d4e7
push 1
call eax
mov dword [ebp - 0x4c], eax
mov ebx, dword [ebp - 0x14]
sub ebx, dword [ebp - 0x1c]
mov eax, dword [0x4a01c4]
test eax, eax
jne 0x43d51e
push str.sites.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
jne 0x43d504
call fcn.0040d070
test eax, eax
jne 0x43d504
lea ecx, [eax + 1]
jmp 0x43d524
push str.scale
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4a01c4], eax
test eax, eax
jne 0x43d51e
lea ecx, [eax + 1]
jmp 0x43d524
push 1
call eax
mov ecx, eax
mov edx, dword [ebp - 0x3c]
sub ebx, ecx
sub edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x44]
sub eax, dword [ebp - 0x20]
push edx
push dword [ebp - 0x38]
push ebx
push eax
push dword [ebp - 0x28]
call dword [sym.imp.gdiplus.dll_GdipAddPathLineI]
test eax, eax
je 0x43d54b
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x43d594
mov eax, dword [edi + 0x30]
mov ecx, 1
mov ebx, dword [ebp - 0x14]
sub ebx, dword [ebp - 0x1c]
lea edi, [eax + eax]
call fcn.0043af30
fld dword [0x48e4b0]
sub esp, 8
sub ebx, edi
sub ebx, eax
fst dword [esp + 4]
fstp dword [esp]
push edi
push edi
push ebx
push 0
push dword [ebp - 0x28]
call dword [sym.imp.gdiplus.dll_GdipAddPathArcI]
test eax, eax
je 0x43d591
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x5c]
cmp dword [ebp - 0x48], 0
mov ebx, dword [ebp - 0x34]
je 0x43d5a2
mov edx, dword [ebx + 0x28]
jmp 0x43d5a4
xor edx, edx
test eax, eax
je 0x43d5ad
mov ecx, dword [ebx + 0x30]
jmp 0x43d5af
xor ecx, ecx
mov eax, dword [ebp - 0x14]
push edx
sub eax, ecx
sub eax, dword [ebp - 0x1c]
push 0
push eax
push 0
push dword [ebp - 0x28]
call dword [sym.imp.gdiplus.dll_GdipAddPathLineI]
test eax, eax
je 0x43d5cd
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x44]
mov dword [ebp - 0x44], 0
push eax
push dword [ebx + 0x40]
call dword [sym.imp.gdiplus.dll_GdipCreateSolidFill]
push dword [ebp - 0x28]
mov eax, dword [ebp - 0x44]
mov edi, dword [ebp - 0x54]
push eax
mov dword [ebp - 0x64], eax
push dword [edi]
call dword [sym.imp.gdiplus.dll_GdipFillPath]
test eax, eax
je 0x43d5fd
mov dword [edi + 4], eax
cmp dword [ebx + 0x4c], 0
lea edi, [ebx + 0x4c]
mov dword [ebp - 0x34], edi
jne 0x43d7a5
mov ecx, dword [ebx + 0x38]
cmp dword [ecx - 0xc], 0
je 0x43d7a5
cmp dword [ebx + 0x3c], 0
je 0x43d667
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
sub eax, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x20]
push eax
push edx
call fcn.0043cb20
add esp, 8
mov dword [ebp - 0x40], 0
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x3c], 0
push dword [ebp - 0x68]
push eax
call fcn.0043da50
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
call fcn.0042abb0
mov dword [ebp - 4], 0
jmp 0x43d773
test ecx, ecx
jne 0x43d672
xor ebx, ebx
jmp 0x43d747
sub esp, 0x18
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
push ecx
lea ecx, [ebp - 0x40]
call fcn.004170a0
test eax, eax
jns 0x43d6a5
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x43d69e
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor ebx, ebx
jmp 0x43d747
mov edi, dword [ebp - 0x40]
lea eax, [ebp - 0x5c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x60], ebx
cmp ebx, 0xffffffff
jne 0x43d6de
call fcn.0040d170
test eax, eax
jns 0x43d6d8
test edi, edi
je 0x43d6d4
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor ebx, ebx
jmp 0x43d744
mov ebx, dword [ebp - 0x60]
mov dword [ebp - 0x38], ebx
push ebx
call dword [0x4861c8]
add esp, 4
mov dword [ebp - 0x48], eax
test eax, eax
je 0x43d6c9
push ebx
push eax
lea ecx, [ebp - 0x40]
call fcn.00417140
test edi, edi
je 0x43d706
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor edi, edi
push dword [ebp - 0x38]
xor ebx, ebx
push dword [ebp - 0x48]
call dword [sym.imp.SHLWAPI.dll_SHCreateMemStream]
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x43d72d
mov ecx, eax
call fcn.0043daf0
mov ebx, eax
mov eax, dword [ebp - 0x3c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
push dword [ebp - 0x48]
call dword [0x4861b4]
add esp, 4
test edi, edi
je 0x43d744
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [ebp - 0x34]
push dword [ebp - 0x68]
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x40], 0
push ebx
mov dword [ebp - 0x3c], 0
call fcn.0043da50
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
call fcn.0042abb0
mov dword [ebp - 4], 1
mov ebx, dword [ebp - 0x3c]
test ebx, ebx
je 0x43d79e
or edi, 0xffffffff
mov eax, edi
lock xadd dword [ebx + 4], eax
jne 0x43d79b
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
lock xadd dword [ebx + 8], edi
dec edi
jne 0x43d79b
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov edi, dword [ebp - 0x34]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [edi]
mov edi, dword [sym.imp.gdiplus.dll_GdipDeleteBrush]
test eax, eax
je 0x43d7e8
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x38], 0
push ecx
push 0
push dword [eax + 4]
call dword [sym.imp.gdiplus.dll_GdipCreateTexture]
push dword [ebp - 0x28]
mov eax, dword [ebp - 0x38]
mov ebx, dword [ebp - 0x54]
push eax
mov dword [ebp - 0x3c], eax
push dword [ebx]
call dword [sym.imp.gdiplus.dll_GdipFillPath]
test eax, eax
je 0x43d7e3
mov dword [ebx + 4], eax
push dword [ebp - 0x3c]
call edi
push dword [ebp - 0x64]
call edi
push dword [ebp - 0x28]
call dword [sym.imp.gdiplus.dll_GdipDeletePath]
lea eax, [ebp - 0x44]
mov dword [ebp - 0x44], 0
push eax
push dword [ebp - 0x68]
call dword [sym.imp.gdiplus.dll_GdipCreateFromHDC]
mov ebx, dword [ebp - 0x44]
push 4
push ebx
call dword [sym.imp.gdiplus.dll_GdipSetSmoothingMode]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x58]
push ebx
call dword [sym.imp.gdiplus.dll_GdipDrawImageI]
mov eax, dword [ebp - 0x54]
mov edi, dword [sym.imp.gdiplus.dll_GdipDeleteGraphics]
push dword [eax]
call edi
push dword [ebp - 0x54]
call dword [sym.imp.gdiplus.dll_GdipFree]
push ebx
call edi
push dword [ebp - 0x58]
call dword [sym.imp.gdiplus.dll_GdipDisposeImage]
mov eax, dword [esi]
push esi
call dword [eax + 8]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0047d9e4
mov esp, ebp
pop ebp
ret 0xc