Function at 0x46c360
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x632c1b
mov eax, dword fs:[0]
push eax
sub esp, 0x2c8
mov eax, dword [0x6ce488]
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 ebx, dword [ebp + 8]
lea ecx, [ebp - 0x94]
push 0x6cf1e8
mov dword [ebp - 0x2c8], ebx
call fcn.00420830
mov dword [ebp - 4], 0
mov eax, dword [0x6cf270]
cmp word [eax], 0
jne 0x46c46f
test ebx, ebx
je 0x46c3cd
push ebx
lea ecx, [ebp - 0x94]
call fcn.004208f0
push 0
push 0x80
push 3
push 0
push 1
push accept
push dword [ebp - 0x94]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x46c41b
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x90]
mov eax, dword [ebp - 0x94]
cmp eax, ecx
je 0x46c5b7
push eax
call fcn.006140b6
add esp, 4
jmp 0x46c5b7
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
test esi, esi
je 0x46c3f2
push esi
mov dword [ebp - 0x2d0], 0
call fcn.005c386a
add esp, 4
mov edi, eax
lea eax, [ebp - 0x2d0]
push 0
push eax
push esi
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x2d0], esi
je 0x46c58f
push edi
call fcn.005c3e37
add esp, 4
jmp 0x46c3f2
push eax
lea ecx, [ebp - 0x94]
call fcn.004208f0
cmp byte [0x6cf178], 0
je 0x46c48c
mov ebx, dword [0x6d922c]
jmp 0x46c4fb
mov esi, dword [ebp - 0x94]
push 0x340
call fcn.005c3873
add esp, 4
mov edi, eax
mov ecx, edi
mov dword [ebp - 0x2d4], edi
push 2
push 0
push esi
mov dword [edi], 0
mov dword [edi + 4], 0xffffffff
mov dword [edi + 0x134], 0xffffffff
call fcn.004365f0
mov dword [0x6d9250], eax
test eax, eax
je 0x46c4e6
push 0x340
push edi
call fcn.005c385c
add esp, 8
jmp 0x46c3f2
push 8
call fcn.005c3873
mov ebx, eax
add esp, 4
mov dword [ebx], 1
mov dword [ebx + 4], edi
test ebx, ebx
je 0x46c3f2
mov edx, dword [ebp - 0x2c8]
lea eax, [ebp - 0x2c4]
push eax
lea eax, [ebp - 0x2cc]
push eax
push ecx
mov ecx, ebx
call fcn.00436d10
add esp, 0xc
test eax, eax
jne 0x46c3f2
mov esi, dword [ebp - 0x98]
test esi, esi
je 0x46c3f2
push esi
call fcn.005c386a
mov edx, dword [ebp - 0x2cc]
mov edi, eax
push esi
push edi
mov ecx, ebx
call fcn.00436ec0
add esp, 0xc
test eax, eax
je 0x46c57f
cmp eax, 0x600
je 0x46c57f
push edi
call fcn.005c3e37
add esp, 4
cmp byte [0x6cf178], 0
jne 0x46c3f2
mov ecx, ebx
call fcn.00437010
jmp 0x46c3f2
cmp byte [0x6cf178], 0
jne 0x46c58f
mov ecx, ebx
call fcn.00437010
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x90]
mov eax, dword [ebp - 0x94]
cmp eax, ecx
je 0x46c5af
push eax
call fcn.006140b6
add esp, 4
test edi, edi
jne 0x46c63c
push 0
push 0x80
push 3
push 0
push 1
push accept
push dword [ebp - 0x2c8]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x46c635
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
test esi, esi
je 0x46c635
push esi
mov dword [ebp - 0x2cc], 0
call fcn.005c386a
add esp, 4
mov edi, eax
lea eax, [ebp - 0x2cc]
push 0
push eax
push esi
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x2cc], esi
je 0x46c631
push edi
call fcn.005c3e37
add esp, 4
xor eax, eax
jmp 0x46c6d9
test edi, edi
jne 0x46c63c
xor eax, eax
jmp 0x46c6d9
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push esi
push edi
push eax
call fcn.005fe040
add esp, 0xc
mov dword [ebp - 0x2c8], 0
lea eax, [ebp - 0x2c8]
push eax
push 1
push ebx
call dword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
mov eax, dword [ebp - 0x2c8]
push 0x10
mov dword [ebp - 0x2d4], eax
call dword [sym.imp.gdiplus.dll_GdipAlloc]
mov esi, eax
test esi, esi
je 0x46c6b7
lea eax, [esi + 4]
mov dword [esi], vtable.Gdiplus::Image.0
push eax
push dword [ebp - 0x2d4]
mov dword [eax], 0
call dword [sym.imp.gdiplus.dll_GdipLoadImageFromStream]
mov dword [esi + 8], eax
mov dword [esi + 8], 0
test eax, eax
je 0x46c6cc
mov eax, dword [ebp - 0x2c8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
xor esi, esi
push 1
push edi
call fcn.005c385c
add esp, 8
mov eax, esi
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.005c358e
mov esp, ebp
pop ebp
ret 4