Function at 0x4010d0
Capabilities:
Extract resource via kernel32 functions
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
push 0x40b070
push 0x270f
push 0
mov byte [ebp - 1], 1
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
test esi, esi
je 0x40133b
push esi
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x40133b
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov ebx, eax
test ebx, ebx
je 0x40133b
push esi
push 0
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push 0x40e0d8
push 0x104
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push 0x40e0d8
push 0
push 0x40b06c
push 0x40e0d8
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
push 0x40b068
push 0x40e0d8
call fcn.00402407
mov esi, eax
add esp, 8
test esi, esi
je 0x40133b
push esi
push edi
push 1
push ebx
call fcn.0040229d
add esp, 0x10
cmp eax, edi
jne 0x40117e
xor bl, bl
jmp 0x401181
mov bl, byte [ebp - 1]
push esi
call fcn.00402220
add esp, 4
test bl, bl
jne 0x40133b
push 0x40e0bc
push 0x40923c
xor ebx, ebx
push 1
push ebx
push 0x40929c
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov eax, dword [0x40e0bc]
cmp eax, ebx
je 0x40133b
mov ecx, dword [eax]
push 0x40e0c0
push 0x40928c
push eax
call dword [ecx]
mov eax, dword [0x40e0bc]
push 0x40e0c4
push 0x40927c
push eax
mov edx, dword [eax]
call dword [edx]
mov eax, dword [0x40e0bc]
push 0x40e0c8
push 0x40924c
push eax
mov ecx, dword [eax]
call dword [ecx]
mov eax, dword [0x40e0bc]
push 0x40e0cc
push 0x40925c
push eax
mov edx, dword [eax]
call dword [edx]
mov eax, dword [0x40e0bc]
push 0x40e0d0
push 0x40926c
push eax
mov ecx, dword [eax]
call dword [ecx]
push 0x40e0d8
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
inc esi
lea eax, [esi + esi]
add eax, 3
and al, 0xfc
call fcn.004024a0
mov edi, esp
push esi
push edi
push 0xffffffffffffffff
push 0x40e0d8
push ebx
push ebx
mov word [edi], bx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov eax, dword [0x40e0bc]
push ebx
push edi
push eax
mov edx, dword [eax]
call dword [edx + 0x34]
mov eax, dword [0x40e0d0]
mov edx, dword [ebp + 0xc]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x74]
mov eax, dword [0x40e0d0]
push 0x44000000
push eax
mov ecx, dword [eax]
call dword [ecx + 0x24]
mov eax, dword [0x40e0cc]
lea ecx, [ebp - 8]
push ecx
lea ecx, [ebp - 0xc]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x88]
mov edx, dword [ebp - 8]
mov esi, dword [ebp + 0x10]
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp + 0x14]
imul edx, esi
imul eax, edi
cmp edx, eax
jae 0x4012af
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x10], ebx
fild qword [ebp - 0x14]
fidiv dword [ebp - 0xc]
jmp 0x4012bb
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], ebx
fild qword [ebp - 0x14]
fidiv dword [ebp - 8]
fild dword [ebp - 8]
mov ecx, dword [0x40e0d0]
fmul st(1)
fild dword [ebp - 0xc]
mov ebx, dword [ecx]
fmul st(2)
fstp qword [ebp - 0x1c]
fld st(0)
call fcn.0040246c
fld qword [ebp - 0x1c]
push eax
call fcn.0040246c
mov dword [ebp - 0x14], edi
xor edi, edi
mov dword [ebp - 0x10], edi
push eax
fild qword [ebp - 0x14]
fsub st(1)
call fcn.0040246c
fstp st(0)
fstp st(0)
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x10], edi
fild qword [ebp - 0x14]
sar eax, 1
push eax
fsub qword [ebp - 0x1c]
call fcn.0040246c
mov edx, dword [0x40e0d0]
sar eax, 1
push eax
push edx
call dword [ebx + 0x9c]
mov eax, dword [0x40e0c4]
mov edx, dword [ebp + 8]
push edi
push 0x8001
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x34]
mov eax, dword [0x40e0c0]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
lea esp, [ebp - 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret